crewly 1.11.5 → 1.12.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 (208) hide show
  1. package/config/skills/agent/onboarding/synthesize-hierarchy/SKILL.md +65 -0
  2. package/config/skills/agent/onboarding/synthesize-hierarchy/execute.sh +61 -0
  3. package/config/skills/agent/web-search/SKILL.md +70 -0
  4. package/config/skills/agent/web-search/execute.sh +170 -0
  5. package/config/skills/agent/web-search/skill.json +23 -0
  6. package/dist/backend/backend/src/constants.d.ts +34 -1
  7. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  8. package/dist/backend/backend/src/constants.js +34 -1
  9. package/dist/backend/backend/src/constants.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +22 -0
  11. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +58 -0
  13. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
  15. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +3 -1
  16. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts +27 -0
  18. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js +108 -0
  20. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.controller.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts +6 -2
  22. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.d.ts.map +1 -1
  23. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js +9 -3
  24. package/dist/backend/backend/src/controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js.map +1 -1
  25. package/dist/backend/backend/src/index.d.ts.map +1 -1
  26. package/dist/backend/backend/src/index.js +36 -2
  27. package/dist/backend/backend/src/index.js.map +1 -1
  28. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +18 -0
  29. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +24 -2
  31. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts +90 -0
  33. package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts.map +1 -0
  34. package/dist/backend/backend/src/services/backup/backup-archive.service.js +309 -0
  35. package/dist/backend/backend/src/services/backup/backup-archive.service.js.map +1 -0
  36. package/dist/backend/backend/src/services/backup/backup-cloud.client.d.ts +75 -0
  37. package/dist/backend/backend/src/services/backup/backup-cloud.client.d.ts.map +1 -0
  38. package/dist/backend/backend/src/services/backup/backup-cloud.client.js +134 -0
  39. package/dist/backend/backend/src/services/backup/backup-cloud.client.js.map +1 -0
  40. package/dist/backend/backend/src/services/backup/backup-restore.service.d.ts +78 -0
  41. package/dist/backend/backend/src/services/backup/backup-restore.service.d.ts.map +1 -0
  42. package/dist/backend/backend/src/services/backup/backup-restore.service.js +358 -0
  43. package/dist/backend/backend/src/services/backup/backup-restore.service.js.map +1 -0
  44. package/dist/backend/backend/src/services/backup/backup.types.d.ts +163 -0
  45. package/dist/backend/backend/src/services/backup/backup.types.d.ts.map +1 -0
  46. package/dist/backend/backend/src/services/backup/backup.types.js +13 -0
  47. package/dist/backend/backend/src/services/backup/backup.types.js.map +1 -0
  48. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +29 -2
  49. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +97 -13
  51. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  52. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts +102 -0
  53. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -0
  54. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +164 -0
  55. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -0
  56. package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts +21 -0
  57. package/dist/backend/backend/src/services/fission/fission-guard.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/fission/fission-guard.service.js +30 -0
  59. package/dist/backend/backend/src/services/fission/fission-guard.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts +4 -0
  61. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js +8 -0
  63. package/dist/backend/backend/src/services/intent-task/intent-classifier.rules.js.map +1 -1
  64. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts +79 -58
  65. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js +140 -65
  67. package/dist/backend/backend/src/services/orchestrator/onboarding/materialize-team.js.map +1 -1
  68. package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.d.ts +117 -0
  69. package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.js +189 -0
  71. package/dist/backend/backend/src/services/orchestrator/onboarding/synthesize-hierarchy.js.map +1 -0
  72. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js +1 -0
  74. package/dist/backend/backend/src/services/orchestrator/onboarding-mode-loader.js.map +1 -1
  75. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.d.ts.map +1 -1
  76. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js +2 -0
  77. package/dist/backend/backend/src/services/orchestrator/onboarding-mode.skill-allowlist.js.map +1 -1
  78. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js +17 -1
  80. package/dist/backend/backend/src/services/orchestrator/prompts/onboarding-mode.prompt.js.map +1 -1
  81. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +50 -0
  82. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +71 -0
  84. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  85. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +18 -0
  86. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +75 -1
  88. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +115 -0
  90. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +189 -3
  92. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  93. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +28 -0
  94. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/session/pty/pty-session.js +61 -1
  96. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  97. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  98. package/dist/backend/backend/src/services/template/template.service.js +67 -2
  99. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  100. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts +19 -1
  101. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/v3/cascade-request-status.js +39 -2
  103. package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
  104. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts +41 -0
  105. package/dist/backend/backend/src/services/v3/escalation-router.service.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/v3/escalation-router.service.js +169 -0
  107. package/dist/backend/backend/src/services/v3/escalation-router.service.js.map +1 -1
  108. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts +4 -1
  109. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.d.ts.map +1 -1
  110. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js +21 -0
  111. package/dist/backend/backend/src/services/v3/request-cascade.subscriber.js.map +1 -1
  112. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
  113. package/dist/backend/backend/src/types/intent-task.types.js +8 -0
  114. package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
  115. package/dist/backend/backend/src/types/v2/request.types.d.ts +1 -1
  116. package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
  117. package/dist/backend/backend/src/types/v2/request.types.js +1 -0
  118. package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
  119. package/dist/cli/backend/src/constants.d.ts +34 -1
  120. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  121. package/dist/cli/backend/src/constants.js +34 -1
  122. package/dist/cli/backend/src/constants.js.map +1 -1
  123. package/dist/cli/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts +70 -0
  124. package/dist/cli/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts.map +1 -0
  125. package/dist/cli/backend/src/controllers/cloud/cloud-google-auth.controller.js +427 -0
  126. package/dist/cli/backend/src/controllers/cloud/cloud-google-auth.controller.js.map +1 -0
  127. package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts +90 -0
  128. package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts.map +1 -0
  129. package/dist/cli/backend/src/services/backup/backup-archive.service.js +309 -0
  130. package/dist/cli/backend/src/services/backup/backup-archive.service.js.map +1 -0
  131. package/dist/cli/backend/src/services/backup/backup-cloud.client.d.ts +75 -0
  132. package/dist/cli/backend/src/services/backup/backup-cloud.client.d.ts.map +1 -0
  133. package/dist/cli/backend/src/services/backup/backup-cloud.client.js +134 -0
  134. package/dist/cli/backend/src/services/backup/backup-cloud.client.js.map +1 -0
  135. package/dist/cli/backend/src/services/backup/backup-restore.service.d.ts +78 -0
  136. package/dist/cli/backend/src/services/backup/backup-restore.service.d.ts.map +1 -0
  137. package/dist/cli/backend/src/services/backup/backup-restore.service.js +358 -0
  138. package/dist/cli/backend/src/services/backup/backup-restore.service.js.map +1 -0
  139. package/dist/cli/backend/src/services/backup/backup.types.d.ts +163 -0
  140. package/dist/cli/backend/src/services/backup/backup.types.d.ts.map +1 -0
  141. package/dist/cli/backend/src/services/backup/backup.types.js +13 -0
  142. package/dist/cli/backend/src/services/backup/backup.types.js.map +1 -0
  143. package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts +410 -0
  144. package/dist/cli/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -0
  145. package/dist/cli/backend/src/services/cloud/cloud-client.service.js +863 -0
  146. package/dist/cli/backend/src/services/cloud/cloud-client.service.js.map +1 -0
  147. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts +292 -0
  148. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -0
  149. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js +1093 -0
  150. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js.map +1 -0
  151. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +328 -0
  152. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -0
  153. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js +171 -0
  154. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -0
  155. package/dist/cli/backend/src/services/cloud/device-identity.service.d.ts +89 -0
  156. package/dist/cli/backend/src/services/cloud/device-identity.service.d.ts.map +1 -0
  157. package/dist/cli/backend/src/services/cloud/device-identity.service.js +148 -0
  158. package/dist/cli/backend/src/services/cloud/device-identity.service.js.map +1 -0
  159. package/dist/cli/backend/src/services/user/user-identity.service.d.ts +86 -0
  160. package/dist/cli/backend/src/services/user/user-identity.service.d.ts.map +1 -0
  161. package/dist/cli/backend/src/services/user/user-identity.service.js +190 -0
  162. package/dist/cli/backend/src/services/user/user-identity.service.js.map +1 -0
  163. package/dist/cli/cli/src/commands/backup.d.ts +31 -0
  164. package/dist/cli/cli/src/commands/backup.d.ts.map +1 -0
  165. package/dist/cli/cli/src/commands/backup.js +280 -0
  166. package/dist/cli/cli/src/commands/backup.js.map +1 -0
  167. package/dist/cli/cli/src/index.js +10 -0
  168. package/dist/cli/cli/src/index.js.map +1 -1
  169. package/package.json +9 -3
  170. package/packages/crewly-agent/README.md +27 -0
  171. package/packages/crewly-agent/bin/crewly-agent +33 -0
  172. package/packages/crewly-agent/package.json +39 -0
  173. package/packages/crewly-agent/src/cli.ts +168 -0
  174. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +2355 -0
  175. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +1827 -0
  176. package/packages/crewly-agent/src/runtime/agent-stream.service.test.ts +153 -0
  177. package/packages/crewly-agent/src/runtime/agent-stream.service.ts +225 -0
  178. package/packages/crewly-agent/src/runtime/agent-worker.test.ts +171 -0
  179. package/packages/crewly-agent/src/runtime/agent-worker.ts +193 -0
  180. package/packages/crewly-agent/src/runtime/api-client.ts +143 -0
  181. package/packages/crewly-agent/src/runtime/approval-queue.service.ts +307 -0
  182. package/packages/crewly-agent/src/runtime/audit-log.service.test.ts +208 -0
  183. package/packages/crewly-agent/src/runtime/audit-log.service.ts +332 -0
  184. package/packages/crewly-agent/src/runtime/audit-trail.service.test.ts +178 -0
  185. package/packages/crewly-agent/src/runtime/audit-trail.service.ts +151 -0
  186. package/packages/crewly-agent/src/runtime/auditor-tools.test.ts +274 -0
  187. package/packages/crewly-agent/src/runtime/auditor-tools.ts +311 -0
  188. package/packages/crewly-agent/src/runtime/cloud-config.ts +67 -0
  189. package/packages/crewly-agent/src/runtime/deepseek-sse-transform.test.ts +165 -0
  190. package/packages/crewly-agent/src/runtime/deepseek-sse-transform.ts +168 -0
  191. package/packages/crewly-agent/src/runtime/env-isolation.service.ts +246 -0
  192. package/packages/crewly-agent/src/runtime/in-process-log-buffer.test.ts +280 -0
  193. package/packages/crewly-agent/src/runtime/in-process-log-buffer.ts +317 -0
  194. package/packages/crewly-agent/src/runtime/index.ts +38 -0
  195. package/packages/crewly-agent/src/runtime/mcp-tool-bridge.test.ts +352 -0
  196. package/packages/crewly-agent/src/runtime/mcp-tool-bridge.ts +244 -0
  197. package/packages/crewly-agent/src/runtime/model-manager.test.ts +326 -0
  198. package/packages/crewly-agent/src/runtime/model-manager.ts +363 -0
  199. package/packages/crewly-agent/src/runtime/output-filter.service.ts +175 -0
  200. package/packages/crewly-agent/src/runtime/prompt-guard.service.ts +303 -0
  201. package/packages/crewly-agent/src/runtime/rate-limiter.test.ts +228 -0
  202. package/packages/crewly-agent/src/runtime/rate-limiter.ts +353 -0
  203. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +2510 -0
  204. package/packages/crewly-agent/src/runtime/tool-registry.ts +2104 -0
  205. package/packages/crewly-agent/src/runtime/types.test.ts +519 -0
  206. package/packages/crewly-agent/src/runtime/types.ts +637 -0
  207. package/packages/crewly-agent/src/runtime/web-search.tool.test.ts +131 -0
  208. package/packages/crewly-agent/src/runtime/web-search.tool.ts +140 -0
@@ -170,6 +170,18 @@ export const PTY_CONSTANTS = {
170
170
  MIN_MEANINGFUL_OUTPUT_BYTES: 8,
171
171
  /** Minimum time (ms) an agent must remain in_progress before emitting busy/idle events */
172
172
  MIN_BUSY_DURATION_MS: 10000,
173
+ /**
174
+ * Cadence of the orphan-PTY reaper sweep (ms).
175
+ *
176
+ * The reaper walks the live sessionName→PtySession registry and tears down
177
+ * any PTY whose owning session is no longer active (killed, exited, or whose
178
+ * child shell has died) but which was never routed through centralized
179
+ * teardown — a defensive backstop against `/dev/ptmx` + `/dev/ttysNNN` FD
180
+ * accumulation (the 6-day backend that leaked 319 orphaned master FDs).
181
+ * 5 minutes is frequent enough to bound leakage well under the open-file
182
+ * ceiling yet cheap (an O(n) walk over a handful of sessions).
183
+ */
184
+ ORPHAN_REAPER_INTERVAL_MS: 5 * 60 * 1000,
173
185
  };
174
186
  // Session command timing delays (in milliseconds)
175
187
  export const SESSION_COMMAND_DELAYS = {
@@ -1187,8 +1199,29 @@ export const CLOUD_CONSTANTS = {
1187
1199
  export const CLOUD_SYNC_CONSTANTS = {
1188
1200
  /** Interval between heartbeat uploads (ms) */
1189
1201
  HEARTBEAT_INTERVAL_MS: 30_000,
1190
- /** Interval between message poll requests (ms) */
1202
+ /**
1203
+ * Idle interval between message poll requests (ms). Used as the gap when
1204
+ * long-poll is disabled (`MESSAGE_LONGPOLL_WAIT_MS = 0`), after a poll
1205
+ * error, or as the auto-degrade fallback when the relay returns a held
1206
+ * long-poll near-instantly (i.e. it doesn't support `wait=`).
1207
+ */
1191
1208
  MESSAGE_POLL_INTERVAL_MS: 5_000,
1209
+ /**
1210
+ * Long-poll hold time (ms) sent to the relay as `?wait=`. The relay holds
1211
+ * `/queue/poll` open until a message arrives (or this deadline), so the OSS
1212
+ * picks up Portal `chat_request`s near-instantly instead of on the old 5s
1213
+ * tick. Set to 0 to disable and fall back to fixed-interval polling. Kept
1214
+ * under the relay's own 25s ceiling.
1215
+ */
1216
+ MESSAGE_LONGPOLL_WAIT_MS: 20_000,
1217
+ /**
1218
+ * HTTP request timeout (ms) for the long-poll message fetch. MUST exceed
1219
+ * {@link MESSAGE_LONGPOLL_WAIT_MS} so the client doesn't abort the held
1220
+ * connection before the relay's deadline returns it.
1221
+ */
1222
+ MESSAGE_LONGPOLL_TIMEOUT_MS: 30_000,
1223
+ /** Gap (ms) before re-opening the next long-poll after one returns. */
1224
+ MESSAGE_LONGPOLL_GAP_MS: 100,
1192
1225
  /** Interval between device list poll requests (ms) */
1193
1226
  DEVICE_POLL_INTERVAL_MS: 30_000,
1194
1227
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../backend/src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Cloud Google OAuth Controller
3
+ *
4
+ * Handles Google OAuth login flow for the CrewlyAI Cloud Console.
5
+ * Provides both browser-redirect (GET) and API (POST) flows.
6
+ *
7
+ * Routes:
8
+ * - GET /api/cloud/google/start -> Redirects to Google consent screen
9
+ * - GET /api/cloud/google/callback -> Handles Google redirect, issues JWT, redirects to frontend
10
+ * - POST /api/cloud/google/url -> Returns Google OAuth URL as JSON (for SPA clients)
11
+ * - POST /api/cloud/google/callback -> Exchanges code for JWT, returns JSON (for SPA clients)
12
+ *
13
+ * @module controllers/cloud/cloud-google-auth.controller
14
+ */
15
+ import type { Request, Response, NextFunction } from 'express';
16
+ /**
17
+ * Sign a JWT using HMAC-SHA256.
18
+ *
19
+ * @param payload - JWT payload object
20
+ * @returns Signed JWT string (header.payload.signature)
21
+ */
22
+ export declare function signJwt(payload: Record<string, unknown>): string;
23
+ /**
24
+ * Verify a JWT signed with HMAC-SHA256.
25
+ *
26
+ * @param token - JWT string (header.payload.signature)
27
+ * @returns Decoded payload if valid, null if invalid or expired
28
+ */
29
+ export declare function verifyJwt(token: string): Record<string, unknown> | null;
30
+ /**
31
+ * GET /api/cloud/google/start
32
+ *
33
+ * Redirects the browser to the Google OAuth consent screen.
34
+ *
35
+ * @param req - Express request with optional query: { redirect }
36
+ * @param res - Express response (302 redirect)
37
+ * @param next - Next function for error propagation
38
+ */
39
+ export declare function cloudGoogleStart(req: Request, res: Response, next: NextFunction): Promise<void>;
40
+ /**
41
+ * GET /api/cloud/google/callback
42
+ *
43
+ * Handles the Google OAuth redirect, exchanges code, issues JWT, and redirects.
44
+ *
45
+ * @param req - Express request with query: { code, state? }
46
+ * @param res - Express response (302 redirect to frontend)
47
+ * @param next - Next function for error propagation
48
+ */
49
+ export declare function cloudGoogleCallback(req: Request, res: Response, next: NextFunction): Promise<void>;
50
+ /**
51
+ * POST /api/cloud/google/url
52
+ *
53
+ * Returns the Google OAuth consent URL as JSON (for SPA clients).
54
+ *
55
+ * @param req - Request with optional body: { redirectTo, redirectUrl }
56
+ * @param res - Response returning { success, data: { url } }
57
+ * @param next - Next function for error propagation
58
+ */
59
+ export declare function cloudGoogleUrl(req: Request, res: Response, next: NextFunction): Promise<void>;
60
+ /**
61
+ * POST /api/cloud/google/callback
62
+ *
63
+ * SPA-friendly code exchange: accepts { code } in body, returns JWT + user as JSON.
64
+ *
65
+ * @param req - Request with body: { code }
66
+ * @param res - Response returning { success, data: { accessToken, refreshToken, expiresIn, user } }
67
+ * @param next - Next function for error propagation
68
+ */
69
+ export declare function cloudGoogleCallbackPost(req: Request, res: Response, next: NextFunction): Promise<void>;
70
+ //# sourceMappingURL=cloud-google-auth.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-google-auth.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/cloud/cloud-google-auth.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA0J/D;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAShE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAwBvE;AAMD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrG;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGxG;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBnG;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF5G"}
@@ -0,0 +1,427 @@
1
+ /**
2
+ * Cloud Google OAuth Controller
3
+ *
4
+ * Handles Google OAuth login flow for the CrewlyAI Cloud Console.
5
+ * Provides both browser-redirect (GET) and API (POST) flows.
6
+ *
7
+ * Routes:
8
+ * - GET /api/cloud/google/start -> Redirects to Google consent screen
9
+ * - GET /api/cloud/google/callback -> Handles Google redirect, issues JWT, redirects to frontend
10
+ * - POST /api/cloud/google/url -> Returns Google OAuth URL as JSON (for SPA clients)
11
+ * - POST /api/cloud/google/callback -> Exchanges code for JWT, returns JSON (for SPA clients)
12
+ *
13
+ * @module controllers/cloud/cloud-google-auth.controller
14
+ */
15
+ import crypto from 'crypto';
16
+ import { GOOGLE_OAUTH_CONSTANTS, AUTH_CONSTANTS, CLOUD_AUTH_CONSTANTS } from '../../constants.js';
17
+ import { UserIdentityService } from '../../services/user/user-identity.service.js';
18
+ import { DeviceIdentityService } from '../../services/cloud/device-identity.service.js';
19
+ import { CloudClientService } from '../../services/cloud/cloud-client.service.js';
20
+ import { LoggerService } from '../../services/core/logger.service.js';
21
+ const logger = LoggerService.getInstance().createComponentLogger('CloudGoogleAuth');
22
+ /** Env var for the Cloud Console frontend URL (where to redirect after login). */
23
+ const CLOUD_CONSOLE_FRONTEND_URL = () => process.env['CLOUD_CONSOLE_URL'] || process.env['CLOUD_PORTAL_URL'] || 'https://crewlyai.com';
24
+ /** Env var for the Google OAuth redirect URI (must match GCP console). */
25
+ const CLOUD_GOOGLE_REDIRECT_URI = (req) => process.env['CLOUD_GOOGLE_REDIRECT_URI'] ||
26
+ `${req.protocol}://${req.get('host')}/api/cloud/google/callback`;
27
+ /** Scopes for Cloud Console login -- only need email and profile. */
28
+ const LOGIN_SCOPES = ['openid', 'email', 'profile'];
29
+ /** Default user plan assigned to new users. */
30
+ const DEFAULT_USER_PLAN = AUTH_CONSTANTS.PLANS.FREE;
31
+ /**
32
+ * Build a Google OAuth consent URL with the given post-login redirect.
33
+ *
34
+ * Consolidates URL construction used by both cloudGoogleStart and cloudGoogleUrl.
35
+ *
36
+ * @param req - Express request (used to derive redirect_uri)
37
+ * @param postLoginRedirect - Where to send user after login completes
38
+ * @returns Full Google OAuth consent URL string
39
+ * @throws Error if GOOGLE_CLIENT_ID is not configured
40
+ */
41
+ function buildGoogleOAuthUrl(req, postLoginRedirect) {
42
+ const clientId = CLOUD_AUTH_CONSTANTS.GOOGLE.CLIENT_ID;
43
+ if (!clientId)
44
+ throw new Error('GOOGLE_CLIENT_ID is not configured');
45
+ const redirectUri = CLOUD_GOOGLE_REDIRECT_URI(req);
46
+ const statePayload = {
47
+ redirectTo: postLoginRedirect,
48
+ t: Date.now(),
49
+ nonce: crypto.randomUUID(),
50
+ };
51
+ const state = Buffer.from(JSON.stringify(statePayload)).toString('base64url');
52
+ const url = new URL(GOOGLE_OAUTH_CONSTANTS.AUTH_BASE_URL);
53
+ url.searchParams.set('client_id', clientId);
54
+ url.searchParams.set('redirect_uri', redirectUri);
55
+ url.searchParams.set('response_type', 'code');
56
+ url.searchParams.set('access_type', 'offline');
57
+ url.searchParams.set('prompt', 'consent');
58
+ url.searchParams.set('scope', LOGIN_SCOPES.join(' '));
59
+ url.searchParams.set('state', state);
60
+ return url.toString();
61
+ }
62
+ /**
63
+ * Exchange a Google authorization code for tokens, fetch user profile,
64
+ * and upsert the user in the local identity store.
65
+ *
66
+ * Shared by both GET and POST callback handlers.
67
+ *
68
+ * @param code - Google authorization code
69
+ * @param req - Express request (used to derive redirect_uri)
70
+ * @returns GoogleLoginResult with user, profile, and token data
71
+ * @throws Error on credential misconfiguration, token exchange failure, or missing profile data
72
+ */
73
+ async function exchangeCodeAndCreateUser(code, req) {
74
+ const clientId = CLOUD_AUTH_CONSTANTS.GOOGLE.CLIENT_ID;
75
+ const clientSecret = process.env['GOOGLE_CLIENT_SECRET'] || '';
76
+ if (!clientId || !clientSecret) {
77
+ throw new Error('Google OAuth credentials not configured');
78
+ }
79
+ const redirectUri = CLOUD_GOOGLE_REDIRECT_URI(req);
80
+ // Exchange code for tokens
81
+ const tokenResp = await fetch(GOOGLE_OAUTH_CONSTANTS.TOKEN_ENDPOINT, {
82
+ method: 'POST',
83
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
84
+ body: new URLSearchParams({
85
+ code,
86
+ client_id: clientId,
87
+ client_secret: clientSecret,
88
+ redirect_uri: redirectUri,
89
+ grant_type: 'authorization_code',
90
+ }),
91
+ });
92
+ if (!tokenResp.ok) {
93
+ const details = await tokenResp.text();
94
+ logger.error('Failed to exchange Google OAuth code', { status: tokenResp.status, details });
95
+ throw new Error(`token_exchange_failed: ${tokenResp.status}`);
96
+ }
97
+ const tokenData = (await tokenResp.json());
98
+ // Fetch Google profile
99
+ const profileResp = await fetch(GOOGLE_OAUTH_CONSTANTS.USERINFO_ENDPOINT, {
100
+ headers: { Authorization: `Bearer ${tokenData.access_token}` },
101
+ });
102
+ if (!profileResp.ok) {
103
+ logger.error('Failed to fetch Google profile', { status: profileResp.status });
104
+ throw new Error(`profile_fetch_failed: ${profileResp.status}`);
105
+ }
106
+ const profile = (await profileResp.json());
107
+ if (!profile.email) {
108
+ throw new Error('no_email');
109
+ }
110
+ // Create or find user and store tokens
111
+ const users = UserIdentityService.getInstance();
112
+ const user = await users.createOrUpdateUser({ email: profile.email });
113
+ if (tokenData.refresh_token || tokenData.access_token) {
114
+ await users.connectService(user.id, 'google', {
115
+ refreshToken: tokenData.refresh_token || tokenData.access_token,
116
+ accessToken: tokenData.access_token,
117
+ scopes: LOGIN_SCOPES,
118
+ });
119
+ }
120
+ return {
121
+ user,
122
+ profile: { email: profile.email, name: profile.name, picture: profile.picture },
123
+ tokenData: { access_token: tokenData.access_token, refresh_token: tokenData.refresh_token },
124
+ };
125
+ }
126
+ /**
127
+ * Sign a JWT using HMAC-SHA256.
128
+ *
129
+ * @param payload - JWT payload object
130
+ * @returns Signed JWT string (header.payload.signature)
131
+ */
132
+ export function signJwt(payload) {
133
+ const header = { alg: 'HS256', typ: 'JWT' };
134
+ const headerB64 = Buffer.from(JSON.stringify(header)).toString('base64url');
135
+ const payloadB64 = Buffer.from(JSON.stringify(payload)).toString('base64url');
136
+ const signature = crypto
137
+ .createHmac('sha256', AUTH_CONSTANTS.JWT.DEFAULT_SECRET)
138
+ .update(`${headerB64}.${payloadB64}`)
139
+ .digest('base64url');
140
+ return `${headerB64}.${payloadB64}.${signature}`;
141
+ }
142
+ /**
143
+ * Verify a JWT signed with HMAC-SHA256.
144
+ *
145
+ * @param token - JWT string (header.payload.signature)
146
+ * @returns Decoded payload if valid, null if invalid or expired
147
+ */
148
+ export function verifyJwt(token) {
149
+ try {
150
+ const parts = token.split('.');
151
+ if (parts.length !== 3)
152
+ return null;
153
+ const [headerB64, payloadB64, signature] = parts;
154
+ const expectedSig = crypto
155
+ .createHmac('sha256', AUTH_CONSTANTS.JWT.DEFAULT_SECRET)
156
+ .update(`${headerB64}.${payloadB64}`)
157
+ .digest('base64url');
158
+ if (signature !== expectedSig)
159
+ return null;
160
+ const payload = JSON.parse(Buffer.from(payloadB64, 'base64url').toString('utf8'));
161
+ // Check expiry
162
+ if (payload.exp && payload.exp < Math.floor(Date.now() / 1000)) {
163
+ return null;
164
+ }
165
+ return payload;
166
+ }
167
+ catch {
168
+ return null;
169
+ }
170
+ }
171
+ // ---------------------------------------------------------------------------
172
+ // Route handlers
173
+ // ---------------------------------------------------------------------------
174
+ /**
175
+ * GET /api/cloud/google/start
176
+ *
177
+ * Redirects the browser to the Google OAuth consent screen.
178
+ *
179
+ * @param req - Express request with optional query: { redirect }
180
+ * @param res - Express response (302 redirect)
181
+ * @param next - Next function for error propagation
182
+ */
183
+ export async function cloudGoogleStart(req, res, next) {
184
+ try {
185
+ const postLoginRedirect = req.query['redirect'] ? String(req.query['redirect']) : '';
186
+ const url = buildGoogleOAuthUrl(req, postLoginRedirect);
187
+ logger.info('Redirecting to Google OAuth consent screen');
188
+ res.redirect(url);
189
+ }
190
+ catch (error) {
191
+ if (error instanceof Error && error.message.includes('GOOGLE_CLIENT_ID')) {
192
+ res.status(500).json({ success: false, error: error.message });
193
+ return;
194
+ }
195
+ logger.error('Failed to initiate Google OAuth', {
196
+ error: error instanceof Error ? error.message : String(error),
197
+ });
198
+ next(error);
199
+ }
200
+ }
201
+ /**
202
+ * GET /api/cloud/google/callback
203
+ *
204
+ * Handles the Google OAuth redirect, exchanges code, issues JWT, and redirects.
205
+ *
206
+ * @param req - Express request with query: { code, state? }
207
+ * @param res - Express response (302 redirect to frontend)
208
+ * @param next - Next function for error propagation
209
+ */
210
+ export async function cloudGoogleCallback(req, res, next) {
211
+ try {
212
+ const code = req.query['code'] ? String(req.query['code']) : '';
213
+ const state = req.query['state'] ? String(req.query['state']) : '';
214
+ const errorParam = req.query['error'] ? String(req.query['error']) : '';
215
+ const consoleUrl = CLOUD_CONSOLE_FRONTEND_URL();
216
+ if (errorParam) {
217
+ logger.warn('Google OAuth returned error', { error: errorParam });
218
+ res.redirect(`${consoleUrl}/login?error=${encodeURIComponent(errorParam)}`);
219
+ return;
220
+ }
221
+ if (!code) {
222
+ logger.warn('Google OAuth callback missing code');
223
+ res.redirect(`${consoleUrl}/login?error=missing_code`);
224
+ return;
225
+ }
226
+ let result;
227
+ try {
228
+ result = await exchangeCodeAndCreateUser(code, req);
229
+ }
230
+ catch (err) {
231
+ const errMsg = err instanceof Error ? err.message : String(err);
232
+ logger.error('Google OAuth exchange failed', { error: errMsg });
233
+ const errorCode = errMsg.split(':')[0] || 'exchange_failed';
234
+ res.redirect(`${consoleUrl}/login?error=${encodeURIComponent(errorCode)}`);
235
+ return;
236
+ }
237
+ // Resolve device ID for JWT (enables Cloud-side auto-registration on poll/send)
238
+ let deviceId;
239
+ try {
240
+ const identity = await DeviceIdentityService.getInstance().getOrCreateIdentity();
241
+ deviceId = identity.deviceId;
242
+ }
243
+ catch {
244
+ logger.debug('Could not resolve deviceId for JWT (non-fatal)');
245
+ }
246
+ // Issue JWT access token
247
+ const now = Math.floor(Date.now() / 1000);
248
+ const accessToken = signJwt({
249
+ sub: result.user.id,
250
+ email: result.profile.email,
251
+ name: result.profile.name || '',
252
+ plan: DEFAULT_USER_PLAN,
253
+ ...(deviceId && { deviceId }),
254
+ iat: now,
255
+ exp: now + AUTH_CONSTANTS.JWT.ACCESS_TOKEN_EXPIRY_S,
256
+ iss: AUTH_CONSTANTS.JWT.ISSUER,
257
+ type: 'access',
258
+ });
259
+ // Issue refresh token (long-lived, enables auto-renewal after access token expires)
260
+ const refreshToken = signJwt({
261
+ sub: result.user.id,
262
+ email: result.profile.email,
263
+ name: result.profile.name || '',
264
+ plan: DEFAULT_USER_PLAN,
265
+ ...(deviceId && { deviceId }),
266
+ iat: now,
267
+ exp: now + AUTH_CONSTANTS.JWT.REFRESH_TOKEN_EXPIRY_S,
268
+ iss: AUTH_CONSTANTS.JWT.ISSUER,
269
+ type: 'refresh',
270
+ });
271
+ // Parse state for post-login redirect
272
+ let postLoginRedirect = '';
273
+ if (state) {
274
+ try {
275
+ const parsed = JSON.parse(Buffer.from(state, 'base64url').toString('utf8'));
276
+ postLoginRedirect = parsed.redirectTo || parsed.redirect || '';
277
+ }
278
+ catch {
279
+ logger.warn('Failed to parse OAuth state parameter');
280
+ }
281
+ }
282
+ const finalRedirect = postLoginRedirect || consoleUrl;
283
+ const separator = finalRedirect.includes('?') ? '&' : '?';
284
+ // Persist tokens to CloudClientService immediately so the refresh token
285
+ // is written to ~/.crewly/cloud/config.json before the frontend calls /connect.
286
+ try {
287
+ const cloudUrl = `${req.protocol}://${req.get('host')}`;
288
+ const client = CloudClientService.getInstance();
289
+ client.connectLocal(cloudUrl, accessToken, DEFAULT_USER_PLAN, refreshToken);
290
+ }
291
+ catch (connectErr) {
292
+ logger.warn('Failed to connect CloudClientService during OAuth callback (non-fatal)', {
293
+ error: connectErr instanceof Error ? connectErr.message : String(connectErr),
294
+ });
295
+ }
296
+ logger.info('Cloud Google OAuth login successful', { email: result.profile.email, userId: result.user.id });
297
+ res.redirect(`${finalRedirect}${separator}token=${accessToken}&refreshToken=${refreshToken}`);
298
+ }
299
+ catch (error) {
300
+ logger.error('Cloud Google OAuth callback error', {
301
+ error: error instanceof Error ? error.message : String(error),
302
+ });
303
+ next(error);
304
+ }
305
+ }
306
+ /**
307
+ * POST /api/cloud/google/url
308
+ *
309
+ * Returns the Google OAuth consent URL as JSON (for SPA clients).
310
+ *
311
+ * @param req - Request with optional body: { redirectTo, redirectUrl }
312
+ * @param res - Response returning { success, data: { url } }
313
+ * @param next - Next function for error propagation
314
+ */
315
+ export async function cloudGoogleUrl(req, res, next) {
316
+ try {
317
+ const postLoginRedirect = req.body?.redirectTo || req.body?.redirectUrl || '';
318
+ const url = buildGoogleOAuthUrl(req, postLoginRedirect);
319
+ logger.info('Returning Google OAuth URL for SPA client');
320
+ res.json({ success: true, data: { url } });
321
+ }
322
+ catch (error) {
323
+ if (error instanceof Error && error.message.includes('GOOGLE_CLIENT_ID')) {
324
+ res.status(500).json({ success: false, error: error.message });
325
+ return;
326
+ }
327
+ logger.error('Failed to generate Google OAuth URL', {
328
+ error: error instanceof Error ? error.message : String(error),
329
+ });
330
+ next(error);
331
+ }
332
+ }
333
+ /**
334
+ * POST /api/cloud/google/callback
335
+ *
336
+ * SPA-friendly code exchange: accepts { code } in body, returns JWT + user as JSON.
337
+ *
338
+ * @param req - Request with body: { code }
339
+ * @param res - Response returning { success, data: { accessToken, refreshToken, expiresIn, user } }
340
+ * @param next - Next function for error propagation
341
+ */
342
+ export async function cloudGoogleCallbackPost(req, res, next) {
343
+ try {
344
+ const { code } = req.body;
345
+ if (!code) {
346
+ res.status(400).json({ success: false, error: 'Missing authorization code' });
347
+ return;
348
+ }
349
+ const result = await exchangeCodeAndCreateUser(code, req);
350
+ // Resolve device ID for JWT (enables Cloud-side auto-registration on poll/send)
351
+ let deviceIdForJwt;
352
+ try {
353
+ const identity = await DeviceIdentityService.getInstance().getOrCreateIdentity();
354
+ deviceIdForJwt = identity.deviceId;
355
+ }
356
+ catch {
357
+ logger.debug('Could not resolve deviceId for JWT (non-fatal)');
358
+ }
359
+ // Issue access token
360
+ const now = Math.floor(Date.now() / 1000);
361
+ const accessToken = signJwt({
362
+ sub: result.user.id,
363
+ email: result.profile.email,
364
+ name: result.profile.name || '',
365
+ plan: DEFAULT_USER_PLAN,
366
+ ...(deviceIdForJwt && { deviceId: deviceIdForJwt }),
367
+ iat: now,
368
+ exp: now + AUTH_CONSTANTS.JWT.ACCESS_TOKEN_EXPIRY_S,
369
+ iss: AUTH_CONSTANTS.JWT.ISSUER,
370
+ type: 'access',
371
+ });
372
+ // Issue refresh token (longer lived, carries user claims for token refresh)
373
+ const refreshToken = signJwt({
374
+ sub: result.user.id,
375
+ email: result.profile.email,
376
+ name: result.profile.name || '',
377
+ plan: DEFAULT_USER_PLAN,
378
+ ...(deviceIdForJwt && { deviceId: deviceIdForJwt }),
379
+ iat: now,
380
+ exp: now + AUTH_CONSTANTS.JWT.REFRESH_TOKEN_EXPIRY_S,
381
+ iss: AUTH_CONSTANTS.JWT.ISSUER,
382
+ type: 'refresh',
383
+ });
384
+ // Persist tokens to CloudClientService immediately so the refresh token
385
+ // is written to ~/.crewly/cloud/config.json before the frontend calls /connect.
386
+ try {
387
+ const cloudUrl = `${req.protocol}://${req.get('host')}`;
388
+ const client = CloudClientService.getInstance();
389
+ client.connectLocal(cloudUrl, accessToken, DEFAULT_USER_PLAN, refreshToken);
390
+ }
391
+ catch (connectErr) {
392
+ logger.warn('Failed to connect CloudClientService during OAuth POST callback (non-fatal)', {
393
+ error: connectErr instanceof Error ? connectErr.message : String(connectErr),
394
+ });
395
+ }
396
+ logger.info('Cloud Google OAuth login successful (POST)', { email: result.profile.email, userId: result.user.id });
397
+ res.json({
398
+ success: true,
399
+ data: {
400
+ accessToken,
401
+ refreshToken,
402
+ expiresIn: AUTH_CONSTANTS.JWT.ACCESS_TOKEN_EXPIRY_S,
403
+ user: {
404
+ id: result.user.id,
405
+ email: result.profile.email,
406
+ displayName: result.profile.name || '',
407
+ plan: DEFAULT_USER_PLAN,
408
+ createdAt: result.user.createdAt || '',
409
+ },
410
+ },
411
+ });
412
+ }
413
+ catch (error) {
414
+ const errMsg = error instanceof Error ? error.message : String(error);
415
+ if (errMsg.includes('credentials not configured')) {
416
+ res.status(500).json({ success: false, error: 'Google OAuth credentials not configured' });
417
+ return;
418
+ }
419
+ if (errMsg.startsWith('token_exchange_failed') || errMsg.startsWith('profile_fetch_failed') || errMsg === 'no_email') {
420
+ res.status(400).json({ success: false, error: errMsg.includes(':') ? errMsg.split(':')[0] : errMsg });
421
+ return;
422
+ }
423
+ logger.error('Cloud Google OAuth callback (POST) error', { error: errMsg });
424
+ next(error);
425
+ }
426
+ }
427
+ //# sourceMappingURL=cloud-google-auth.controller.js.map