@agent-relay/cloud 2.0.23 → 6.0.2

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 (289) 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/index.d.ts +4 -10
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -37
  12. package/dist/index.js.map +1 -1
  13. package/dist/types.d.ts +73 -0
  14. package/dist/types.d.ts.map +1 -0
  15. package/dist/types.js +12 -0
  16. package/dist/types.js.map +1 -0
  17. package/dist/workflows.d.ts +46 -0
  18. package/dist/workflows.d.ts.map +1 -0
  19. package/dist/workflows.js +464 -0
  20. package/dist/workflows.js.map +1 -0
  21. package/package.json +8 -25
  22. package/dist/api/admin.d.ts +0 -8
  23. package/dist/api/admin.d.ts.map +0 -1
  24. package/dist/api/admin.js +0 -225
  25. package/dist/api/admin.js.map +0 -1
  26. package/dist/api/auth.d.ts +0 -20
  27. package/dist/api/auth.d.ts.map +0 -1
  28. package/dist/api/auth.js +0 -138
  29. package/dist/api/auth.js.map +0 -1
  30. package/dist/api/billing.d.ts +0 -7
  31. package/dist/api/billing.d.ts.map +0 -1
  32. package/dist/api/billing.js +0 -564
  33. package/dist/api/billing.js.map +0 -1
  34. package/dist/api/cli-pty-runner.d.ts +0 -53
  35. package/dist/api/cli-pty-runner.d.ts.map +0 -1
  36. package/dist/api/cli-pty-runner.js +0 -175
  37. package/dist/api/cli-pty-runner.js.map +0 -1
  38. package/dist/api/codex-auth-helper.d.ts +0 -21
  39. package/dist/api/codex-auth-helper.d.ts.map +0 -1
  40. package/dist/api/codex-auth-helper.js +0 -327
  41. package/dist/api/codex-auth-helper.js.map +0 -1
  42. package/dist/api/consensus.d.ts +0 -13
  43. package/dist/api/consensus.d.ts.map +0 -1
  44. package/dist/api/consensus.js +0 -261
  45. package/dist/api/consensus.js.map +0 -1
  46. package/dist/api/coordinators.d.ts +0 -8
  47. package/dist/api/coordinators.d.ts.map +0 -1
  48. package/dist/api/coordinators.js +0 -750
  49. package/dist/api/coordinators.js.map +0 -1
  50. package/dist/api/daemons.d.ts +0 -12
  51. package/dist/api/daemons.d.ts.map +0 -1
  52. package/dist/api/daemons.js +0 -535
  53. package/dist/api/daemons.js.map +0 -1
  54. package/dist/api/email-auth.d.ts +0 -11
  55. package/dist/api/email-auth.d.ts.map +0 -1
  56. package/dist/api/email-auth.js +0 -347
  57. package/dist/api/email-auth.js.map +0 -1
  58. package/dist/api/generic-webhooks.d.ts +0 -8
  59. package/dist/api/generic-webhooks.d.ts.map +0 -1
  60. package/dist/api/generic-webhooks.js +0 -129
  61. package/dist/api/generic-webhooks.js.map +0 -1
  62. package/dist/api/git.d.ts +0 -8
  63. package/dist/api/git.d.ts.map +0 -1
  64. package/dist/api/git.js +0 -269
  65. package/dist/api/git.js.map +0 -1
  66. package/dist/api/github-app.d.ts +0 -11
  67. package/dist/api/github-app.d.ts.map +0 -1
  68. package/dist/api/github-app.js +0 -223
  69. package/dist/api/github-app.js.map +0 -1
  70. package/dist/api/middleware/planLimits.d.ts +0 -43
  71. package/dist/api/middleware/planLimits.d.ts.map +0 -1
  72. package/dist/api/middleware/planLimits.js +0 -202
  73. package/dist/api/middleware/planLimits.js.map +0 -1
  74. package/dist/api/monitoring.d.ts +0 -11
  75. package/dist/api/monitoring.d.ts.map +0 -1
  76. package/dist/api/monitoring.js +0 -578
  77. package/dist/api/monitoring.js.map +0 -1
  78. package/dist/api/nango-auth.d.ts +0 -9
  79. package/dist/api/nango-auth.d.ts.map +0 -1
  80. package/dist/api/nango-auth.js +0 -741
  81. package/dist/api/nango-auth.js.map +0 -1
  82. package/dist/api/onboarding.d.ts +0 -15
  83. package/dist/api/onboarding.d.ts.map +0 -1
  84. package/dist/api/onboarding.js +0 -679
  85. package/dist/api/onboarding.js.map +0 -1
  86. package/dist/api/policy.d.ts +0 -8
  87. package/dist/api/policy.d.ts.map +0 -1
  88. package/dist/api/policy.js +0 -229
  89. package/dist/api/policy.js.map +0 -1
  90. package/dist/api/provider-env.d.ts +0 -26
  91. package/dist/api/provider-env.d.ts.map +0 -1
  92. package/dist/api/provider-env.js +0 -141
  93. package/dist/api/provider-env.js.map +0 -1
  94. package/dist/api/providers.d.ts +0 -7
  95. package/dist/api/providers.d.ts.map +0 -1
  96. package/dist/api/providers.js +0 -574
  97. package/dist/api/providers.js.map +0 -1
  98. package/dist/api/repos.d.ts +0 -8
  99. package/dist/api/repos.d.ts.map +0 -1
  100. package/dist/api/repos.js +0 -577
  101. package/dist/api/repos.js.map +0 -1
  102. package/dist/api/sessions.d.ts +0 -11
  103. package/dist/api/sessions.d.ts.map +0 -1
  104. package/dist/api/sessions.js +0 -302
  105. package/dist/api/sessions.js.map +0 -1
  106. package/dist/api/teams.d.ts +0 -7
  107. package/dist/api/teams.d.ts.map +0 -1
  108. package/dist/api/teams.js +0 -281
  109. package/dist/api/teams.js.map +0 -1
  110. package/dist/api/test-helpers.d.ts +0 -10
  111. package/dist/api/test-helpers.d.ts.map +0 -1
  112. package/dist/api/test-helpers.js +0 -745
  113. package/dist/api/test-helpers.js.map +0 -1
  114. package/dist/api/usage.d.ts +0 -7
  115. package/dist/api/usage.d.ts.map +0 -1
  116. package/dist/api/usage.js +0 -111
  117. package/dist/api/usage.js.map +0 -1
  118. package/dist/api/webhooks.d.ts +0 -8
  119. package/dist/api/webhooks.d.ts.map +0 -1
  120. package/dist/api/webhooks.js +0 -645
  121. package/dist/api/webhooks.js.map +0 -1
  122. package/dist/api/workspaces.d.ts +0 -25
  123. package/dist/api/workspaces.d.ts.map +0 -1
  124. package/dist/api/workspaces.js +0 -1799
  125. package/dist/api/workspaces.js.map +0 -1
  126. package/dist/billing/index.d.ts +0 -9
  127. package/dist/billing/index.d.ts.map +0 -1
  128. package/dist/billing/index.js +0 -9
  129. package/dist/billing/index.js.map +0 -1
  130. package/dist/billing/plans.d.ts +0 -39
  131. package/dist/billing/plans.d.ts.map +0 -1
  132. package/dist/billing/plans.js +0 -245
  133. package/dist/billing/plans.js.map +0 -1
  134. package/dist/billing/service.d.ts +0 -80
  135. package/dist/billing/service.d.ts.map +0 -1
  136. package/dist/billing/service.js +0 -388
  137. package/dist/billing/service.js.map +0 -1
  138. package/dist/billing/types.d.ts +0 -141
  139. package/dist/billing/types.d.ts.map +0 -1
  140. package/dist/billing/types.js +0 -7
  141. package/dist/billing/types.js.map +0 -1
  142. package/dist/config.d.ts +0 -5
  143. package/dist/config.d.ts.map +0 -1
  144. package/dist/config.js +0 -5
  145. package/dist/config.js.map +0 -1
  146. package/dist/db/bulk-ingest.d.ts +0 -89
  147. package/dist/db/bulk-ingest.d.ts.map +0 -1
  148. package/dist/db/bulk-ingest.js +0 -268
  149. package/dist/db/bulk-ingest.js.map +0 -1
  150. package/dist/db/drizzle.d.ts +0 -290
  151. package/dist/db/drizzle.d.ts.map +0 -1
  152. package/dist/db/drizzle.js +0 -1422
  153. package/dist/db/drizzle.js.map +0 -1
  154. package/dist/db/index.d.ts +0 -56
  155. package/dist/db/index.d.ts.map +0 -1
  156. package/dist/db/index.js +0 -70
  157. package/dist/db/index.js.map +0 -1
  158. package/dist/db/schema.d.ts +0 -5117
  159. package/dist/db/schema.d.ts.map +0 -1
  160. package/dist/db/schema.js +0 -656
  161. package/dist/db/schema.js.map +0 -1
  162. package/dist/provisioner/index.d.ts +0 -207
  163. package/dist/provisioner/index.d.ts.map +0 -1
  164. package/dist/provisioner/index.js +0 -2118
  165. package/dist/provisioner/index.js.map +0 -1
  166. package/dist/server.d.ts +0 -17
  167. package/dist/server.d.ts.map +0 -1
  168. package/dist/server.js +0 -2055
  169. package/dist/server.js.map +0 -1
  170. package/dist/services/auto-scaler.d.ts +0 -152
  171. package/dist/services/auto-scaler.d.ts.map +0 -1
  172. package/dist/services/auto-scaler.js +0 -439
  173. package/dist/services/auto-scaler.js.map +0 -1
  174. package/dist/services/capacity-manager.d.ts +0 -148
  175. package/dist/services/capacity-manager.d.ts.map +0 -1
  176. package/dist/services/capacity-manager.js +0 -449
  177. package/dist/services/capacity-manager.js.map +0 -1
  178. package/dist/services/ci-agent-spawner.d.ts +0 -49
  179. package/dist/services/ci-agent-spawner.d.ts.map +0 -1
  180. package/dist/services/ci-agent-spawner.js +0 -373
  181. package/dist/services/ci-agent-spawner.js.map +0 -1
  182. package/dist/services/cloud-message-bus.d.ts +0 -28
  183. package/dist/services/cloud-message-bus.d.ts.map +0 -1
  184. package/dist/services/cloud-message-bus.js +0 -19
  185. package/dist/services/cloud-message-bus.js.map +0 -1
  186. package/dist/services/compute-enforcement.d.ts +0 -57
  187. package/dist/services/compute-enforcement.d.ts.map +0 -1
  188. package/dist/services/compute-enforcement.js +0 -175
  189. package/dist/services/compute-enforcement.js.map +0 -1
  190. package/dist/services/coordinator.d.ts +0 -62
  191. package/dist/services/coordinator.d.ts.map +0 -1
  192. package/dist/services/coordinator.js +0 -389
  193. package/dist/services/coordinator.js.map +0 -1
  194. package/dist/services/index.d.ts +0 -17
  195. package/dist/services/index.d.ts.map +0 -1
  196. package/dist/services/index.js +0 -25
  197. package/dist/services/index.js.map +0 -1
  198. package/dist/services/intro-expiration.d.ts +0 -60
  199. package/dist/services/intro-expiration.d.ts.map +0 -1
  200. package/dist/services/intro-expiration.js +0 -252
  201. package/dist/services/intro-expiration.js.map +0 -1
  202. package/dist/services/mention-handler.d.ts +0 -65
  203. package/dist/services/mention-handler.d.ts.map +0 -1
  204. package/dist/services/mention-handler.js +0 -405
  205. package/dist/services/mention-handler.js.map +0 -1
  206. package/dist/services/nango.d.ts +0 -219
  207. package/dist/services/nango.d.ts.map +0 -1
  208. package/dist/services/nango.js +0 -424
  209. package/dist/services/nango.js.map +0 -1
  210. package/dist/services/persistence.d.ts +0 -131
  211. package/dist/services/persistence.d.ts.map +0 -1
  212. package/dist/services/persistence.js +0 -200
  213. package/dist/services/persistence.js.map +0 -1
  214. package/dist/services/planLimits.d.ts +0 -147
  215. package/dist/services/planLimits.d.ts.map +0 -1
  216. package/dist/services/planLimits.js +0 -335
  217. package/dist/services/planLimits.js.map +0 -1
  218. package/dist/services/presence-registry.d.ts +0 -56
  219. package/dist/services/presence-registry.d.ts.map +0 -1
  220. package/dist/services/presence-registry.js +0 -91
  221. package/dist/services/presence-registry.js.map +0 -1
  222. package/dist/services/scaling-orchestrator.d.ts +0 -159
  223. package/dist/services/scaling-orchestrator.d.ts.map +0 -1
  224. package/dist/services/scaling-orchestrator.js +0 -502
  225. package/dist/services/scaling-orchestrator.js.map +0 -1
  226. package/dist/services/scaling-policy.d.ts +0 -121
  227. package/dist/services/scaling-policy.d.ts.map +0 -1
  228. package/dist/services/scaling-policy.js +0 -415
  229. package/dist/services/scaling-policy.js.map +0 -1
  230. package/dist/services/ssh-security.d.ts +0 -31
  231. package/dist/services/ssh-security.d.ts.map +0 -1
  232. package/dist/services/ssh-security.js +0 -63
  233. package/dist/services/ssh-security.js.map +0 -1
  234. package/dist/services/workspace-keepalive.d.ts +0 -76
  235. package/dist/services/workspace-keepalive.d.ts.map +0 -1
  236. package/dist/services/workspace-keepalive.js +0 -234
  237. package/dist/services/workspace-keepalive.js.map +0 -1
  238. package/dist/shims/consensus.d.ts +0 -23
  239. package/dist/shims/consensus.d.ts.map +0 -1
  240. package/dist/shims/consensus.js +0 -5
  241. package/dist/shims/consensus.js.map +0 -1
  242. package/dist/webhooks/index.d.ts +0 -24
  243. package/dist/webhooks/index.d.ts.map +0 -1
  244. package/dist/webhooks/index.js +0 -29
  245. package/dist/webhooks/index.js.map +0 -1
  246. package/dist/webhooks/parsers/github.d.ts +0 -8
  247. package/dist/webhooks/parsers/github.d.ts.map +0 -1
  248. package/dist/webhooks/parsers/github.js +0 -234
  249. package/dist/webhooks/parsers/github.js.map +0 -1
  250. package/dist/webhooks/parsers/index.d.ts +0 -23
  251. package/dist/webhooks/parsers/index.d.ts.map +0 -1
  252. package/dist/webhooks/parsers/index.js +0 -30
  253. package/dist/webhooks/parsers/index.js.map +0 -1
  254. package/dist/webhooks/parsers/linear.d.ts +0 -9
  255. package/dist/webhooks/parsers/linear.d.ts.map +0 -1
  256. package/dist/webhooks/parsers/linear.js +0 -258
  257. package/dist/webhooks/parsers/linear.js.map +0 -1
  258. package/dist/webhooks/parsers/slack.d.ts +0 -9
  259. package/dist/webhooks/parsers/slack.d.ts.map +0 -1
  260. package/dist/webhooks/parsers/slack.js +0 -214
  261. package/dist/webhooks/parsers/slack.js.map +0 -1
  262. package/dist/webhooks/responders/github.d.ts +0 -8
  263. package/dist/webhooks/responders/github.d.ts.map +0 -1
  264. package/dist/webhooks/responders/github.js +0 -73
  265. package/dist/webhooks/responders/github.js.map +0 -1
  266. package/dist/webhooks/responders/index.d.ts +0 -23
  267. package/dist/webhooks/responders/index.d.ts.map +0 -1
  268. package/dist/webhooks/responders/index.js +0 -30
  269. package/dist/webhooks/responders/index.js.map +0 -1
  270. package/dist/webhooks/responders/linear.d.ts +0 -9
  271. package/dist/webhooks/responders/linear.d.ts.map +0 -1
  272. package/dist/webhooks/responders/linear.js +0 -149
  273. package/dist/webhooks/responders/linear.js.map +0 -1
  274. package/dist/webhooks/responders/slack.d.ts +0 -20
  275. package/dist/webhooks/responders/slack.d.ts.map +0 -1
  276. package/dist/webhooks/responders/slack.js +0 -178
  277. package/dist/webhooks/responders/slack.js.map +0 -1
  278. package/dist/webhooks/router.d.ts +0 -25
  279. package/dist/webhooks/router.d.ts.map +0 -1
  280. package/dist/webhooks/router.js +0 -504
  281. package/dist/webhooks/router.js.map +0 -1
  282. package/dist/webhooks/rules-engine.d.ts +0 -24
  283. package/dist/webhooks/rules-engine.d.ts.map +0 -1
  284. package/dist/webhooks/rules-engine.js +0 -287
  285. package/dist/webhooks/rules-engine.js.map +0 -1
  286. package/dist/webhooks/types.d.ts +0 -186
  287. package/dist/webhooks/types.d.ts.map +0 -1
  288. package/dist/webhooks/types.js +0 -8
  289. package/dist/webhooks/types.js.map +0 -1
package/dist/api/admin.js DELETED
@@ -1,225 +0,0 @@
1
- /**
2
- * Admin API Routes
3
- *
4
- * Administrative endpoints for managing workspaces at scale.
5
- * Protected by admin secret (ADMIN_API_SECRET environment variable).
6
- */
7
- import { Router } from 'express';
8
- import { getConfig } from '../config.js';
9
- import { getProvisioner, WorkspaceProvisioner } from '../provisioner/index.js';
10
- export const adminRouter = Router();
11
- /**
12
- * Middleware to authenticate admin requests
13
- * Requires ADMIN_API_SECRET header to match environment variable
14
- */
15
- async function requireAdminAuth(req, res, next) {
16
- const authHeader = req.headers['x-admin-secret'] || req.headers.authorization;
17
- const adminSecret = process.env.ADMIN_API_SECRET;
18
- if (!adminSecret) {
19
- res.status(503).json({ error: 'Admin API not configured' });
20
- return;
21
- }
22
- // Support both x-admin-secret header and Bearer token
23
- const providedSecret = authHeader?.toString().replace('Bearer ', '');
24
- if (!providedSecret || providedSecret !== adminSecret) {
25
- res.status(401).json({ error: 'Invalid admin credentials' });
26
- return;
27
- }
28
- next();
29
- }
30
- // Apply admin auth to all routes
31
- adminRouter.use(requireAdminAuth);
32
- /**
33
- * POST /api/admin/workspaces/update-image
34
- *
35
- * Gracefully update workspace images across all or specific workspaces.
36
- *
37
- * Request body:
38
- * - image: New Docker image to deploy (required)
39
- * - workspaceIds?: Array of specific workspace IDs to update
40
- * - userIds?: Array of user IDs whose workspaces to update
41
- * - force?: Force update even if agents are active (default: false)
42
- * - skipRestart?: Update config without restarting (default: false)
43
- * - batchSize?: Number of concurrent updates (default: 5)
44
- *
45
- * Response:
46
- * - summary: { total, updated, pendingRestart, skippedActiveAgents, skippedVerificationFailed, skippedNotRunning, errors }
47
- * - results: Array of per-workspace results
48
- */
49
- adminRouter.post('/workspaces/update-image', async (req, res) => {
50
- const { image, workspaceIds, userIds, force = false, skipRestart = false, batchSize = 5, } = req.body;
51
- if (!image) {
52
- res.status(400).json({ error: 'image is required' });
53
- return;
54
- }
55
- console.log(`[admin] Starting workspace image update to ${image}`, {
56
- workspaceIds: workspaceIds?.length ?? 'all',
57
- userIds: userIds?.length ?? 'all',
58
- force,
59
- skipRestart,
60
- batchSize,
61
- });
62
- try {
63
- const provisioner = getProvisioner();
64
- const result = await provisioner.gracefulUpdateAllImages(image, {
65
- workspaceIds,
66
- userIds,
67
- force,
68
- skipRestart,
69
- batchSize,
70
- });
71
- res.json(result);
72
- }
73
- catch (error) {
74
- console.error('[admin] Error updating workspace images:', error);
75
- res.status(500).json({
76
- error: 'Failed to update workspace images',
77
- details: error.message,
78
- });
79
- }
80
- });
81
- /**
82
- * POST /api/admin/workspaces/:id/update-image
83
- *
84
- * Gracefully update a single workspace's image.
85
- *
86
- * Request body:
87
- * - image: New Docker image to deploy (required)
88
- * - force?: Force update even if agents are active (default: false)
89
- * - skipRestart?: Update config without restarting (default: false)
90
- *
91
- * Response:
92
- * - result: Update result code
93
- * - workspaceId: Workspace ID
94
- * - machineState?: Current machine state
95
- * - agentCount?: Number of active agents (if applicable)
96
- * - error?: Error message (if applicable)
97
- */
98
- adminRouter.post('/workspaces/:id/update-image', async (req, res) => {
99
- const id = req.params.id;
100
- const { image, force = false, skipRestart = false, } = req.body;
101
- if (!image) {
102
- res.status(400).json({ error: 'image is required' });
103
- return;
104
- }
105
- console.log(`[admin] Updating workspace ${id} image to ${image}`, { force, skipRestart });
106
- try {
107
- const provisioner = getProvisioner();
108
- const result = await provisioner.gracefulUpdateImage(id, image, {
109
- force,
110
- skipRestart,
111
- });
112
- // Return appropriate status code based on result
113
- if (result.result === WorkspaceProvisioner.UpdateResult.ERROR) {
114
- res.status(500).json(result);
115
- }
116
- else if (result.result === WorkspaceProvisioner.UpdateResult.NOT_SUPPORTED) {
117
- res.status(400).json(result);
118
- }
119
- else {
120
- res.json(result);
121
- }
122
- }
123
- catch (error) {
124
- console.error(`[admin] Error updating workspace ${id}:`, error);
125
- res.status(500).json({
126
- error: 'Failed to update workspace image',
127
- details: error.message,
128
- });
129
- }
130
- });
131
- /**
132
- * GET /api/admin/workspaces/:id/agents
133
- *
134
- * Check active agents in a workspace.
135
- * Useful for pre-flight checks before updates.
136
- *
137
- * Response:
138
- * - hasActiveAgents: boolean
139
- * - agentCount: number
140
- * - agents: Array of { name, status }
141
- */
142
- adminRouter.get('/workspaces/:id/agents', async (req, res) => {
143
- const id = req.params.id;
144
- try {
145
- // Query workspace directly from DB and check agents via daemon API
146
- const workspace = await (await import('../db/index.js')).db.workspaces.findById(id);
147
- if (!workspace) {
148
- res.status(404).json({ error: 'Workspace not found' });
149
- return;
150
- }
151
- if (workspace.computeProvider !== 'fly') {
152
- res.status(400).json({ error: 'Only Fly.io workspaces support agent checking' });
153
- return;
154
- }
155
- // Query the workspace daemon directly
156
- const baseUrl = workspace.publicUrl;
157
- if (!baseUrl) {
158
- res.json({ hasActiveAgents: false, agentCount: 0, agents: [] });
159
- return;
160
- }
161
- try {
162
- // Use /api/data endpoint which returns { agents: [...], ... }
163
- // Note: /api/agents doesn't exist on the workspace dashboard-server
164
- const response = await fetch(`${baseUrl}/api/data`, {
165
- method: 'GET',
166
- headers: { 'Accept': 'application/json' },
167
- signal: AbortSignal.timeout(10_000),
168
- });
169
- if (!response.ok) {
170
- res.json({ hasActiveAgents: false, agentCount: 0, agents: [], error: `Daemon returned ${response.status}` });
171
- return;
172
- }
173
- const data = await response.json();
174
- const agents = data.agents || [];
175
- const activeAgents = agents.filter(a => {
176
- const status = (a.status ?? '').toLowerCase();
177
- const activityState = (a.activityState ?? '').toLowerCase();
178
- const isProcessing = a.isProcessing === true;
179
- if (activityState === 'active' || activityState === 'idle')
180
- return true;
181
- if (status && status !== 'disconnected' && status !== 'offline')
182
- return true;
183
- if (isProcessing)
184
- return true;
185
- return false;
186
- });
187
- res.json({
188
- hasActiveAgents: activeAgents.length > 0,
189
- agentCount: activeAgents.length,
190
- agents: agents.map(a => ({ name: a.name, status: a.status || a.activityState || 'unknown' })),
191
- });
192
- }
193
- catch (error) {
194
- // Workspace might be stopped
195
- res.json({
196
- hasActiveAgents: false,
197
- agentCount: 0,
198
- agents: [],
199
- error: `Could not reach workspace: ${error.message}`,
200
- });
201
- }
202
- }
203
- catch (error) {
204
- console.error(`[admin] Error checking agents for workspace ${id}:`, error);
205
- res.status(500).json({
206
- error: 'Failed to check workspace agents',
207
- details: error.message,
208
- });
209
- }
210
- });
211
- /**
212
- * GET /api/admin/health
213
- *
214
- * Health check for admin API.
215
- */
216
- adminRouter.get('/health', (_req, res) => {
217
- res.json({
218
- status: 'ok',
219
- timestamp: new Date().toISOString(),
220
- config: {
221
- computeProvider: getConfig().compute.provider,
222
- },
223
- });
224
- });
225
- //# sourceMappingURL=admin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/api/admin.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Auth API Routes
3
- *
4
- * Session management routes.
5
- * User login is handled via Nango (see nango-auth.ts).
6
- * GitHub repo operations are in github-app.ts.
7
- */
8
- import { Request, Response } from 'express';
9
- export declare const authRouter: import("express-serve-static-core").Router;
10
- declare module 'express-session' {
11
- interface SessionData {
12
- userId?: string;
13
- githubToken?: string;
14
- }
15
- }
16
- /**
17
- * Middleware to require authentication
18
- */
19
- export declare function requireAuth(req: Request, res: Response, next: () => void): Response<any, Record<string, any>> | undefined;
20
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAU,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGpD,eAAO,MAAM,UAAU,4CAAW,CAAC;AAGnC,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,WAAW;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CACF;AAuED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,kDASxE"}
package/dist/api/auth.js DELETED
@@ -1,138 +0,0 @@
1
- /**
2
- * Auth API Routes
3
- *
4
- * Session management routes.
5
- * User login is handled via Nango (see nango-auth.ts).
6
- * GitHub repo operations are in github-app.ts.
7
- */
8
- import { Router } from 'express';
9
- import { db } from '../db/index.js';
10
- export const authRouter = Router();
11
- /**
12
- * GET /api/auth/github
13
- * Redirect to Nango login flow
14
- * @deprecated Use /api/auth/nango/login-session instead
15
- */
16
- authRouter.get('/github', (_req, res) => {
17
- res.redirect('/api/auth/nango/login-session');
18
- });
19
- /**
20
- * POST /api/auth/logout
21
- * Logout user
22
- */
23
- authRouter.post('/logout', (req, res) => {
24
- req.session.destroy((err) => {
25
- if (err) {
26
- return res.status(500).json({ error: 'Failed to logout' });
27
- }
28
- res.json({ success: true });
29
- });
30
- });
31
- /**
32
- * GET /api/auth/me
33
- * Get current user
34
- */
35
- authRouter.get('/me', async (req, res) => {
36
- if (!req.session.userId) {
37
- return res.status(401).json({ error: 'Not authenticated' });
38
- }
39
- try {
40
- const user = await db.users.findById(req.session.userId);
41
- if (!user) {
42
- return res.status(401).json({ error: 'User not found' });
43
- }
44
- // Get connected providers
45
- const credentials = await db.credentials.findByUserId(user.id);
46
- const connectedProviders = credentials.map((c) => ({
47
- provider: c.provider,
48
- email: c.providerAccountEmail,
49
- connectedAt: c.createdAt,
50
- }));
51
- // Get pending invites
52
- const pendingInvites = await db.workspaceMembers.getPendingInvites(user.id);
53
- // Check for pending GitHub installation request
54
- const pendingGitHubApproval = !!user.pendingInstallationRequest;
55
- res.json({
56
- id: user.id,
57
- githubUsername: user.githubUsername,
58
- displayName: user.displayName || user.githubUsername || user.email?.split('@')[0] || null,
59
- email: user.email,
60
- avatarUrl: user.avatarUrl,
61
- plan: user.plan,
62
- connectedProviders,
63
- pendingInvites: pendingInvites.length,
64
- pendingGitHubApproval,
65
- onboardingCompleted: !!user.onboardingCompletedAt,
66
- });
67
- }
68
- catch (error) {
69
- console.error('Error getting user:', error);
70
- res.status(500).json({ error: 'Failed to get user' });
71
- }
72
- });
73
- /**
74
- * Middleware to require authentication
75
- */
76
- export function requireAuth(req, res, next) {
77
- if (!req.session.userId) {
78
- return res.status(401).json({
79
- error: 'Authentication required',
80
- code: 'SESSION_EXPIRED',
81
- message: 'Your session has expired. Please log in again.',
82
- });
83
- }
84
- next();
85
- }
86
- /**
87
- * GET /api/auth/session
88
- * Check if current session is valid
89
- */
90
- authRouter.get('/session', async (req, res) => {
91
- if (!req.session.userId) {
92
- return res.json({
93
- authenticated: false,
94
- code: 'SESSION_EXPIRED',
95
- message: 'Your session has expired. Please log in again.',
96
- });
97
- }
98
- try {
99
- // Verify user still exists
100
- const user = await db.users.findById(req.session.userId);
101
- if (!user) {
102
- req.session.destroy(() => { });
103
- return res.json({
104
- authenticated: false,
105
- code: 'USER_NOT_FOUND',
106
- message: 'User account not found. Please log in again.',
107
- });
108
- }
109
- // Get connected providers
110
- const credentials = await db.credentials.findByUserId(user.id);
111
- const connectedProviders = credentials.map((c) => ({
112
- provider: c.provider,
113
- email: c.providerAccountEmail,
114
- connectedAt: c.createdAt,
115
- }));
116
- res.json({
117
- authenticated: true,
118
- user: {
119
- id: user.id,
120
- githubUsername: user.githubUsername,
121
- displayName: user.displayName || user.githubUsername || user.email?.split('@')[0] || null,
122
- email: user.email,
123
- avatarUrl: user.avatarUrl,
124
- plan: user.plan,
125
- },
126
- connectedProviders,
127
- });
128
- }
129
- catch (error) {
130
- console.error('Session check error:', error);
131
- res.status(500).json({
132
- authenticated: false,
133
- code: 'SESSION_ERROR',
134
- message: 'An error occurred while checking your session.',
135
- });
136
- }
137
- });
138
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Agent Relay Cloud - Billing API
3
- *
4
- * REST API for subscription and billing management.
5
- */
6
- export declare const billingRouter: import("express-serve-static-core").Router;
7
- //# sourceMappingURL=billing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/api/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,eAAO,MAAM,aAAa,4CAAW,CAAC"}