@memberjunction/server 6.2.0-edge.3 → 6.2.0-edge.5

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 (543) hide show
  1. package/README.md +20 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/agentSessions/BridgeHostInstance.d.ts +25 -0
  4. package/dist/agentSessions/BridgeHostInstance.d.ts.map +1 -0
  5. package/dist/agentSessions/BridgeHostInstance.js +30 -0
  6. package/dist/agentSessions/BridgeHostInstance.js.map +1 -0
  7. package/dist/agentSessions/HostInstance.d.ts +75 -11
  8. package/dist/agentSessions/HostInstance.d.ts.map +1 -1
  9. package/dist/agentSessions/HostInstance.js +99 -28
  10. package/dist/agentSessions/HostInstance.js.map +1 -1
  11. package/dist/agentSessions/ReturningVisitorRecap.d.ts.map +1 -1
  12. package/dist/agentSessions/ReturningVisitorRecap.js +7 -3
  13. package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
  14. package/dist/agentSessions/SessionJanitor.d.ts +236 -27
  15. package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
  16. package/dist/agentSessions/SessionJanitor.js +682 -54
  17. package/dist/agentSessions/SessionJanitor.js.map +1 -1
  18. package/dist/agentSessions/SessionManager.d.ts +48 -3
  19. package/dist/agentSessions/SessionManager.d.ts.map +1 -1
  20. package/dist/agentSessions/SessionManager.js +112 -9
  21. package/dist/agentSessions/SessionManager.js.map +1 -1
  22. package/dist/agentSessions/SessionRunIDVerifier.d.ts +63 -0
  23. package/dist/agentSessions/SessionRunIDVerifier.d.ts.map +1 -0
  24. package/dist/agentSessions/SessionRunIDVerifier.js +129 -0
  25. package/dist/agentSessions/SessionRunIDVerifier.js.map +1 -0
  26. package/dist/agentSessions/index.d.ts +2 -0
  27. package/dist/agentSessions/index.d.ts.map +1 -1
  28. package/dist/agentSessions/index.js +10 -3
  29. package/dist/agentSessions/index.js.map +1 -1
  30. package/dist/apiRoot.d.ts +32 -0
  31. package/dist/apiRoot.d.ts.map +1 -0
  32. package/dist/apiRoot.js +67 -0
  33. package/dist/apiRoot.js.map +1 -0
  34. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
  35. package/dist/auth/AuthProviderCatalogRouter.js +25 -0
  36. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
  37. package/dist/auth/LoginScreenEngine.d.ts +22 -0
  38. package/dist/auth/LoginScreenEngine.d.ts.map +1 -0
  39. package/dist/auth/LoginScreenEngine.js +57 -0
  40. package/dist/auth/LoginScreenEngine.js.map +1 -0
  41. package/dist/auth/actionAuthorization.d.ts +40 -0
  42. package/dist/auth/actionAuthorization.d.ts.map +1 -0
  43. package/dist/auth/actionAuthorization.js +94 -0
  44. package/dist/auth/actionAuthorization.js.map +1 -0
  45. package/dist/auth/index.d.ts +1 -0
  46. package/dist/auth/index.d.ts.map +1 -1
  47. package/dist/auth/index.js +4 -10
  48. package/dist/auth/index.js.map +1 -1
  49. package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
  50. package/dist/auth/magicLink/MagicLinkRouter.js +3 -2
  51. package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
  52. package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
  53. package/dist/auth/magicLink/MagicLinkService.js +6 -3
  54. package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
  55. package/dist/auth/newUsers.d.ts +10 -0
  56. package/dist/auth/newUsers.d.ts.map +1 -1
  57. package/dist/auth/newUsers.js +80 -11
  58. package/dist/auth/newUsers.js.map +1 -1
  59. package/dist/config.d.ts +2514 -22
  60. package/dist/config.d.ts.map +1 -1
  61. package/dist/config.js +166 -4
  62. package/dist/config.js.map +1 -1
  63. package/dist/context.d.ts +8 -0
  64. package/dist/context.d.ts.map +1 -1
  65. package/dist/context.js +14 -11
  66. package/dist/context.js.map +1 -1
  67. package/dist/coreRoutes.d.ts +29 -0
  68. package/dist/coreRoutes.d.ts.map +1 -0
  69. package/dist/coreRoutes.js +142 -0
  70. package/dist/coreRoutes.js.map +1 -0
  71. package/dist/generated/graphql-schemas/__mj.d.ts +504 -3
  72. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  73. package/dist/generated/graphql-schemas/__mj.js +2456 -7
  74. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  75. package/dist/generic/CacheInvalidationResolver.d.ts +43 -8
  76. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
  77. package/dist/generic/CacheInvalidationResolver.js +59 -19
  78. package/dist/generic/CacheInvalidationResolver.js.map +1 -1
  79. package/dist/generic/OrphanedConversationDetailReconciler.js +3 -3
  80. package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -1
  81. package/dist/generic/PushStatusResolver.js +1 -1
  82. package/dist/generic/PushStatusResolver.js.map +1 -1
  83. package/dist/generic/ResolverBase.d.ts +123 -48
  84. package/dist/generic/ResolverBase.d.ts.map +1 -1
  85. package/dist/generic/ResolverBase.js +293 -305
  86. package/dist/generic/ResolverBase.js.map +1 -1
  87. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  88. package/dist/generic/RunViewResolver.js +16 -0
  89. package/dist/generic/RunViewResolver.js.map +1 -1
  90. package/dist/globalCors.d.ts +33 -0
  91. package/dist/globalCors.d.ts.map +1 -0
  92. package/dist/globalCors.js +58 -0
  93. package/dist/globalCors.js.map +1 -0
  94. package/dist/index.d.ts +17 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +219 -278
  97. package/dist/index.js.map +1 -1
  98. package/dist/isolatedProvider.d.ts +20 -0
  99. package/dist/isolatedProvider.d.ts.map +1 -0
  100. package/dist/isolatedProvider.js +22 -0
  101. package/dist/isolatedProvider.js.map +1 -0
  102. package/dist/multiTenancy/index.d.ts.map +1 -1
  103. package/dist/multiTenancy/index.js +22 -2
  104. package/dist/multiTenancy/index.js.map +1 -1
  105. package/dist/realtimeProxy/RealtimeProxyServer.d.ts +44 -4
  106. package/dist/realtimeProxy/RealtimeProxyServer.d.ts.map +1 -1
  107. package/dist/realtimeProxy/RealtimeProxyServer.js +121 -16
  108. package/dist/realtimeProxy/RealtimeProxyServer.js.map +1 -1
  109. package/dist/realtimeProxy/RealtimeRelayTunnel.d.ts +171 -0
  110. package/dist/realtimeProxy/RealtimeRelayTunnel.d.ts.map +1 -0
  111. package/dist/realtimeProxy/RealtimeRelayTunnel.js +532 -0
  112. package/dist/realtimeProxy/RealtimeRelayTunnel.js.map +1 -0
  113. package/dist/realtimeSessions/RealtimeSessionEventService.d.ts +148 -0
  114. package/dist/realtimeSessions/RealtimeSessionEventService.d.ts.map +1 -0
  115. package/dist/realtimeSessions/RealtimeSessionEventService.js +191 -0
  116. package/dist/realtimeSessions/RealtimeSessionEventService.js.map +1 -0
  117. package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts +66 -0
  118. package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts.map +1 -0
  119. package/dist/realtimeSessions/RealtimeSessionVerificationService.js +139 -0
  120. package/dist/realtimeSessions/RealtimeSessionVerificationService.js.map +1 -0
  121. package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts +38 -0
  122. package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts.map +1 -0
  123. package/dist/realtimeSessions/RealtimeVerifyRouter.js +99 -0
  124. package/dist/realtimeSessions/RealtimeVerifyRouter.js.map +1 -0
  125. package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts +100 -0
  126. package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts.map +1 -0
  127. package/dist/realtimeSessions/RecordingAssemblyScheduler.js +173 -0
  128. package/dist/realtimeSessions/RecordingAssemblyScheduler.js.map +1 -0
  129. package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts +61 -0
  130. package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts.map +1 -0
  131. package/dist/realtimeSessions/SessionVerificationPortsBase.js +149 -0
  132. package/dist/realtimeSessions/SessionVerificationPortsBase.js.map +1 -0
  133. package/dist/realtimeSessions/SlidingWindowRateLimiter.d.ts +57 -0
  134. package/dist/realtimeSessions/SlidingWindowRateLimiter.d.ts.map +1 -0
  135. package/dist/realtimeSessions/SlidingWindowRateLimiter.js +69 -0
  136. package/dist/realtimeSessions/SlidingWindowRateLimiter.js.map +1 -0
  137. package/dist/realtimeSessions/index.d.ts +19 -0
  138. package/dist/realtimeSessions/index.d.ts.map +1 -0
  139. package/dist/realtimeSessions/index.js +19 -0
  140. package/dist/realtimeSessions/index.js.map +1 -0
  141. package/dist/realtimeSessions/ownedRealtimeSession.d.ts +30 -0
  142. package/dist/realtimeSessions/ownedRealtimeSession.d.ts.map +1 -0
  143. package/dist/realtimeSessions/ownedRealtimeSession.js +47 -0
  144. package/dist/realtimeSessions/ownedRealtimeSession.js.map +1 -0
  145. package/dist/realtimeSessions/sessionAccess.d.ts +92 -0
  146. package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -0
  147. package/dist/realtimeSessions/sessionAccess.js +94 -0
  148. package/dist/realtimeSessions/sessionAccess.js.map +1 -0
  149. package/dist/realtimeSessions/sessionConfigStamps.d.ts +70 -0
  150. package/dist/realtimeSessions/sessionConfigStamps.d.ts.map +1 -0
  151. package/dist/realtimeSessions/sessionConfigStamps.js +93 -0
  152. package/dist/realtimeSessions/sessionConfigStamps.js.map +1 -0
  153. package/dist/realtimeSessions/subscriptionAuthorization.d.ts +65 -0
  154. package/dist/realtimeSessions/subscriptionAuthorization.d.ts.map +1 -0
  155. package/dist/realtimeSessions/subscriptionAuthorization.js +71 -0
  156. package/dist/realtimeSessions/subscriptionAuthorization.js.map +1 -0
  157. package/dist/realtimeSessions/verificationCore.d.ts +243 -0
  158. package/dist/realtimeSessions/verificationCore.d.ts.map +1 -0
  159. package/dist/realtimeSessions/verificationCore.js +356 -0
  160. package/dist/realtimeSessions/verificationCore.js.map +1 -0
  161. package/dist/realtimeSessions/verificationPages.d.ts +66 -0
  162. package/dist/realtimeSessions/verificationPages.d.ts.map +1 -0
  163. package/dist/realtimeSessions/verificationPages.js +110 -0
  164. package/dist/realtimeSessions/verificationPages.js.map +1 -0
  165. package/dist/realtimeSessions/verificationPolicy.d.ts +147 -0
  166. package/dist/realtimeSessions/verificationPolicy.d.ts.map +1 -0
  167. package/dist/realtimeSessions/verificationPolicy.js +249 -0
  168. package/dist/realtimeSessions/verificationPolicy.js.map +1 -0
  169. package/dist/realtimeSessions/verificationWorkflow.d.ts +263 -0
  170. package/dist/realtimeSessions/verificationWorkflow.d.ts.map +1 -0
  171. package/dist/realtimeSessions/verificationWorkflow.js +435 -0
  172. package/dist/realtimeSessions/verificationWorkflow.js.map +1 -0
  173. package/dist/realtimeWidget/widgetGuestElevation.d.ts +20 -2
  174. package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
  175. package/dist/realtimeWidget/widgetGuestElevation.js +31 -2
  176. package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
  177. package/dist/resolvers/ActionResolver.d.ts +31 -5
  178. package/dist/resolvers/ActionResolver.d.ts.map +1 -1
  179. package/dist/resolvers/ActionResolver.js +75 -14
  180. package/dist/resolvers/ActionResolver.js.map +1 -1
  181. package/dist/resolvers/AdhocQueryResolver.d.ts +14 -1
  182. package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
  183. package/dist/resolvers/AdhocQueryResolver.js +21 -5
  184. package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
  185. package/dist/resolvers/ArtifactFileResolver.d.ts +5 -1
  186. package/dist/resolvers/ArtifactFileResolver.d.ts.map +1 -1
  187. package/dist/resolvers/ArtifactFileResolver.js +9 -7
  188. package/dist/resolvers/ArtifactFileResolver.js.map +1 -1
  189. package/dist/resolvers/CacheStatsResolver.d.ts +27 -0
  190. package/dist/resolvers/CacheStatsResolver.d.ts.map +1 -1
  191. package/dist/resolvers/CacheStatsResolver.js +113 -2
  192. package/dist/resolvers/CacheStatsResolver.js.map +1 -1
  193. package/dist/resolvers/ClientToolRequestResolver.d.ts +4 -2
  194. package/dist/resolvers/ClientToolRequestResolver.d.ts.map +1 -1
  195. package/dist/resolvers/ClientToolRequestResolver.js +28 -10
  196. package/dist/resolvers/ClientToolRequestResolver.js.map +1 -1
  197. package/dist/resolvers/ConversationRunEventsResolver.d.ts +8 -4
  198. package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -1
  199. package/dist/resolvers/ConversationRunEventsResolver.js +6 -6
  200. package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -1
  201. package/dist/resolvers/DatasetResolver.d.ts +24 -3
  202. package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
  203. package/dist/resolvers/DatasetResolver.js +57 -8
  204. package/dist/resolvers/DatasetResolver.js.map +1 -1
  205. package/dist/resolvers/EntityRecordNameResolver.d.ts +2 -1
  206. package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
  207. package/dist/resolvers/EntityRecordNameResolver.js +3 -2
  208. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  209. package/dist/resolvers/FetchEntityVectorsResolver.d.ts +27 -1
  210. package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
  211. package/dist/resolvers/FetchEntityVectorsResolver.js +148 -2
  212. package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
  213. package/dist/resolvers/FileResolver.d.ts +82 -11
  214. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  215. package/dist/resolvers/FileResolver.js +279 -101
  216. package/dist/resolvers/FileResolver.js.map +1 -1
  217. package/dist/resolvers/GetDataContextDataResolver.d.ts +33 -7
  218. package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
  219. package/dist/resolvers/GetDataContextDataResolver.js +117 -38
  220. package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
  221. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  222. package/dist/resolvers/GetDataResolver.js +6 -3
  223. package/dist/resolvers/GetDataResolver.js.map +1 -1
  224. package/dist/resolvers/HumanHandoffResolver.d.ts.map +1 -1
  225. package/dist/resolvers/HumanHandoffResolver.js +7 -1
  226. package/dist/resolvers/HumanHandoffResolver.js.map +1 -1
  227. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  228. package/dist/resolvers/IntegrationDiscoveryResolver.js +4 -2
  229. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  230. package/dist/resolvers/MCPResolver.d.ts.map +1 -1
  231. package/dist/resolvers/MCPResolver.js +9 -4
  232. package/dist/resolvers/MCPResolver.js.map +1 -1
  233. package/dist/resolvers/QueryResolver.d.ts +2 -0
  234. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  235. package/dist/resolvers/QueryResolver.js +13 -0
  236. package/dist/resolvers/QueryResolver.js.map +1 -1
  237. package/dist/resolvers/RealtimeBridgeResolver.d.ts +54 -2
  238. package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -1
  239. package/dist/resolvers/RealtimeBridgeResolver.js +155 -10
  240. package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -1
  241. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +157 -33
  242. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  243. package/dist/resolvers/RealtimeClientSessionResolver.js +404 -116
  244. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  245. package/dist/resolvers/RealtimeSessionEventsResolver.d.ts +61 -0
  246. package/dist/resolvers/RealtimeSessionEventsResolver.d.ts.map +1 -0
  247. package/dist/resolvers/RealtimeSessionEventsResolver.js +130 -0
  248. package/dist/resolvers/RealtimeSessionEventsResolver.js.map +1 -0
  249. package/dist/resolvers/RealtimeSessionVerificationResolver.d.ts +85 -0
  250. package/dist/resolvers/RealtimeSessionVerificationResolver.d.ts.map +1 -0
  251. package/dist/resolvers/RealtimeSessionVerificationResolver.js +188 -0
  252. package/dist/resolvers/RealtimeSessionVerificationResolver.js.map +1 -0
  253. package/dist/resolvers/RemoteBrowserActionResolver.d.ts +2 -0
  254. package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -1
  255. package/dist/resolvers/RemoteBrowserActionResolver.js +5 -1
  256. package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -1
  257. package/dist/resolvers/RunAIAgentResolver.d.ts +10 -0
  258. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  259. package/dist/resolvers/RunAIAgentResolver.js +100 -14
  260. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  261. package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
  262. package/dist/resolvers/RunTemplateResolver.js +12 -11
  263. package/dist/resolvers/RunTemplateResolver.js.map +1 -1
  264. package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts +12 -1
  265. package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts.map +1 -1
  266. package/dist/resolvers/SearchKnowledgeStreamResolver.js +15 -2
  267. package/dist/resolvers/SearchKnowledgeStreamResolver.js.map +1 -1
  268. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  269. package/dist/resolvers/SqlLoggingConfigResolver.js +2 -3
  270. package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
  271. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  272. package/dist/resolvers/SyncDataResolver.js +6 -2
  273. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  274. package/dist/resolvers/SyncRolesUsersResolver.d.ts +2 -0
  275. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
  276. package/dist/resolvers/SyncRolesUsersResolver.js +23 -6
  277. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  278. package/dist/resolvers/TaskGraphFrameResolver.d.ts +2 -1
  279. package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
  280. package/dist/resolvers/TaskGraphFrameResolver.js +28 -1
  281. package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
  282. package/dist/resolvers/TestQuerySQLResolver.d.ts +24 -0
  283. package/dist/resolvers/TestQuerySQLResolver.d.ts.map +1 -1
  284. package/dist/resolvers/TestQuerySQLResolver.js +65 -13
  285. package/dist/resolvers/TestQuerySQLResolver.js.map +1 -1
  286. package/dist/resolvers/TransactionGroupResolver.d.ts +19 -2
  287. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  288. package/dist/resolvers/TransactionGroupResolver.js +102 -24
  289. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  290. package/dist/resolvers/UserAvatarResolver.d.ts +16 -0
  291. package/dist/resolvers/UserAvatarResolver.d.ts.map +1 -0
  292. package/dist/resolvers/UserAvatarResolver.js +124 -0
  293. package/dist/resolvers/UserAvatarResolver.js.map +1 -0
  294. package/dist/resolvers/UserResolver.d.ts.map +1 -1
  295. package/dist/resolvers/UserResolver.js +2 -17
  296. package/dist/resolvers/UserResolver.js.map +1 -1
  297. package/dist/resolvers/agent-run-data-guard.d.ts +31 -0
  298. package/dist/resolvers/agent-run-data-guard.d.ts.map +1 -0
  299. package/dist/resolvers/agent-run-data-guard.js +72 -0
  300. package/dist/resolvers/agent-run-data-guard.js.map +1 -0
  301. package/dist/resolvers/agentVisionConsentAudit.d.ts +37 -0
  302. package/dist/resolvers/agentVisionConsentAudit.d.ts.map +1 -0
  303. package/dist/resolvers/agentVisionConsentAudit.js +63 -0
  304. package/dist/resolvers/agentVisionConsentAudit.js.map +1 -0
  305. package/dist/resolvers/avatarInputValidation.d.ts +40 -0
  306. package/dist/resolvers/avatarInputValidation.d.ts.map +1 -0
  307. package/dist/resolvers/avatarInputValidation.js +97 -0
  308. package/dist/resolvers/avatarInputValidation.js.map +1 -0
  309. package/dist/resolvers/currentUserRoles.d.ts +29 -0
  310. package/dist/resolvers/currentUserRoles.d.ts.map +1 -1
  311. package/dist/resolvers/currentUserRoles.js +30 -0
  312. package/dist/resolvers/currentUserRoles.js.map +1 -1
  313. package/dist/resolvers/meetings/meetingMutations.d.ts +6 -0
  314. package/dist/resolvers/meetings/meetingMutations.d.ts.map +1 -1
  315. package/dist/resolvers/meetings/meetingMutations.js +21 -0
  316. package/dist/resolvers/meetings/meetingMutations.js.map +1 -1
  317. package/dist/rest/RealtimeRecordingHandler.d.ts +49 -0
  318. package/dist/rest/RealtimeRecordingHandler.d.ts.map +1 -0
  319. package/dist/rest/RealtimeRecordingHandler.js +383 -0
  320. package/dist/rest/RealtimeRecordingHandler.js.map +1 -0
  321. package/dist/rest/ViewOperationsHandler.d.ts +3 -1
  322. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  323. package/dist/rest/ViewOperationsHandler.js +21 -12
  324. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  325. package/dist/rest/setupRESTEndpoints.d.ts +6 -0
  326. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  327. package/dist/rest/setupRESTEndpoints.js +6 -0
  328. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  329. package/dist/serverExtensionReservedRoots.d.ts +12 -10
  330. package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
  331. package/dist/serverExtensionReservedRoots.js +14 -17
  332. package/dist/serverExtensionReservedRoots.js.map +1 -1
  333. package/dist/services/MJStorageBlobStore.d.ts +8 -1
  334. package/dist/services/MJStorageBlobStore.d.ts.map +1 -1
  335. package/dist/services/MJStorageBlobStore.js +25 -19
  336. package/dist/services/MJStorageBlobStore.js.map +1 -1
  337. package/dist/services/StartTaskGraphDispatcher.js +2 -2
  338. package/dist/services/StartTaskGraphDispatcher.js.map +1 -1
  339. package/dist/services/TaskGraphActionRunner.d.ts +5 -3
  340. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  341. package/dist/services/TaskGraphActionRunner.js +27 -5
  342. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  343. package/dist/services/TaskGraphAgentRunner.d.ts +14 -2
  344. package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
  345. package/dist/services/TaskGraphAgentRunner.js +157 -9
  346. package/dist/services/TaskGraphAgentRunner.js.map +1 -1
  347. package/dist/services/TaskGraphContinuationDeliverer.d.ts +57 -4
  348. package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
  349. package/dist/services/TaskGraphContinuationDeliverer.js +607 -18
  350. package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
  351. package/dist/sharedCache.d.ts +105 -0
  352. package/dist/sharedCache.d.ts.map +1 -0
  353. package/dist/sharedCache.js +279 -0
  354. package/dist/sharedCache.js.map +1 -0
  355. package/dist/types.d.ts +6 -0
  356. package/dist/types.d.ts.map +1 -1
  357. package/dist/types.js.map +1 -1
  358. package/package.json +99 -96
  359. package/src/__tests__/ActionResolver.authorization.test.ts +353 -0
  360. package/src/__tests__/AdhocQueryResolver.sqlAuthorizer.test.ts +104 -0
  361. package/src/__tests__/BridgeHostInstance.test.ts +232 -0
  362. package/src/__tests__/ClientToolRequestResolver.test.ts +116 -0
  363. package/src/__tests__/DatasetResolver.itemFilters.test.ts +201 -0
  364. package/src/__tests__/EntityRecordNameResolver.rowSecurity.test.ts +152 -0
  365. package/src/__tests__/FetchEntityVectorsResolver.test.ts +433 -0
  366. package/src/__tests__/FileResolver.storageAccess.test.ts +562 -0
  367. package/src/__tests__/GetDataContextDataResolver.sqlItems.test.ts +416 -0
  368. package/src/__tests__/HostInstance.test.ts +84 -0
  369. package/src/__tests__/HumanHandoffResolver.test.ts +17 -0
  370. package/src/__tests__/ListOperationsResolver.adhocScreen.test.ts +137 -0
  371. package/src/__tests__/LoginScreenEngine.test.ts +86 -0
  372. package/src/__tests__/MJStorageBlobStore.storageGate.test.ts +63 -0
  373. package/src/__tests__/MeetingResolver.test.ts +75 -1
  374. package/src/__tests__/RealtimeBridgeResolver.test.ts +415 -6
  375. package/src/__tests__/RealtimeClientSessionResolver.configTamper.test.ts +383 -0
  376. package/src/__tests__/RealtimeClientSessionResolver.test.ts +682 -58
  377. package/src/__tests__/RealtimeProxyServer.test.ts +16 -1
  378. package/src/__tests__/RealtimeRelay.test.ts +876 -0
  379. package/src/__tests__/RecordingAssemblyScheduler.test.ts +178 -0
  380. package/src/__tests__/RemoteBrowserActionResolver.goalRunLink.test.ts +129 -0
  381. package/src/__tests__/ResolverBase.adhocReadScope.test.ts +133 -2
  382. package/src/__tests__/ResolverBase.aggregateScreen.test.ts +174 -0
  383. package/src/__tests__/ResolverBase.balancedClause.test.ts +155 -0
  384. package/src/__tests__/ResolverBase.clauseUnscopedRead.test.ts +127 -0
  385. package/src/__tests__/ResolverBase.clientOldValues.test.ts +212 -6
  386. package/src/__tests__/ResolverBase.filterEscaping.test.ts +5 -2
  387. package/src/__tests__/ReturningVisitorRecap.test.ts +115 -0
  388. package/src/__tests__/RunAIAgentResolver.branch.test.ts +170 -0
  389. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +6 -4
  390. package/src/__tests__/RunAIAgentResolver.runDataGuard.test.ts +258 -0
  391. package/src/__tests__/RunAIAgentResolver.stoppedPredecessor.test.ts +166 -0
  392. package/src/__tests__/RunTemplateResolver.test.ts +132 -0
  393. package/src/__tests__/RunViewResolver.cacheCheckForwarding.test.ts +63 -0
  394. package/src/__tests__/RunViewResolver.cacheCheckScreen.test.ts +165 -0
  395. package/src/__tests__/SearchKnowledgeStreamResolver.test.ts +161 -0
  396. package/src/__tests__/SessionJanitor.test.ts +1203 -21
  397. package/src/__tests__/SessionManager.test.ts +240 -17
  398. package/src/__tests__/SessionRunIDVerifier.test.ts +251 -0
  399. package/src/__tests__/SyncRolesUsersResolver.userRoles.test.ts +97 -0
  400. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +25 -0
  401. package/src/__tests__/TaskGraphAgentRunner.test.ts +266 -0
  402. package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +403 -22
  403. package/src/__tests__/TaskGraphFrameResolver.test.ts +22 -0
  404. package/src/__tests__/TestQuerySQLResolver.test.ts +274 -0
  405. package/src/__tests__/TransactionGroupResolver.refusals.test.ts +98 -1
  406. package/src/__tests__/UpdateMJDataContextItem.oldValues.test.ts +220 -0
  407. package/src/__tests__/UserAvatarResolver.test.ts +255 -0
  408. package/src/__tests__/UserResolver.currentUser.test.ts +16 -1
  409. package/src/__tests__/ViewOperationsHandler.clauseScreen.test.ts +157 -0
  410. package/src/__tests__/actionAuthorization.test.ts +130 -0
  411. package/src/__tests__/agent-run-data-guard.test.ts +130 -0
  412. package/src/__tests__/agentVisionConsentAudit.test.ts +118 -0
  413. package/src/__tests__/apiRootBoot.test.ts +202 -0
  414. package/src/__tests__/avatarInputValidation.test.ts +160 -0
  415. package/src/__tests__/cacheInvalidationRecordData.test.ts +64 -0
  416. package/src/__tests__/conversationRunEvents.test.ts +56 -14
  417. package/src/__tests__/globalCors.test.ts +217 -0
  418. package/src/__tests__/isolatedProviderTransactions.test.ts +169 -0
  419. package/src/__tests__/magicLinkService.consume.test.ts +6 -0
  420. package/src/__tests__/magicLinkService.provisionLog.test.ts +5 -0
  421. package/src/__tests__/multiTenancy.postgresRewrite.test.ts +181 -0
  422. package/src/__tests__/multiTenancy.security.test.ts +51 -0
  423. package/src/__tests__/multiTenancy.test.ts +1 -1
  424. package/src/__tests__/newUsers.template.test.ts +151 -0
  425. package/src/__tests__/newUsers.test.ts +74 -5
  426. package/src/__tests__/orphanedConversationDetailReconciler.test.ts +17 -2
  427. package/src/__tests__/ownedRealtimeSession.test.ts +39 -0
  428. package/src/__tests__/pushStatusResolver.filter.test.ts +7 -0
  429. package/src/__tests__/realtimeRecordingHandler.test.ts +652 -0
  430. package/src/__tests__/realtimeSessions/RealtimeSessionEventService.test.ts +201 -0
  431. package/src/__tests__/realtimeSessions/RealtimeSessionEventsResolver.test.ts +215 -0
  432. package/src/__tests__/realtimeSessions/RealtimeSessionVerificationResolver.test.ts +102 -0
  433. package/src/__tests__/realtimeSessions/RealtimeSessionVerificationService.test.ts +349 -0
  434. package/src/__tests__/realtimeSessions/RealtimeVerifyRouter.test.ts +131 -0
  435. package/src/__tests__/realtimeSessions/SlidingWindowRateLimiter.test.ts +56 -0
  436. package/src/__tests__/realtimeSessions/helpers.ts +4 -0
  437. package/src/__tests__/realtimeSessions/sessionAccess.test.ts +129 -0
  438. package/src/__tests__/realtimeSessions/sessionConfigStamps.test.ts +124 -0
  439. package/src/__tests__/realtimeSessions/verificationCore.test.ts +355 -0
  440. package/src/__tests__/realtimeSessions/verificationPages.test.ts +84 -0
  441. package/src/__tests__/realtimeSessions/verificationPolicy.test.ts +226 -0
  442. package/src/__tests__/realtimeSessions/verificationWorkflow.test.ts +633 -0
  443. package/src/__tests__/resolverBase.fls.test.ts +87 -4
  444. package/src/__tests__/serverExtensionHostOverlay.test.ts +66 -0
  445. package/src/__tests__/serverExtensionReservedRoots.test.ts +11 -96
  446. package/src/__tests__/sharedCache.test.ts +312 -0
  447. package/src/__tests__/widgetGuestElevation.test.ts +44 -0
  448. package/src/agentSessions/BridgeHostInstance.ts +32 -0
  449. package/src/agentSessions/HostInstance.ts +124 -28
  450. package/src/agentSessions/ReturningVisitorRecap.ts +7 -3
  451. package/src/agentSessions/SessionJanitor.ts +821 -59
  452. package/src/agentSessions/SessionManager.ts +138 -26
  453. package/src/agentSessions/SessionRunIDVerifier.ts +171 -0
  454. package/src/agentSessions/index.ts +10 -3
  455. package/src/apiRoot.ts +78 -0
  456. package/src/auth/AuthProviderCatalogRouter.ts +26 -0
  457. package/src/auth/LoginScreenEngine.ts +50 -0
  458. package/src/auth/actionAuthorization.ts +116 -0
  459. package/src/auth/index.ts +4 -8
  460. package/src/auth/magicLink/MagicLinkRouter.ts +3 -2
  461. package/src/auth/magicLink/MagicLinkService.ts +6 -3
  462. package/src/auth/newUsers.ts +99 -11
  463. package/src/config.ts +171 -5
  464. package/src/context.ts +15 -10
  465. package/src/coreRoutes.ts +166 -0
  466. package/src/generated/graphql-schemas/__mj.ts +1815 -57
  467. package/src/generic/CacheInvalidationResolver.ts +73 -18
  468. package/src/generic/OrphanedConversationDetailReconciler.ts +3 -3
  469. package/src/generic/PushStatusResolver.ts +1 -1
  470. package/src/generic/ResolverBase.ts +335 -326
  471. package/src/generic/RunViewResolver.ts +21 -0
  472. package/src/globalCors.ts +71 -0
  473. package/src/index.ts +231 -300
  474. package/src/isolatedProvider.ts +22 -0
  475. package/src/multiTenancy/index.ts +24 -2
  476. package/src/realtimeProxy/RealtimeProxyServer.ts +148 -16
  477. package/src/realtimeProxy/RealtimeRelayTunnel.ts +645 -0
  478. package/src/realtimeSessions/README.md +179 -0
  479. package/src/realtimeSessions/RealtimeSessionEventService.ts +274 -0
  480. package/src/realtimeSessions/RealtimeSessionVerificationService.ts +168 -0
  481. package/src/realtimeSessions/RealtimeVerifyRouter.ts +109 -0
  482. package/src/realtimeSessions/RecordingAssemblyScheduler.ts +234 -0
  483. package/src/realtimeSessions/SessionVerificationPortsBase.ts +189 -0
  484. package/src/realtimeSessions/SlidingWindowRateLimiter.ts +92 -0
  485. package/src/realtimeSessions/index.ts +18 -0
  486. package/src/realtimeSessions/ownedRealtimeSession.ts +55 -0
  487. package/src/realtimeSessions/sessionAccess.ts +145 -0
  488. package/src/realtimeSessions/sessionConfigStamps.ts +123 -0
  489. package/src/realtimeSessions/subscriptionAuthorization.ts +116 -0
  490. package/src/realtimeSessions/verificationCore.ts +502 -0
  491. package/src/realtimeSessions/verificationPages.ts +149 -0
  492. package/src/realtimeSessions/verificationPolicy.ts +321 -0
  493. package/src/realtimeSessions/verificationWorkflow.ts +702 -0
  494. package/src/realtimeWidget/widgetGuestElevation.ts +34 -2
  495. package/src/resolvers/ActionResolver.ts +84 -21
  496. package/src/resolvers/AdhocQueryResolver.ts +24 -6
  497. package/src/resolvers/ArtifactFileResolver.ts +9 -8
  498. package/src/resolvers/CacheStatsResolver.ts +89 -2
  499. package/src/resolvers/ClientToolRequestResolver.ts +25 -7
  500. package/src/resolvers/ConversationRunEventsResolver.ts +15 -11
  501. package/src/resolvers/DatasetResolver.ts +70 -10
  502. package/src/resolvers/EntityRecordNameResolver.ts +3 -2
  503. package/src/resolvers/FetchEntityVectorsResolver.ts +179 -2
  504. package/src/resolvers/FileResolver.ts +321 -106
  505. package/src/resolvers/GetDataContextDataResolver.ts +139 -41
  506. package/src/resolvers/GetDataResolver.ts +6 -3
  507. package/src/resolvers/HumanHandoffResolver.ts +8 -0
  508. package/src/resolvers/IntegrationDiscoveryResolver.ts +4 -2
  509. package/src/resolvers/MCPResolver.ts +8 -5
  510. package/src/resolvers/QueryResolver.ts +11 -0
  511. package/src/resolvers/RealtimeBridgeResolver.ts +163 -11
  512. package/src/resolvers/RealtimeClientSessionResolver.ts +511 -129
  513. package/src/resolvers/RealtimeSessionEventsResolver.ts +133 -0
  514. package/src/resolvers/RealtimeSessionVerificationResolver.ts +174 -0
  515. package/src/resolvers/RemoteBrowserActionResolver.ts +11 -1
  516. package/src/resolvers/RunAIAgentResolver.ts +116 -14
  517. package/src/resolvers/RunTemplateResolver.ts +13 -12
  518. package/src/resolvers/SearchKnowledgeStreamResolver.ts +19 -3
  519. package/src/resolvers/SqlLoggingConfigResolver.ts +2 -4
  520. package/src/resolvers/SyncDataResolver.ts +6 -2
  521. package/src/resolvers/SyncRolesUsersResolver.ts +24 -6
  522. package/src/resolvers/TaskGraphFrameResolver.ts +33 -1
  523. package/src/resolvers/TestQuerySQLResolver.ts +68 -13
  524. package/src/resolvers/TransactionGroupResolver.ts +131 -27
  525. package/src/resolvers/UserAvatarResolver.ts +111 -0
  526. package/src/resolvers/UserResolver.ts +2 -16
  527. package/src/resolvers/__tests__/GetDataResolver.validation.test.ts +95 -0
  528. package/src/resolvers/agent-run-data-guard.ts +89 -0
  529. package/src/resolvers/agentVisionConsentAudit.ts +82 -0
  530. package/src/resolvers/avatarInputValidation.ts +123 -0
  531. package/src/resolvers/currentUserRoles.ts +32 -1
  532. package/src/resolvers/meetings/meetingMutations.ts +21 -0
  533. package/src/rest/RealtimeRecordingHandler.ts +464 -0
  534. package/src/rest/ViewOperationsHandler.ts +29 -13
  535. package/src/rest/setupRESTEndpoints.ts +6 -0
  536. package/src/serverExtensionReservedRoots.ts +14 -17
  537. package/src/services/MJStorageBlobStore.ts +31 -30
  538. package/src/services/StartTaskGraphDispatcher.ts +2 -2
  539. package/src/services/TaskGraphActionRunner.ts +25 -5
  540. package/src/services/TaskGraphAgentRunner.ts +188 -11
  541. package/src/services/TaskGraphContinuationDeliverer.ts +713 -17
  542. package/src/sharedCache.ts +305 -0
  543. package/src/types.ts +7 -0
package/dist/config.d.ts CHANGED
@@ -29,6 +29,23 @@ declare const userHandlingInfoSchema: z.ZodObject<{
29
29
  contextUserForNewUserCreation: z.ZodDefault<z.ZodOptional<z.ZodString>>;
30
30
  CreateUserApplicationRecords: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
31
31
  UserApplications: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
32
+ /**
33
+ * Build each auto-created user as a copy of a template user (`User.IsTemplate`), so new people start
34
+ * with its pinned apps, views, settings, dashboards and conversations. `email` names the template;
35
+ * `preset` is the `MJ: Users` clone preset to apply (default `template`). The copy takes the roles
36
+ * and apps of the template, so `newUserRoles`, `CreateUserApplicationRecords` and `UserApplications`
37
+ * apply only when the template can't be used, in which case a plain user is created as before.
38
+ */
39
+ newUserTemplate: z.ZodOptional<z.ZodObject<{
40
+ email: z.ZodString;
41
+ preset: z.ZodDefault<z.ZodOptional<z.ZodString>>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ email?: string;
44
+ preset?: string;
45
+ }, {
46
+ email?: string;
47
+ preset?: string;
48
+ }>>;
32
49
  }, "strip", z.ZodTypeAny, {
33
50
  autoCreateNewUsers?: boolean;
34
51
  newUserLimitedToAuthorizedDomains?: boolean;
@@ -39,6 +56,10 @@ declare const userHandlingInfoSchema: z.ZodObject<{
39
56
  contextUserForNewUserCreation?: string;
40
57
  CreateUserApplicationRecords?: boolean;
41
58
  UserApplications?: string[];
59
+ newUserTemplate?: {
60
+ email?: string;
61
+ preset?: string;
62
+ };
42
63
  }, {
43
64
  autoCreateNewUsers?: boolean;
44
65
  newUserLimitedToAuthorizedDomains?: boolean;
@@ -49,6 +70,10 @@ declare const userHandlingInfoSchema: z.ZodObject<{
49
70
  contextUserForNewUserCreation?: string;
50
71
  CreateUserApplicationRecords?: boolean;
51
72
  UserApplications?: string[];
73
+ newUserTemplate?: {
74
+ email?: string;
75
+ preset?: string;
76
+ };
52
77
  }>;
53
78
  declare const databaseSettingsInfoSchema: z.ZodObject<{
54
79
  connectionTimeout: z.ZodNumber;
@@ -444,20 +469,29 @@ declare const telemetrySchema: z.ZodObject<{
444
469
  enabled?: string | number | boolean;
445
470
  level?: "minimal" | "standard" | "verbose" | "debug";
446
471
  }>;
447
- declare const serverExtensionSchema: z.ZodObject<{
448
- Enabled: z.ZodDefault<z.ZodBoolean>;
472
+ /**
473
+ * A host `mj.config.cjs` `serverExtensions[]` entry. Only `DriverClass` is required: an entry whose
474
+ * DriverClass an Open App package already publishes is an OVERLAY (MergeServerExtensionConfigs) and
475
+ * may set just the fields it overrides — `{ DriverClass: 'X', OwnsCORS: false }` — without repeating
476
+ * `RootPath`. `Enabled` has no schema default for the same reason: a defaulted `true` would silently
477
+ * re-enable an extension the package ships disabled. Whether the MERGED entry is complete (a valid
478
+ * `RootPath`; `Enabled` defaults to true) is validated after the merge, by prepareServerExtensionConfigs,
479
+ * which reports an incomplete host-only entry instead of mounting it.
480
+ */
481
+ export declare const ServerExtensionSchema: z.ZodObject<{
482
+ Enabled: z.ZodOptional<z.ZodBoolean>;
449
483
  DriverClass: z.ZodString;
450
- RootPath: z.ZodString;
484
+ RootPath: z.ZodOptional<z.ZodString>;
451
485
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
452
486
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
453
- Enabled: z.ZodDefault<z.ZodBoolean>;
487
+ Enabled: z.ZodOptional<z.ZodBoolean>;
454
488
  DriverClass: z.ZodString;
455
- RootPath: z.ZodString;
489
+ RootPath: z.ZodOptional<z.ZodString>;
456
490
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
457
491
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
458
- Enabled: z.ZodDefault<z.ZodBoolean>;
492
+ Enabled: z.ZodOptional<z.ZodBoolean>;
459
493
  DriverClass: z.ZodString;
460
- RootPath: z.ZodString;
494
+ RootPath: z.ZodOptional<z.ZodString>;
461
495
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
462
496
  }, z.ZodTypeAny, "passthrough">>;
463
497
  declare const cacheSettingsSchema: z.ZodObject<{
@@ -465,6 +499,14 @@ declare const cacheSettingsSchema: z.ZodObject<{
465
499
  maxMemoryMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
466
500
  /** Maximum percentage of total cache memory that any single entity can occupy. Default: 50. Set to 0 to disable. */
467
501
  maxPercentOfCachePerEntity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
502
+ /**
503
+ * Ceiling on any ONE cache entry. 'auto' (the default) derives it from maxMemoryMB, so the
504
+ * largest entity the server caches scales with the memory the cache was given; a number is an
505
+ * explicit stricter percentage of maxMemoryMB; 0 removes the ceiling. Leave it on 'auto' unless
506
+ * a specific entry must be kept out of the cache — an entry declined by the ceiling is re-read
507
+ * from the database on every call, and the server logs which maxMemoryMB would admit it.
508
+ */
509
+ maxEntryPercentOfCache: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"auto">]>>>;
468
510
  /** Default TTL in seconds. 0 = no TTL, rely on event-based invalidation. Default: 0. */
469
511
  defaultTTLSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
470
512
  /** Interval in seconds for periodic eviction sweep. 0 = disabled. Default: 300 (5 minutes). */
@@ -494,20 +536,64 @@ declare const cacheSettingsSchema: z.ZodObject<{
494
536
  * every signed-in user may read every row of every entity.
495
537
  */
496
538
  recordDataBroadcastEntities: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
539
+ /**
540
+ * Expiry, in seconds, of entries in the shared Redis cache (used when REDIS_URL is set). The
541
+ * REDIS_TTL_SECONDS environment variable overrides it. 0 stores entries without expiry. When
542
+ * neither is set, the Redis provider's default applies (one hour).
543
+ */
544
+ sharedCacheTTLSeconds: z.ZodOptional<z.ZodNumber>;
545
+ /**
546
+ * How often, in seconds, loaded engines compare their rows with the database and reload what
547
+ * changed without an MJ event (direct SQL, other applications). With a shared cache one server
548
+ * does it per interval. 0 = disabled. Default: 300 (5 minutes).
549
+ */
550
+ engineSweepIntervalSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
551
+ /**
552
+ * How often, in seconds, the user cache compares two row counts and the newest update timestamp
553
+ * with the database and reloads only when they differ. The cache already refreshes on MJ writes
554
+ * (locally and, with a shared cache, on other servers); this covers changes made outside MJ.
555
+ * 0 = disabled. Default: 300 (5 minutes).
556
+ */
557
+ userCacheCheckIntervalSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
558
+ /**
559
+ * How often to compare this process's metadata with the database, in seconds (0 disables).
560
+ * Costs nothing unless an entity the metadata is built from declares
561
+ * `TrustServerCacheCompletely = false`; see `ProviderBase.SweepMetadataAgainstDatabase`.
562
+ */
563
+ metadataSweepIntervalSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
564
+ /**
565
+ * How long, in seconds, a server holds the shared warm-up turn while it loads its engines, so
566
+ * servers starting together load one at a time and the rest find the cache warm. The lease is
567
+ * renewed while the load runs; this value is both its expiry and how long another server waits
568
+ * for it. 0 disables the turn-taking. Default: 30.
569
+ */
570
+ startupWarmupLeaseSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
497
571
  }, "strip", z.ZodTypeAny, {
498
572
  maxMemoryMB?: number;
499
573
  maxPercentOfCachePerEntity?: number;
574
+ maxEntryPercentOfCache?: number | "auto";
500
575
  defaultTTLSeconds?: number;
501
576
  evictionSweepIntervalSeconds?: number;
502
577
  verboseLogging?: boolean;
503
578
  recordDataBroadcastEntities?: string[];
579
+ sharedCacheTTLSeconds?: number;
580
+ engineSweepIntervalSeconds?: number;
581
+ userCacheCheckIntervalSeconds?: number;
582
+ metadataSweepIntervalSeconds?: number;
583
+ startupWarmupLeaseSeconds?: number;
504
584
  }, {
505
585
  maxMemoryMB?: number;
506
586
  maxPercentOfCachePerEntity?: number;
587
+ maxEntryPercentOfCache?: number | "auto";
507
588
  defaultTTLSeconds?: number;
508
589
  evictionSweepIntervalSeconds?: number;
509
590
  verboseLogging?: boolean;
510
591
  recordDataBroadcastEntities?: string[];
592
+ sharedCacheTTLSeconds?: number;
593
+ engineSweepIntervalSeconds?: number;
594
+ userCacheCheckIntervalSeconds?: number;
595
+ metadataSweepIntervalSeconds?: number;
596
+ startupWarmupLeaseSeconds?: number;
511
597
  }>;
512
598
  declare const loggingSettingsSchema: z.ZodObject<{
513
599
  graphql: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -535,6 +621,18 @@ declare const loggingSettingsSchema: z.ZodObject<{
535
621
  logVariables?: boolean;
536
622
  };
537
623
  }>;
624
+ declare const aiPromptRunsSchema: z.ZodObject<{
625
+ /**
626
+ * Server default for which template inputs prompt runs store in AIPromptRun.Messages:
627
+ * 'None' (key sizes only), 'Referenced' (keys the templates read) or 'Full'.
628
+ * AIPrompt.TemplateDataCapture and AIPromptParams.TemplateDataCapture override it.
629
+ */
630
+ templateDataCapture: z.ZodOptional<z.ZodEnum<["None", "Referenced", "Full"]>>;
631
+ }, "strip", z.ZodTypeAny, {
632
+ templateDataCapture?: "None" | "Referenced" | "Full";
633
+ }, {
634
+ templateDataCapture?: "None" | "Referenced" | "Full";
635
+ }>;
538
636
  declare const corsSchema: z.ZodObject<{
539
637
  /** Allowed origins for CORS. Default ['*'] preserves backward-compatible "allow all" behavior. */
540
638
  allowedOrigins: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -2856,15 +2954,1225 @@ declare const telephonySchema: z.ZodObject<{
2856
2954
  modelSampleRate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2857
2955
  }, z.ZodTypeAny, "passthrough">>>;
2858
2956
  }, z.ZodTypeAny, "passthrough">>;
2957
+ /**
2958
+ * Mid-session identity verification for realtime sessions (see `src/realtimeSessions/README.md`).
2959
+ *
2960
+ * A person talking to an agent proves they control an email address WITHOUT leaving the conversation:
2961
+ * the server emails a one-time link plus a short code, records the verification on the session, extends
2962
+ * the session's limits, and tells the live session through a session event. The session's principal is
2963
+ * never changed.
2964
+ *
2965
+ * Off by default: nothing is emailed and `/realtime/verify` is not mounted until `enabled` is true AND a
2966
+ * `communicationProvider` is configured. Policy set here is the BASE layer; the config cascade
2967
+ * (`channels.config.IdentityVerification`) snapshotted onto each session at mint overrides it per knob.
2968
+ */
2969
+ declare const identityVerificationSchema: z.ZodObject<{
2970
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
2971
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
2972
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
2973
+ communicationProvider: z.ZodOptional<z.ZodString>;
2974
+ /** From address of the verification email. */
2975
+ fromAddress: z.ZodOptional<z.ZodString>;
2976
+ /**
2977
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
2978
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
2979
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
2980
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
2981
+ */
2982
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2983
+ /**
2984
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
2985
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
2986
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
2987
+ * Communication Log then holds live credentials and no one is emailed.
2988
+ */
2989
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
2990
+ /**
2991
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
2992
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
2993
+ */
2994
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
2995
+ /**
2996
+ * The internal user the server acts as to read/write the session, send the email and write the audit
2997
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
2998
+ * active Owner). The verify link is public, so it has no caller identity of its own.
2999
+ */
3000
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3001
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3002
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3003
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3004
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3005
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3006
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3007
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3008
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3009
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3010
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3011
+ }, "strip", z.ZodTypeAny, {
3012
+ requireBusinessDomain?: boolean;
3013
+ blockedDomains?: string[];
3014
+ consumerDomains?: string[];
3015
+ linkTtlMinutes?: number;
3016
+ maxSendsPerSession?: number;
3017
+ maxCodeAttempts?: number;
3018
+ unverifiedMaxSeconds?: number;
3019
+ verifiedMaxSeconds?: number;
3020
+ }, {
3021
+ requireBusinessDomain?: boolean;
3022
+ blockedDomains?: string[];
3023
+ consumerDomains?: string[];
3024
+ linkTtlMinutes?: number;
3025
+ maxSendsPerSession?: number;
3026
+ maxCodeAttempts?: number;
3027
+ unverifiedMaxSeconds?: number;
3028
+ verifiedMaxSeconds?: number;
3029
+ }>>>;
3030
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3031
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3032
+ /** Window (ms) for the three send limits. Default 1 hour. */
3033
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3034
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3035
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3036
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3037
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3038
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3039
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3040
+ /** Window (ms) for code attempts. Default 10 minutes. */
3041
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3042
+ /** Code submissions per session per window. Default 10. 0 disables. */
3043
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3044
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3045
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3046
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3047
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3048
+ }, "strip", z.ZodTypeAny, {
3049
+ sendWindowMs?: number;
3050
+ perIpSends?: number;
3051
+ perEmailDomainSends?: number;
3052
+ perEmailSends?: number;
3053
+ codeAttemptWindowMs?: number;
3054
+ perSessionCodeAttempts?: number;
3055
+ redeemWindowMs?: number;
3056
+ redeemPerIp?: number;
3057
+ }, {
3058
+ sendWindowMs?: number;
3059
+ perIpSends?: number;
3060
+ perEmailDomainSends?: number;
3061
+ perEmailSends?: number;
3062
+ codeAttemptWindowMs?: number;
3063
+ perSessionCodeAttempts?: number;
3064
+ redeemWindowMs?: number;
3065
+ redeemPerIp?: number;
3066
+ }>>>;
3067
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3068
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3069
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3070
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3071
+ communicationProvider: z.ZodOptional<z.ZodString>;
3072
+ /** From address of the verification email. */
3073
+ fromAddress: z.ZodOptional<z.ZodString>;
3074
+ /**
3075
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3076
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3077
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3078
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3079
+ */
3080
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3081
+ /**
3082
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3083
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3084
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3085
+ * Communication Log then holds live credentials and no one is emailed.
3086
+ */
3087
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3088
+ /**
3089
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3090
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3091
+ */
3092
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3093
+ /**
3094
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3095
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3096
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3097
+ */
3098
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3099
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3100
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3101
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3102
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3103
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3104
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3105
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3106
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3107
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3108
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3109
+ }, "strip", z.ZodTypeAny, {
3110
+ requireBusinessDomain?: boolean;
3111
+ blockedDomains?: string[];
3112
+ consumerDomains?: string[];
3113
+ linkTtlMinutes?: number;
3114
+ maxSendsPerSession?: number;
3115
+ maxCodeAttempts?: number;
3116
+ unverifiedMaxSeconds?: number;
3117
+ verifiedMaxSeconds?: number;
3118
+ }, {
3119
+ requireBusinessDomain?: boolean;
3120
+ blockedDomains?: string[];
3121
+ consumerDomains?: string[];
3122
+ linkTtlMinutes?: number;
3123
+ maxSendsPerSession?: number;
3124
+ maxCodeAttempts?: number;
3125
+ unverifiedMaxSeconds?: number;
3126
+ verifiedMaxSeconds?: number;
3127
+ }>>>;
3128
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3129
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3130
+ /** Window (ms) for the three send limits. Default 1 hour. */
3131
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3132
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3133
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3134
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3135
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3136
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3137
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3138
+ /** Window (ms) for code attempts. Default 10 minutes. */
3139
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3140
+ /** Code submissions per session per window. Default 10. 0 disables. */
3141
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3142
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3143
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3144
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3145
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3146
+ }, "strip", z.ZodTypeAny, {
3147
+ sendWindowMs?: number;
3148
+ perIpSends?: number;
3149
+ perEmailDomainSends?: number;
3150
+ perEmailSends?: number;
3151
+ codeAttemptWindowMs?: number;
3152
+ perSessionCodeAttempts?: number;
3153
+ redeemWindowMs?: number;
3154
+ redeemPerIp?: number;
3155
+ }, {
3156
+ sendWindowMs?: number;
3157
+ perIpSends?: number;
3158
+ perEmailDomainSends?: number;
3159
+ perEmailSends?: number;
3160
+ codeAttemptWindowMs?: number;
3161
+ perSessionCodeAttempts?: number;
3162
+ redeemWindowMs?: number;
3163
+ redeemPerIp?: number;
3164
+ }>>>;
3165
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3166
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3167
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3168
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3169
+ communicationProvider: z.ZodOptional<z.ZodString>;
3170
+ /** From address of the verification email. */
3171
+ fromAddress: z.ZodOptional<z.ZodString>;
3172
+ /**
3173
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3174
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3175
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3176
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3177
+ */
3178
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3179
+ /**
3180
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3181
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3182
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3183
+ * Communication Log then holds live credentials and no one is emailed.
3184
+ */
3185
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3186
+ /**
3187
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3188
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3189
+ */
3190
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3191
+ /**
3192
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3193
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3194
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3195
+ */
3196
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3197
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3198
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3199
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3200
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3201
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3202
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3203
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3204
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3205
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3206
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3207
+ }, "strip", z.ZodTypeAny, {
3208
+ requireBusinessDomain?: boolean;
3209
+ blockedDomains?: string[];
3210
+ consumerDomains?: string[];
3211
+ linkTtlMinutes?: number;
3212
+ maxSendsPerSession?: number;
3213
+ maxCodeAttempts?: number;
3214
+ unverifiedMaxSeconds?: number;
3215
+ verifiedMaxSeconds?: number;
3216
+ }, {
3217
+ requireBusinessDomain?: boolean;
3218
+ blockedDomains?: string[];
3219
+ consumerDomains?: string[];
3220
+ linkTtlMinutes?: number;
3221
+ maxSendsPerSession?: number;
3222
+ maxCodeAttempts?: number;
3223
+ unverifiedMaxSeconds?: number;
3224
+ verifiedMaxSeconds?: number;
3225
+ }>>>;
3226
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3227
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3228
+ /** Window (ms) for the three send limits. Default 1 hour. */
3229
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3230
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3231
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3232
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3233
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3234
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3235
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3236
+ /** Window (ms) for code attempts. Default 10 minutes. */
3237
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3238
+ /** Code submissions per session per window. Default 10. 0 disables. */
3239
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3240
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3241
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3242
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3243
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3244
+ }, "strip", z.ZodTypeAny, {
3245
+ sendWindowMs?: number;
3246
+ perIpSends?: number;
3247
+ perEmailDomainSends?: number;
3248
+ perEmailSends?: number;
3249
+ codeAttemptWindowMs?: number;
3250
+ perSessionCodeAttempts?: number;
3251
+ redeemWindowMs?: number;
3252
+ redeemPerIp?: number;
3253
+ }, {
3254
+ sendWindowMs?: number;
3255
+ perIpSends?: number;
3256
+ perEmailDomainSends?: number;
3257
+ perEmailSends?: number;
3258
+ codeAttemptWindowMs?: number;
3259
+ perSessionCodeAttempts?: number;
3260
+ redeemWindowMs?: number;
3261
+ redeemPerIp?: number;
3262
+ }>>>;
3263
+ }, z.ZodTypeAny, "passthrough">>;
2859
3264
  declare const realtimeSchema: z.ZodObject<{
2860
3265
  /** Master switch. When false, the WebRTC SDP broker router is not mounted. Defaults to true. */
2861
3266
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3267
+ /** Mid-session identity verification (off by default). */
3268
+ identityVerification: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3269
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3270
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3271
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3272
+ communicationProvider: z.ZodOptional<z.ZodString>;
3273
+ /** From address of the verification email. */
3274
+ fromAddress: z.ZodOptional<z.ZodString>;
3275
+ /**
3276
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3277
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3278
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3279
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3280
+ */
3281
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3282
+ /**
3283
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3284
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3285
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3286
+ * Communication Log then holds live credentials and no one is emailed.
3287
+ */
3288
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3289
+ /**
3290
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3291
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3292
+ */
3293
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3294
+ /**
3295
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3296
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3297
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3298
+ */
3299
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3300
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3301
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3302
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3303
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3304
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3305
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3306
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3307
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3308
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3309
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3310
+ }, "strip", z.ZodTypeAny, {
3311
+ requireBusinessDomain?: boolean;
3312
+ blockedDomains?: string[];
3313
+ consumerDomains?: string[];
3314
+ linkTtlMinutes?: number;
3315
+ maxSendsPerSession?: number;
3316
+ maxCodeAttempts?: number;
3317
+ unverifiedMaxSeconds?: number;
3318
+ verifiedMaxSeconds?: number;
3319
+ }, {
3320
+ requireBusinessDomain?: boolean;
3321
+ blockedDomains?: string[];
3322
+ consumerDomains?: string[];
3323
+ linkTtlMinutes?: number;
3324
+ maxSendsPerSession?: number;
3325
+ maxCodeAttempts?: number;
3326
+ unverifiedMaxSeconds?: number;
3327
+ verifiedMaxSeconds?: number;
3328
+ }>>>;
3329
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3330
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3331
+ /** Window (ms) for the three send limits. Default 1 hour. */
3332
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3333
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3334
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3335
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3336
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3337
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3338
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3339
+ /** Window (ms) for code attempts. Default 10 minutes. */
3340
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3341
+ /** Code submissions per session per window. Default 10. 0 disables. */
3342
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3343
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3344
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3345
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3346
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3347
+ }, "strip", z.ZodTypeAny, {
3348
+ sendWindowMs?: number;
3349
+ perIpSends?: number;
3350
+ perEmailDomainSends?: number;
3351
+ perEmailSends?: number;
3352
+ codeAttemptWindowMs?: number;
3353
+ perSessionCodeAttempts?: number;
3354
+ redeemWindowMs?: number;
3355
+ redeemPerIp?: number;
3356
+ }, {
3357
+ sendWindowMs?: number;
3358
+ perIpSends?: number;
3359
+ perEmailDomainSends?: number;
3360
+ perEmailSends?: number;
3361
+ codeAttemptWindowMs?: number;
3362
+ perSessionCodeAttempts?: number;
3363
+ redeemWindowMs?: number;
3364
+ redeemPerIp?: number;
3365
+ }>>>;
3366
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3367
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3368
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3369
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3370
+ communicationProvider: z.ZodOptional<z.ZodString>;
3371
+ /** From address of the verification email. */
3372
+ fromAddress: z.ZodOptional<z.ZodString>;
3373
+ /**
3374
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3375
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3376
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3377
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3378
+ */
3379
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3380
+ /**
3381
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3382
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3383
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3384
+ * Communication Log then holds live credentials and no one is emailed.
3385
+ */
3386
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3387
+ /**
3388
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3389
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3390
+ */
3391
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3392
+ /**
3393
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3394
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3395
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3396
+ */
3397
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3398
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3399
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3400
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3401
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3402
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3403
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3404
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3405
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3406
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3407
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3408
+ }, "strip", z.ZodTypeAny, {
3409
+ requireBusinessDomain?: boolean;
3410
+ blockedDomains?: string[];
3411
+ consumerDomains?: string[];
3412
+ linkTtlMinutes?: number;
3413
+ maxSendsPerSession?: number;
3414
+ maxCodeAttempts?: number;
3415
+ unverifiedMaxSeconds?: number;
3416
+ verifiedMaxSeconds?: number;
3417
+ }, {
3418
+ requireBusinessDomain?: boolean;
3419
+ blockedDomains?: string[];
3420
+ consumerDomains?: string[];
3421
+ linkTtlMinutes?: number;
3422
+ maxSendsPerSession?: number;
3423
+ maxCodeAttempts?: number;
3424
+ unverifiedMaxSeconds?: number;
3425
+ verifiedMaxSeconds?: number;
3426
+ }>>>;
3427
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3428
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3429
+ /** Window (ms) for the three send limits. Default 1 hour. */
3430
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3431
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3432
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3433
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3434
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3435
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3436
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3437
+ /** Window (ms) for code attempts. Default 10 minutes. */
3438
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3439
+ /** Code submissions per session per window. Default 10. 0 disables. */
3440
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3441
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3442
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3443
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3444
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3445
+ }, "strip", z.ZodTypeAny, {
3446
+ sendWindowMs?: number;
3447
+ perIpSends?: number;
3448
+ perEmailDomainSends?: number;
3449
+ perEmailSends?: number;
3450
+ codeAttemptWindowMs?: number;
3451
+ perSessionCodeAttempts?: number;
3452
+ redeemWindowMs?: number;
3453
+ redeemPerIp?: number;
3454
+ }, {
3455
+ sendWindowMs?: number;
3456
+ perIpSends?: number;
3457
+ perEmailDomainSends?: number;
3458
+ perEmailSends?: number;
3459
+ codeAttemptWindowMs?: number;
3460
+ perSessionCodeAttempts?: number;
3461
+ redeemWindowMs?: number;
3462
+ redeemPerIp?: number;
3463
+ }>>>;
3464
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3465
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3466
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3467
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3468
+ communicationProvider: z.ZodOptional<z.ZodString>;
3469
+ /** From address of the verification email. */
3470
+ fromAddress: z.ZodOptional<z.ZodString>;
3471
+ /**
3472
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3473
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3474
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3475
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3476
+ */
3477
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3478
+ /**
3479
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3480
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3481
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3482
+ * Communication Log then holds live credentials and no one is emailed.
3483
+ */
3484
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3485
+ /**
3486
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3487
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3488
+ */
3489
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3490
+ /**
3491
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3492
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3493
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3494
+ */
3495
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3496
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3497
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3498
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3499
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3500
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3501
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3502
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3503
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3504
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3505
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3506
+ }, "strip", z.ZodTypeAny, {
3507
+ requireBusinessDomain?: boolean;
3508
+ blockedDomains?: string[];
3509
+ consumerDomains?: string[];
3510
+ linkTtlMinutes?: number;
3511
+ maxSendsPerSession?: number;
3512
+ maxCodeAttempts?: number;
3513
+ unverifiedMaxSeconds?: number;
3514
+ verifiedMaxSeconds?: number;
3515
+ }, {
3516
+ requireBusinessDomain?: boolean;
3517
+ blockedDomains?: string[];
3518
+ consumerDomains?: string[];
3519
+ linkTtlMinutes?: number;
3520
+ maxSendsPerSession?: number;
3521
+ maxCodeAttempts?: number;
3522
+ unverifiedMaxSeconds?: number;
3523
+ verifiedMaxSeconds?: number;
3524
+ }>>>;
3525
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3526
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3527
+ /** Window (ms) for the three send limits. Default 1 hour. */
3528
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3529
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3530
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3531
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3532
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3533
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3534
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3535
+ /** Window (ms) for code attempts. Default 10 minutes. */
3536
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3537
+ /** Code submissions per session per window. Default 10. 0 disables. */
3538
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3539
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3540
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3541
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3542
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3543
+ }, "strip", z.ZodTypeAny, {
3544
+ sendWindowMs?: number;
3545
+ perIpSends?: number;
3546
+ perEmailDomainSends?: number;
3547
+ perEmailSends?: number;
3548
+ codeAttemptWindowMs?: number;
3549
+ perSessionCodeAttempts?: number;
3550
+ redeemWindowMs?: number;
3551
+ redeemPerIp?: number;
3552
+ }, {
3553
+ sendWindowMs?: number;
3554
+ perIpSends?: number;
3555
+ perEmailDomainSends?: number;
3556
+ perEmailSends?: number;
3557
+ codeAttemptWindowMs?: number;
3558
+ perSessionCodeAttempts?: number;
3559
+ redeemWindowMs?: number;
3560
+ redeemPerIp?: number;
3561
+ }>>>;
3562
+ }, z.ZodTypeAny, "passthrough">>>>;
3563
+ /**
3564
+ * Seconds a client-direct call's recording waits for missing shards after its terminal signal before it
3565
+ * is assembled anyway as `Partial` (gaps become silence). Defaults to 90.
3566
+ */
3567
+ recordingAssemblyGraceSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2862
3568
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
2863
3569
  /** Master switch. When false, the WebRTC SDP broker router is not mounted. Defaults to true. */
2864
3570
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3571
+ /** Mid-session identity verification (off by default). */
3572
+ identityVerification: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3573
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3574
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3575
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3576
+ communicationProvider: z.ZodOptional<z.ZodString>;
3577
+ /** From address of the verification email. */
3578
+ fromAddress: z.ZodOptional<z.ZodString>;
3579
+ /**
3580
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3581
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3582
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3583
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3584
+ */
3585
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3586
+ /**
3587
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3588
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3589
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3590
+ * Communication Log then holds live credentials and no one is emailed.
3591
+ */
3592
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3593
+ /**
3594
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3595
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3596
+ */
3597
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3598
+ /**
3599
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3600
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3601
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3602
+ */
3603
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3604
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3605
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3606
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3607
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3608
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3609
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3610
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3611
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3612
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3613
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3614
+ }, "strip", z.ZodTypeAny, {
3615
+ requireBusinessDomain?: boolean;
3616
+ blockedDomains?: string[];
3617
+ consumerDomains?: string[];
3618
+ linkTtlMinutes?: number;
3619
+ maxSendsPerSession?: number;
3620
+ maxCodeAttempts?: number;
3621
+ unverifiedMaxSeconds?: number;
3622
+ verifiedMaxSeconds?: number;
3623
+ }, {
3624
+ requireBusinessDomain?: boolean;
3625
+ blockedDomains?: string[];
3626
+ consumerDomains?: string[];
3627
+ linkTtlMinutes?: number;
3628
+ maxSendsPerSession?: number;
3629
+ maxCodeAttempts?: number;
3630
+ unverifiedMaxSeconds?: number;
3631
+ verifiedMaxSeconds?: number;
3632
+ }>>>;
3633
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3634
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3635
+ /** Window (ms) for the three send limits. Default 1 hour. */
3636
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3637
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3638
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3639
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3640
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3641
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3642
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3643
+ /** Window (ms) for code attempts. Default 10 minutes. */
3644
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3645
+ /** Code submissions per session per window. Default 10. 0 disables. */
3646
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3647
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3648
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3649
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3650
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3651
+ }, "strip", z.ZodTypeAny, {
3652
+ sendWindowMs?: number;
3653
+ perIpSends?: number;
3654
+ perEmailDomainSends?: number;
3655
+ perEmailSends?: number;
3656
+ codeAttemptWindowMs?: number;
3657
+ perSessionCodeAttempts?: number;
3658
+ redeemWindowMs?: number;
3659
+ redeemPerIp?: number;
3660
+ }, {
3661
+ sendWindowMs?: number;
3662
+ perIpSends?: number;
3663
+ perEmailDomainSends?: number;
3664
+ perEmailSends?: number;
3665
+ codeAttemptWindowMs?: number;
3666
+ perSessionCodeAttempts?: number;
3667
+ redeemWindowMs?: number;
3668
+ redeemPerIp?: number;
3669
+ }>>>;
3670
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3671
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3672
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3673
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3674
+ communicationProvider: z.ZodOptional<z.ZodString>;
3675
+ /** From address of the verification email. */
3676
+ fromAddress: z.ZodOptional<z.ZodString>;
3677
+ /**
3678
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3679
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3680
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3681
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3682
+ */
3683
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3684
+ /**
3685
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3686
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3687
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3688
+ * Communication Log then holds live credentials and no one is emailed.
3689
+ */
3690
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3691
+ /**
3692
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3693
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3694
+ */
3695
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3696
+ /**
3697
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3698
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3699
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3700
+ */
3701
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3702
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3703
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3704
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3705
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3706
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3707
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3708
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3709
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3710
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3711
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3712
+ }, "strip", z.ZodTypeAny, {
3713
+ requireBusinessDomain?: boolean;
3714
+ blockedDomains?: string[];
3715
+ consumerDomains?: string[];
3716
+ linkTtlMinutes?: number;
3717
+ maxSendsPerSession?: number;
3718
+ maxCodeAttempts?: number;
3719
+ unverifiedMaxSeconds?: number;
3720
+ verifiedMaxSeconds?: number;
3721
+ }, {
3722
+ requireBusinessDomain?: boolean;
3723
+ blockedDomains?: string[];
3724
+ consumerDomains?: string[];
3725
+ linkTtlMinutes?: number;
3726
+ maxSendsPerSession?: number;
3727
+ maxCodeAttempts?: number;
3728
+ unverifiedMaxSeconds?: number;
3729
+ verifiedMaxSeconds?: number;
3730
+ }>>>;
3731
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3732
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3733
+ /** Window (ms) for the three send limits. Default 1 hour. */
3734
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3735
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3736
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3737
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3738
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3739
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3740
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3741
+ /** Window (ms) for code attempts. Default 10 minutes. */
3742
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3743
+ /** Code submissions per session per window. Default 10. 0 disables. */
3744
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3745
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3746
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3747
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3748
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3749
+ }, "strip", z.ZodTypeAny, {
3750
+ sendWindowMs?: number;
3751
+ perIpSends?: number;
3752
+ perEmailDomainSends?: number;
3753
+ perEmailSends?: number;
3754
+ codeAttemptWindowMs?: number;
3755
+ perSessionCodeAttempts?: number;
3756
+ redeemWindowMs?: number;
3757
+ redeemPerIp?: number;
3758
+ }, {
3759
+ sendWindowMs?: number;
3760
+ perIpSends?: number;
3761
+ perEmailDomainSends?: number;
3762
+ perEmailSends?: number;
3763
+ codeAttemptWindowMs?: number;
3764
+ perSessionCodeAttempts?: number;
3765
+ redeemWindowMs?: number;
3766
+ redeemPerIp?: number;
3767
+ }>>>;
3768
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
3769
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3770
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3771
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3772
+ communicationProvider: z.ZodOptional<z.ZodString>;
3773
+ /** From address of the verification email. */
3774
+ fromAddress: z.ZodOptional<z.ZodString>;
3775
+ /**
3776
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3777
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3778
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3779
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3780
+ */
3781
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3782
+ /**
3783
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3784
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3785
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3786
+ * Communication Log then holds live credentials and no one is emailed.
3787
+ */
3788
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3789
+ /**
3790
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3791
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3792
+ */
3793
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3794
+ /**
3795
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3796
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3797
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3798
+ */
3799
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3800
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3801
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3802
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3803
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3804
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3805
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3806
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3807
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3808
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3809
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3810
+ }, "strip", z.ZodTypeAny, {
3811
+ requireBusinessDomain?: boolean;
3812
+ blockedDomains?: string[];
3813
+ consumerDomains?: string[];
3814
+ linkTtlMinutes?: number;
3815
+ maxSendsPerSession?: number;
3816
+ maxCodeAttempts?: number;
3817
+ unverifiedMaxSeconds?: number;
3818
+ verifiedMaxSeconds?: number;
3819
+ }, {
3820
+ requireBusinessDomain?: boolean;
3821
+ blockedDomains?: string[];
3822
+ consumerDomains?: string[];
3823
+ linkTtlMinutes?: number;
3824
+ maxSendsPerSession?: number;
3825
+ maxCodeAttempts?: number;
3826
+ unverifiedMaxSeconds?: number;
3827
+ verifiedMaxSeconds?: number;
3828
+ }>>>;
3829
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3830
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3831
+ /** Window (ms) for the three send limits. Default 1 hour. */
3832
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3833
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3834
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3835
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3836
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3837
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3838
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3839
+ /** Window (ms) for code attempts. Default 10 minutes. */
3840
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3841
+ /** Code submissions per session per window. Default 10. 0 disables. */
3842
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3843
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3844
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3845
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3846
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3847
+ }, "strip", z.ZodTypeAny, {
3848
+ sendWindowMs?: number;
3849
+ perIpSends?: number;
3850
+ perEmailDomainSends?: number;
3851
+ perEmailSends?: number;
3852
+ codeAttemptWindowMs?: number;
3853
+ perSessionCodeAttempts?: number;
3854
+ redeemWindowMs?: number;
3855
+ redeemPerIp?: number;
3856
+ }, {
3857
+ sendWindowMs?: number;
3858
+ perIpSends?: number;
3859
+ perEmailDomainSends?: number;
3860
+ perEmailSends?: number;
3861
+ codeAttemptWindowMs?: number;
3862
+ perSessionCodeAttempts?: number;
3863
+ redeemWindowMs?: number;
3864
+ redeemPerIp?: number;
3865
+ }>>>;
3866
+ }, z.ZodTypeAny, "passthrough">>>>;
3867
+ /**
3868
+ * Seconds a client-direct call's recording waits for missing shards after its terminal signal before it
3869
+ * is assembled anyway as `Partial` (gaps become silence). Defaults to 90.
3870
+ */
3871
+ recordingAssemblyGraceSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2865
3872
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
2866
3873
  /** Master switch. When false, the WebRTC SDP broker router is not mounted. Defaults to true. */
2867
3874
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3875
+ /** Mid-session identity verification (off by default). */
3876
+ identityVerification: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3877
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3878
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3879
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3880
+ communicationProvider: z.ZodOptional<z.ZodString>;
3881
+ /** From address of the verification email. */
3882
+ fromAddress: z.ZodOptional<z.ZodString>;
3883
+ /**
3884
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3885
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3886
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3887
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3888
+ */
3889
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3890
+ /**
3891
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3892
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3893
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3894
+ * Communication Log then holds live credentials and no one is emailed.
3895
+ */
3896
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3897
+ /**
3898
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3899
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3900
+ */
3901
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
3902
+ /**
3903
+ * The internal user the server acts as to read/write the session, send the email and write the audit
3904
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
3905
+ * active Owner). The verify link is public, so it has no caller identity of its own.
3906
+ */
3907
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
3908
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
3909
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3910
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
3911
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3912
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
3913
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
3914
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
3915
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
3916
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3917
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
3918
+ }, "strip", z.ZodTypeAny, {
3919
+ requireBusinessDomain?: boolean;
3920
+ blockedDomains?: string[];
3921
+ consumerDomains?: string[];
3922
+ linkTtlMinutes?: number;
3923
+ maxSendsPerSession?: number;
3924
+ maxCodeAttempts?: number;
3925
+ unverifiedMaxSeconds?: number;
3926
+ verifiedMaxSeconds?: number;
3927
+ }, {
3928
+ requireBusinessDomain?: boolean;
3929
+ blockedDomains?: string[];
3930
+ consumerDomains?: string[];
3931
+ linkTtlMinutes?: number;
3932
+ maxSendsPerSession?: number;
3933
+ maxCodeAttempts?: number;
3934
+ unverifiedMaxSeconds?: number;
3935
+ verifiedMaxSeconds?: number;
3936
+ }>>>;
3937
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
3938
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
3939
+ /** Window (ms) for the three send limits. Default 1 hour. */
3940
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3941
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
3942
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3943
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
3944
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3945
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
3946
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3947
+ /** Window (ms) for code attempts. Default 10 minutes. */
3948
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3949
+ /** Code submissions per session per window. Default 10. 0 disables. */
3950
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3951
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
3952
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3953
+ /** `/realtime/verify` requests per IP per window. Default 30. */
3954
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
3955
+ }, "strip", z.ZodTypeAny, {
3956
+ sendWindowMs?: number;
3957
+ perIpSends?: number;
3958
+ perEmailDomainSends?: number;
3959
+ perEmailSends?: number;
3960
+ codeAttemptWindowMs?: number;
3961
+ perSessionCodeAttempts?: number;
3962
+ redeemWindowMs?: number;
3963
+ redeemPerIp?: number;
3964
+ }, {
3965
+ sendWindowMs?: number;
3966
+ perIpSends?: number;
3967
+ perEmailDomainSends?: number;
3968
+ perEmailSends?: number;
3969
+ codeAttemptWindowMs?: number;
3970
+ perSessionCodeAttempts?: number;
3971
+ redeemWindowMs?: number;
3972
+ redeemPerIp?: number;
3973
+ }>>>;
3974
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
3975
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
3976
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
3977
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
3978
+ communicationProvider: z.ZodOptional<z.ZodString>;
3979
+ /** From address of the verification email. */
3980
+ fromAddress: z.ZodOptional<z.ZodString>;
3981
+ /**
3982
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
3983
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
3984
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
3985
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
3986
+ */
3987
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
3988
+ /**
3989
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
3990
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
3991
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
3992
+ * Communication Log then holds live credentials and no one is emailed.
3993
+ */
3994
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
3995
+ /**
3996
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
3997
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
3998
+ */
3999
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
4000
+ /**
4001
+ * The internal user the server acts as to read/write the session, send the email and write the audit
4002
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
4003
+ * active Owner). The verify link is public, so it has no caller identity of its own.
4004
+ */
4005
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
4006
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
4007
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4008
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
4009
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4010
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4011
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
4012
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
4013
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
4014
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
4015
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
4016
+ }, "strip", z.ZodTypeAny, {
4017
+ requireBusinessDomain?: boolean;
4018
+ blockedDomains?: string[];
4019
+ consumerDomains?: string[];
4020
+ linkTtlMinutes?: number;
4021
+ maxSendsPerSession?: number;
4022
+ maxCodeAttempts?: number;
4023
+ unverifiedMaxSeconds?: number;
4024
+ verifiedMaxSeconds?: number;
4025
+ }, {
4026
+ requireBusinessDomain?: boolean;
4027
+ blockedDomains?: string[];
4028
+ consumerDomains?: string[];
4029
+ linkTtlMinutes?: number;
4030
+ maxSendsPerSession?: number;
4031
+ maxCodeAttempts?: number;
4032
+ unverifiedMaxSeconds?: number;
4033
+ verifiedMaxSeconds?: number;
4034
+ }>>>;
4035
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
4036
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4037
+ /** Window (ms) for the three send limits. Default 1 hour. */
4038
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4039
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
4040
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4041
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
4042
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4043
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
4044
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4045
+ /** Window (ms) for code attempts. Default 10 minutes. */
4046
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4047
+ /** Code submissions per session per window. Default 10. 0 disables. */
4048
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4049
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
4050
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4051
+ /** `/realtime/verify` requests per IP per window. Default 30. */
4052
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4053
+ }, "strip", z.ZodTypeAny, {
4054
+ sendWindowMs?: number;
4055
+ perIpSends?: number;
4056
+ perEmailDomainSends?: number;
4057
+ perEmailSends?: number;
4058
+ codeAttemptWindowMs?: number;
4059
+ perSessionCodeAttempts?: number;
4060
+ redeemWindowMs?: number;
4061
+ redeemPerIp?: number;
4062
+ }, {
4063
+ sendWindowMs?: number;
4064
+ perIpSends?: number;
4065
+ perEmailDomainSends?: number;
4066
+ perEmailSends?: number;
4067
+ codeAttemptWindowMs?: number;
4068
+ perSessionCodeAttempts?: number;
4069
+ redeemWindowMs?: number;
4070
+ redeemPerIp?: number;
4071
+ }>>>;
4072
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4073
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
4074
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
4075
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
4076
+ communicationProvider: z.ZodOptional<z.ZodString>;
4077
+ /** From address of the verification email. */
4078
+ fromAddress: z.ZodOptional<z.ZodString>;
4079
+ /**
4080
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
4081
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
4082
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
4083
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
4084
+ */
4085
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4086
+ /**
4087
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
4088
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
4089
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
4090
+ * Communication Log then holds live credentials and no one is emailed.
4091
+ */
4092
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
4093
+ /**
4094
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
4095
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
4096
+ */
4097
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
4098
+ /**
4099
+ * The internal user the server acts as to read/write the session, send the email and write the audit
4100
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
4101
+ * active Owner). The verify link is public, so it has no caller identity of its own.
4102
+ */
4103
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
4104
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
4105
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4106
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
4107
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4108
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4109
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
4110
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
4111
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
4112
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
4113
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
4114
+ }, "strip", z.ZodTypeAny, {
4115
+ requireBusinessDomain?: boolean;
4116
+ blockedDomains?: string[];
4117
+ consumerDomains?: string[];
4118
+ linkTtlMinutes?: number;
4119
+ maxSendsPerSession?: number;
4120
+ maxCodeAttempts?: number;
4121
+ unverifiedMaxSeconds?: number;
4122
+ verifiedMaxSeconds?: number;
4123
+ }, {
4124
+ requireBusinessDomain?: boolean;
4125
+ blockedDomains?: string[];
4126
+ consumerDomains?: string[];
4127
+ linkTtlMinutes?: number;
4128
+ maxSendsPerSession?: number;
4129
+ maxCodeAttempts?: number;
4130
+ unverifiedMaxSeconds?: number;
4131
+ verifiedMaxSeconds?: number;
4132
+ }>>>;
4133
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
4134
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4135
+ /** Window (ms) for the three send limits. Default 1 hour. */
4136
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4137
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
4138
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4139
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
4140
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4141
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
4142
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4143
+ /** Window (ms) for code attempts. Default 10 minutes. */
4144
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4145
+ /** Code submissions per session per window. Default 10. 0 disables. */
4146
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4147
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
4148
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4149
+ /** `/realtime/verify` requests per IP per window. Default 30. */
4150
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4151
+ }, "strip", z.ZodTypeAny, {
4152
+ sendWindowMs?: number;
4153
+ perIpSends?: number;
4154
+ perEmailDomainSends?: number;
4155
+ perEmailSends?: number;
4156
+ codeAttemptWindowMs?: number;
4157
+ perSessionCodeAttempts?: number;
4158
+ redeemWindowMs?: number;
4159
+ redeemPerIp?: number;
4160
+ }, {
4161
+ sendWindowMs?: number;
4162
+ perIpSends?: number;
4163
+ perEmailDomainSends?: number;
4164
+ perEmailSends?: number;
4165
+ codeAttemptWindowMs?: number;
4166
+ perSessionCodeAttempts?: number;
4167
+ redeemWindowMs?: number;
4168
+ redeemPerIp?: number;
4169
+ }>>>;
4170
+ }, z.ZodTypeAny, "passthrough">>>>;
4171
+ /**
4172
+ * Seconds a client-direct call's recording waits for missing shards after its terminal signal before it
4173
+ * is assembled anyway as `Partial` (gaps become silence). Defaults to 90.
4174
+ */
4175
+ recordingAssemblyGraceSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2868
4176
  }, z.ZodTypeAny, "passthrough">>;
2869
4177
  declare const configInfoSchema: z.ZodObject<{
2870
4178
  userHandling: z.ZodObject<{
@@ -2897,6 +4205,23 @@ declare const configInfoSchema: z.ZodObject<{
2897
4205
  contextUserForNewUserCreation: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2898
4206
  CreateUserApplicationRecords: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2899
4207
  UserApplications: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
4208
+ /**
4209
+ * Build each auto-created user as a copy of a template user (`User.IsTemplate`), so new people start
4210
+ * with its pinned apps, views, settings, dashboards and conversations. `email` names the template;
4211
+ * `preset` is the `MJ: Users` clone preset to apply (default `template`). The copy takes the roles
4212
+ * and apps of the template, so `newUserRoles`, `CreateUserApplicationRecords` and `UserApplications`
4213
+ * apply only when the template can't be used, in which case a plain user is created as before.
4214
+ */
4215
+ newUserTemplate: z.ZodOptional<z.ZodObject<{
4216
+ email: z.ZodString;
4217
+ preset: z.ZodDefault<z.ZodOptional<z.ZodString>>;
4218
+ }, "strip", z.ZodTypeAny, {
4219
+ email?: string;
4220
+ preset?: string;
4221
+ }, {
4222
+ email?: string;
4223
+ preset?: string;
4224
+ }>>;
2900
4225
  }, "strip", z.ZodTypeAny, {
2901
4226
  autoCreateNewUsers?: boolean;
2902
4227
  newUserLimitedToAuthorizedDomains?: boolean;
@@ -2907,6 +4232,10 @@ declare const configInfoSchema: z.ZodObject<{
2907
4232
  contextUserForNewUserCreation?: string;
2908
4233
  CreateUserApplicationRecords?: boolean;
2909
4234
  UserApplications?: string[];
4235
+ newUserTemplate?: {
4236
+ email?: string;
4237
+ preset?: string;
4238
+ };
2910
4239
  }, {
2911
4240
  autoCreateNewUsers?: boolean;
2912
4241
  newUserLimitedToAuthorizedDomains?: boolean;
@@ -2917,6 +4246,10 @@ declare const configInfoSchema: z.ZodObject<{
2917
4246
  contextUserForNewUserCreation?: string;
2918
4247
  CreateUserApplicationRecords?: boolean;
2919
4248
  UserApplications?: string[];
4249
+ newUserTemplate?: {
4250
+ email?: string;
4251
+ preset?: string;
4252
+ };
2920
4253
  }>;
2921
4254
  magicLink: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2922
4255
  /** Master switch for the magic-link feature. When false, routes are not mounted and the auth provider is not registered. */
@@ -4658,12 +5991,915 @@ declare const configInfoSchema: z.ZodObject<{
4658
5991
  realtime: z.ZodDefault<z.ZodOptional<z.ZodObject<{
4659
5992
  /** Master switch. When false, the WebRTC SDP broker router is not mounted. Defaults to true. */
4660
5993
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
5994
+ /** Mid-session identity verification (off by default). */
5995
+ identityVerification: z.ZodDefault<z.ZodOptional<z.ZodObject<{
5996
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
5997
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
5998
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
5999
+ communicationProvider: z.ZodOptional<z.ZodString>;
6000
+ /** From address of the verification email. */
6001
+ fromAddress: z.ZodOptional<z.ZodString>;
6002
+ /**
6003
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6004
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6005
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6006
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6007
+ */
6008
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6009
+ /**
6010
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6011
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6012
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6013
+ * Communication Log then holds live credentials and no one is emailed.
6014
+ */
6015
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6016
+ /**
6017
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6018
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6019
+ */
6020
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6021
+ /**
6022
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6023
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6024
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6025
+ */
6026
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6027
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6028
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6029
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6030
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6031
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6032
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6033
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6034
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6035
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6036
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6037
+ }, "strip", z.ZodTypeAny, {
6038
+ requireBusinessDomain?: boolean;
6039
+ blockedDomains?: string[];
6040
+ consumerDomains?: string[];
6041
+ linkTtlMinutes?: number;
6042
+ maxSendsPerSession?: number;
6043
+ maxCodeAttempts?: number;
6044
+ unverifiedMaxSeconds?: number;
6045
+ verifiedMaxSeconds?: number;
6046
+ }, {
6047
+ requireBusinessDomain?: boolean;
6048
+ blockedDomains?: string[];
6049
+ consumerDomains?: string[];
6050
+ linkTtlMinutes?: number;
6051
+ maxSendsPerSession?: number;
6052
+ maxCodeAttempts?: number;
6053
+ unverifiedMaxSeconds?: number;
6054
+ verifiedMaxSeconds?: number;
6055
+ }>>>;
6056
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6057
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6058
+ /** Window (ms) for the three send limits. Default 1 hour. */
6059
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6060
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6061
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6062
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6063
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6064
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6065
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6066
+ /** Window (ms) for code attempts. Default 10 minutes. */
6067
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6068
+ /** Code submissions per session per window. Default 10. 0 disables. */
6069
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6070
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6071
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6072
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6073
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6074
+ }, "strip", z.ZodTypeAny, {
6075
+ sendWindowMs?: number;
6076
+ perIpSends?: number;
6077
+ perEmailDomainSends?: number;
6078
+ perEmailSends?: number;
6079
+ codeAttemptWindowMs?: number;
6080
+ perSessionCodeAttempts?: number;
6081
+ redeemWindowMs?: number;
6082
+ redeemPerIp?: number;
6083
+ }, {
6084
+ sendWindowMs?: number;
6085
+ perIpSends?: number;
6086
+ perEmailDomainSends?: number;
6087
+ perEmailSends?: number;
6088
+ codeAttemptWindowMs?: number;
6089
+ perSessionCodeAttempts?: number;
6090
+ redeemWindowMs?: number;
6091
+ redeemPerIp?: number;
6092
+ }>>>;
6093
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
6094
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6095
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6096
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6097
+ communicationProvider: z.ZodOptional<z.ZodString>;
6098
+ /** From address of the verification email. */
6099
+ fromAddress: z.ZodOptional<z.ZodString>;
6100
+ /**
6101
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6102
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6103
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6104
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6105
+ */
6106
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6107
+ /**
6108
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6109
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6110
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6111
+ * Communication Log then holds live credentials and no one is emailed.
6112
+ */
6113
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6114
+ /**
6115
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6116
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6117
+ */
6118
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6119
+ /**
6120
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6121
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6122
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6123
+ */
6124
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6125
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6126
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6127
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6128
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6129
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6130
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6131
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6132
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6133
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6134
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6135
+ }, "strip", z.ZodTypeAny, {
6136
+ requireBusinessDomain?: boolean;
6137
+ blockedDomains?: string[];
6138
+ consumerDomains?: string[];
6139
+ linkTtlMinutes?: number;
6140
+ maxSendsPerSession?: number;
6141
+ maxCodeAttempts?: number;
6142
+ unverifiedMaxSeconds?: number;
6143
+ verifiedMaxSeconds?: number;
6144
+ }, {
6145
+ requireBusinessDomain?: boolean;
6146
+ blockedDomains?: string[];
6147
+ consumerDomains?: string[];
6148
+ linkTtlMinutes?: number;
6149
+ maxSendsPerSession?: number;
6150
+ maxCodeAttempts?: number;
6151
+ unverifiedMaxSeconds?: number;
6152
+ verifiedMaxSeconds?: number;
6153
+ }>>>;
6154
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6155
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6156
+ /** Window (ms) for the three send limits. Default 1 hour. */
6157
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6158
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6159
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6160
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6161
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6162
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6163
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6164
+ /** Window (ms) for code attempts. Default 10 minutes. */
6165
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6166
+ /** Code submissions per session per window. Default 10. 0 disables. */
6167
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6168
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6169
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6170
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6171
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6172
+ }, "strip", z.ZodTypeAny, {
6173
+ sendWindowMs?: number;
6174
+ perIpSends?: number;
6175
+ perEmailDomainSends?: number;
6176
+ perEmailSends?: number;
6177
+ codeAttemptWindowMs?: number;
6178
+ perSessionCodeAttempts?: number;
6179
+ redeemWindowMs?: number;
6180
+ redeemPerIp?: number;
6181
+ }, {
6182
+ sendWindowMs?: number;
6183
+ perIpSends?: number;
6184
+ perEmailDomainSends?: number;
6185
+ perEmailSends?: number;
6186
+ codeAttemptWindowMs?: number;
6187
+ perSessionCodeAttempts?: number;
6188
+ redeemWindowMs?: number;
6189
+ redeemPerIp?: number;
6190
+ }>>>;
6191
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
6192
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6193
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6194
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6195
+ communicationProvider: z.ZodOptional<z.ZodString>;
6196
+ /** From address of the verification email. */
6197
+ fromAddress: z.ZodOptional<z.ZodString>;
6198
+ /**
6199
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6200
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6201
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6202
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6203
+ */
6204
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6205
+ /**
6206
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6207
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6208
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6209
+ * Communication Log then holds live credentials and no one is emailed.
6210
+ */
6211
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6212
+ /**
6213
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6214
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6215
+ */
6216
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6217
+ /**
6218
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6219
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6220
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6221
+ */
6222
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6223
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6224
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6225
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6226
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6227
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6228
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6229
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6230
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6231
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6232
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6233
+ }, "strip", z.ZodTypeAny, {
6234
+ requireBusinessDomain?: boolean;
6235
+ blockedDomains?: string[];
6236
+ consumerDomains?: string[];
6237
+ linkTtlMinutes?: number;
6238
+ maxSendsPerSession?: number;
6239
+ maxCodeAttempts?: number;
6240
+ unverifiedMaxSeconds?: number;
6241
+ verifiedMaxSeconds?: number;
6242
+ }, {
6243
+ requireBusinessDomain?: boolean;
6244
+ blockedDomains?: string[];
6245
+ consumerDomains?: string[];
6246
+ linkTtlMinutes?: number;
6247
+ maxSendsPerSession?: number;
6248
+ maxCodeAttempts?: number;
6249
+ unverifiedMaxSeconds?: number;
6250
+ verifiedMaxSeconds?: number;
6251
+ }>>>;
6252
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6253
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6254
+ /** Window (ms) for the three send limits. Default 1 hour. */
6255
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6256
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6257
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6258
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6259
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6260
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6261
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6262
+ /** Window (ms) for code attempts. Default 10 minutes. */
6263
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6264
+ /** Code submissions per session per window. Default 10. 0 disables. */
6265
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6266
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6267
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6268
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6269
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6270
+ }, "strip", z.ZodTypeAny, {
6271
+ sendWindowMs?: number;
6272
+ perIpSends?: number;
6273
+ perEmailDomainSends?: number;
6274
+ perEmailSends?: number;
6275
+ codeAttemptWindowMs?: number;
6276
+ perSessionCodeAttempts?: number;
6277
+ redeemWindowMs?: number;
6278
+ redeemPerIp?: number;
6279
+ }, {
6280
+ sendWindowMs?: number;
6281
+ perIpSends?: number;
6282
+ perEmailDomainSends?: number;
6283
+ perEmailSends?: number;
6284
+ codeAttemptWindowMs?: number;
6285
+ perSessionCodeAttempts?: number;
6286
+ redeemWindowMs?: number;
6287
+ redeemPerIp?: number;
6288
+ }>>>;
6289
+ }, z.ZodTypeAny, "passthrough">>>>;
6290
+ /**
6291
+ * Seconds a client-direct call's recording waits for missing shards after its terminal signal before it
6292
+ * is assembled anyway as `Partial` (gaps become silence). Defaults to 90.
6293
+ */
6294
+ recordingAssemblyGraceSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4661
6295
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
4662
6296
  /** Master switch. When false, the WebRTC SDP broker router is not mounted. Defaults to true. */
4663
6297
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6298
+ /** Mid-session identity verification (off by default). */
6299
+ identityVerification: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6300
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6301
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6302
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6303
+ communicationProvider: z.ZodOptional<z.ZodString>;
6304
+ /** From address of the verification email. */
6305
+ fromAddress: z.ZodOptional<z.ZodString>;
6306
+ /**
6307
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6308
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6309
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6310
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6311
+ */
6312
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6313
+ /**
6314
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6315
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6316
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6317
+ * Communication Log then holds live credentials and no one is emailed.
6318
+ */
6319
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6320
+ /**
6321
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6322
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6323
+ */
6324
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6325
+ /**
6326
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6327
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6328
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6329
+ */
6330
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6331
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6332
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6333
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6334
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6335
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6336
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6337
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6338
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6339
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6340
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6341
+ }, "strip", z.ZodTypeAny, {
6342
+ requireBusinessDomain?: boolean;
6343
+ blockedDomains?: string[];
6344
+ consumerDomains?: string[];
6345
+ linkTtlMinutes?: number;
6346
+ maxSendsPerSession?: number;
6347
+ maxCodeAttempts?: number;
6348
+ unverifiedMaxSeconds?: number;
6349
+ verifiedMaxSeconds?: number;
6350
+ }, {
6351
+ requireBusinessDomain?: boolean;
6352
+ blockedDomains?: string[];
6353
+ consumerDomains?: string[];
6354
+ linkTtlMinutes?: number;
6355
+ maxSendsPerSession?: number;
6356
+ maxCodeAttempts?: number;
6357
+ unverifiedMaxSeconds?: number;
6358
+ verifiedMaxSeconds?: number;
6359
+ }>>>;
6360
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6361
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6362
+ /** Window (ms) for the three send limits. Default 1 hour. */
6363
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6364
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6365
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6366
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6367
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6368
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6369
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6370
+ /** Window (ms) for code attempts. Default 10 minutes. */
6371
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6372
+ /** Code submissions per session per window. Default 10. 0 disables. */
6373
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6374
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6375
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6376
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6377
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6378
+ }, "strip", z.ZodTypeAny, {
6379
+ sendWindowMs?: number;
6380
+ perIpSends?: number;
6381
+ perEmailDomainSends?: number;
6382
+ perEmailSends?: number;
6383
+ codeAttemptWindowMs?: number;
6384
+ perSessionCodeAttempts?: number;
6385
+ redeemWindowMs?: number;
6386
+ redeemPerIp?: number;
6387
+ }, {
6388
+ sendWindowMs?: number;
6389
+ perIpSends?: number;
6390
+ perEmailDomainSends?: number;
6391
+ perEmailSends?: number;
6392
+ codeAttemptWindowMs?: number;
6393
+ perSessionCodeAttempts?: number;
6394
+ redeemWindowMs?: number;
6395
+ redeemPerIp?: number;
6396
+ }>>>;
6397
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
6398
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6399
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6400
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6401
+ communicationProvider: z.ZodOptional<z.ZodString>;
6402
+ /** From address of the verification email. */
6403
+ fromAddress: z.ZodOptional<z.ZodString>;
6404
+ /**
6405
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6406
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6407
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6408
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6409
+ */
6410
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6411
+ /**
6412
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6413
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6414
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6415
+ * Communication Log then holds live credentials and no one is emailed.
6416
+ */
6417
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6418
+ /**
6419
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6420
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6421
+ */
6422
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6423
+ /**
6424
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6425
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6426
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6427
+ */
6428
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6429
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6430
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6431
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6432
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6433
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6434
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6435
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6436
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6437
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6438
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6439
+ }, "strip", z.ZodTypeAny, {
6440
+ requireBusinessDomain?: boolean;
6441
+ blockedDomains?: string[];
6442
+ consumerDomains?: string[];
6443
+ linkTtlMinutes?: number;
6444
+ maxSendsPerSession?: number;
6445
+ maxCodeAttempts?: number;
6446
+ unverifiedMaxSeconds?: number;
6447
+ verifiedMaxSeconds?: number;
6448
+ }, {
6449
+ requireBusinessDomain?: boolean;
6450
+ blockedDomains?: string[];
6451
+ consumerDomains?: string[];
6452
+ linkTtlMinutes?: number;
6453
+ maxSendsPerSession?: number;
6454
+ maxCodeAttempts?: number;
6455
+ unverifiedMaxSeconds?: number;
6456
+ verifiedMaxSeconds?: number;
6457
+ }>>>;
6458
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6459
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6460
+ /** Window (ms) for the three send limits. Default 1 hour. */
6461
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6462
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6463
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6464
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6465
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6466
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6467
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6468
+ /** Window (ms) for code attempts. Default 10 minutes. */
6469
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6470
+ /** Code submissions per session per window. Default 10. 0 disables. */
6471
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6472
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6473
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6474
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6475
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6476
+ }, "strip", z.ZodTypeAny, {
6477
+ sendWindowMs?: number;
6478
+ perIpSends?: number;
6479
+ perEmailDomainSends?: number;
6480
+ perEmailSends?: number;
6481
+ codeAttemptWindowMs?: number;
6482
+ perSessionCodeAttempts?: number;
6483
+ redeemWindowMs?: number;
6484
+ redeemPerIp?: number;
6485
+ }, {
6486
+ sendWindowMs?: number;
6487
+ perIpSends?: number;
6488
+ perEmailDomainSends?: number;
6489
+ perEmailSends?: number;
6490
+ codeAttemptWindowMs?: number;
6491
+ perSessionCodeAttempts?: number;
6492
+ redeemWindowMs?: number;
6493
+ redeemPerIp?: number;
6494
+ }>>>;
6495
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
6496
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6497
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6498
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6499
+ communicationProvider: z.ZodOptional<z.ZodString>;
6500
+ /** From address of the verification email. */
6501
+ fromAddress: z.ZodOptional<z.ZodString>;
6502
+ /**
6503
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6504
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6505
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6506
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6507
+ */
6508
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6509
+ /**
6510
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6511
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6512
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6513
+ * Communication Log then holds live credentials and no one is emailed.
6514
+ */
6515
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6516
+ /**
6517
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6518
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6519
+ */
6520
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6521
+ /**
6522
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6523
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6524
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6525
+ */
6526
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6527
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6528
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6529
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6530
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6531
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6532
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6533
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6534
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6535
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6536
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6537
+ }, "strip", z.ZodTypeAny, {
6538
+ requireBusinessDomain?: boolean;
6539
+ blockedDomains?: string[];
6540
+ consumerDomains?: string[];
6541
+ linkTtlMinutes?: number;
6542
+ maxSendsPerSession?: number;
6543
+ maxCodeAttempts?: number;
6544
+ unverifiedMaxSeconds?: number;
6545
+ verifiedMaxSeconds?: number;
6546
+ }, {
6547
+ requireBusinessDomain?: boolean;
6548
+ blockedDomains?: string[];
6549
+ consumerDomains?: string[];
6550
+ linkTtlMinutes?: number;
6551
+ maxSendsPerSession?: number;
6552
+ maxCodeAttempts?: number;
6553
+ unverifiedMaxSeconds?: number;
6554
+ verifiedMaxSeconds?: number;
6555
+ }>>>;
6556
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6557
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6558
+ /** Window (ms) for the three send limits. Default 1 hour. */
6559
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6560
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6561
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6562
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6563
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6564
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6565
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6566
+ /** Window (ms) for code attempts. Default 10 minutes. */
6567
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6568
+ /** Code submissions per session per window. Default 10. 0 disables. */
6569
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6570
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6571
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6572
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6573
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6574
+ }, "strip", z.ZodTypeAny, {
6575
+ sendWindowMs?: number;
6576
+ perIpSends?: number;
6577
+ perEmailDomainSends?: number;
6578
+ perEmailSends?: number;
6579
+ codeAttemptWindowMs?: number;
6580
+ perSessionCodeAttempts?: number;
6581
+ redeemWindowMs?: number;
6582
+ redeemPerIp?: number;
6583
+ }, {
6584
+ sendWindowMs?: number;
6585
+ perIpSends?: number;
6586
+ perEmailDomainSends?: number;
6587
+ perEmailSends?: number;
6588
+ codeAttemptWindowMs?: number;
6589
+ perSessionCodeAttempts?: number;
6590
+ redeemWindowMs?: number;
6591
+ redeemPerIp?: number;
6592
+ }>>>;
6593
+ }, z.ZodTypeAny, "passthrough">>>>;
6594
+ /**
6595
+ * Seconds a client-direct call's recording waits for missing shards after its terminal signal before it
6596
+ * is assembled anyway as `Partial` (gaps become silence). Defaults to 90.
6597
+ */
6598
+ recordingAssemblyGraceSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4664
6599
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
4665
6600
  /** Master switch. When false, the WebRTC SDP broker router is not mounted. Defaults to true. */
4666
6601
  enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6602
+ /** Mid-session identity verification (off by default). */
6603
+ identityVerification: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6604
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6605
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6606
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6607
+ communicationProvider: z.ZodOptional<z.ZodString>;
6608
+ /** From address of the verification email. */
6609
+ fromAddress: z.ZodOptional<z.ZodString>;
6610
+ /**
6611
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6612
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6613
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6614
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6615
+ */
6616
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6617
+ /**
6618
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6619
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6620
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6621
+ * Communication Log then holds live credentials and no one is emailed.
6622
+ */
6623
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6624
+ /**
6625
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6626
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6627
+ */
6628
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6629
+ /**
6630
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6631
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6632
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6633
+ */
6634
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6635
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6636
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6637
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6638
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6639
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6640
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6641
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6642
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6643
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6644
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6645
+ }, "strip", z.ZodTypeAny, {
6646
+ requireBusinessDomain?: boolean;
6647
+ blockedDomains?: string[];
6648
+ consumerDomains?: string[];
6649
+ linkTtlMinutes?: number;
6650
+ maxSendsPerSession?: number;
6651
+ maxCodeAttempts?: number;
6652
+ unverifiedMaxSeconds?: number;
6653
+ verifiedMaxSeconds?: number;
6654
+ }, {
6655
+ requireBusinessDomain?: boolean;
6656
+ blockedDomains?: string[];
6657
+ consumerDomains?: string[];
6658
+ linkTtlMinutes?: number;
6659
+ maxSendsPerSession?: number;
6660
+ maxCodeAttempts?: number;
6661
+ unverifiedMaxSeconds?: number;
6662
+ verifiedMaxSeconds?: number;
6663
+ }>>>;
6664
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6665
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6666
+ /** Window (ms) for the three send limits. Default 1 hour. */
6667
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6668
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6669
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6670
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6671
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6672
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6673
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6674
+ /** Window (ms) for code attempts. Default 10 minutes. */
6675
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6676
+ /** Code submissions per session per window. Default 10. 0 disables. */
6677
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6678
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6679
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6680
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6681
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6682
+ }, "strip", z.ZodTypeAny, {
6683
+ sendWindowMs?: number;
6684
+ perIpSends?: number;
6685
+ perEmailDomainSends?: number;
6686
+ perEmailSends?: number;
6687
+ codeAttemptWindowMs?: number;
6688
+ perSessionCodeAttempts?: number;
6689
+ redeemWindowMs?: number;
6690
+ redeemPerIp?: number;
6691
+ }, {
6692
+ sendWindowMs?: number;
6693
+ perIpSends?: number;
6694
+ perEmailDomainSends?: number;
6695
+ perEmailSends?: number;
6696
+ codeAttemptWindowMs?: number;
6697
+ perSessionCodeAttempts?: number;
6698
+ redeemWindowMs?: number;
6699
+ redeemPerIp?: number;
6700
+ }>>>;
6701
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
6702
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6703
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6704
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6705
+ communicationProvider: z.ZodOptional<z.ZodString>;
6706
+ /** From address of the verification email. */
6707
+ fromAddress: z.ZodOptional<z.ZodString>;
6708
+ /**
6709
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6710
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6711
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6712
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6713
+ */
6714
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6715
+ /**
6716
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6717
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6718
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6719
+ * Communication Log then holds live credentials and no one is emailed.
6720
+ */
6721
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6722
+ /**
6723
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6724
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6725
+ */
6726
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6727
+ /**
6728
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6729
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6730
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6731
+ */
6732
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6733
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6734
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6735
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6736
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6737
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6738
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6739
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6740
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6741
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6742
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6743
+ }, "strip", z.ZodTypeAny, {
6744
+ requireBusinessDomain?: boolean;
6745
+ blockedDomains?: string[];
6746
+ consumerDomains?: string[];
6747
+ linkTtlMinutes?: number;
6748
+ maxSendsPerSession?: number;
6749
+ maxCodeAttempts?: number;
6750
+ unverifiedMaxSeconds?: number;
6751
+ verifiedMaxSeconds?: number;
6752
+ }, {
6753
+ requireBusinessDomain?: boolean;
6754
+ blockedDomains?: string[];
6755
+ consumerDomains?: string[];
6756
+ linkTtlMinutes?: number;
6757
+ maxSendsPerSession?: number;
6758
+ maxCodeAttempts?: number;
6759
+ unverifiedMaxSeconds?: number;
6760
+ verifiedMaxSeconds?: number;
6761
+ }>>>;
6762
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6763
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6764
+ /** Window (ms) for the three send limits. Default 1 hour. */
6765
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6766
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6767
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6768
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6769
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6770
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6771
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6772
+ /** Window (ms) for code attempts. Default 10 minutes. */
6773
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6774
+ /** Code submissions per session per window. Default 10. 0 disables. */
6775
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6776
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6777
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6778
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6779
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6780
+ }, "strip", z.ZodTypeAny, {
6781
+ sendWindowMs?: number;
6782
+ perIpSends?: number;
6783
+ perEmailDomainSends?: number;
6784
+ perEmailSends?: number;
6785
+ codeAttemptWindowMs?: number;
6786
+ perSessionCodeAttempts?: number;
6787
+ redeemWindowMs?: number;
6788
+ redeemPerIp?: number;
6789
+ }, {
6790
+ sendWindowMs?: number;
6791
+ perIpSends?: number;
6792
+ perEmailDomainSends?: number;
6793
+ perEmailSends?: number;
6794
+ codeAttemptWindowMs?: number;
6795
+ perSessionCodeAttempts?: number;
6796
+ redeemWindowMs?: number;
6797
+ redeemPerIp?: number;
6798
+ }>>>;
6799
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
6800
+ /** Master switch. When false the verify routes are not mounted and the GraphQL operations refuse. */
6801
+ enabled: z.ZodDefault<z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodString, z.ZodNumber]>>>, boolean, string | number | boolean>>;
6802
+ /** CommunicationEngine provider that delivers the verification email (e.g. 'SendGrid', 'Microsoft Graph'). Required to send. */
6803
+ communicationProvider: z.ZodOptional<z.ZodString>;
6804
+ /** From address of the verification email. */
6805
+ fromAddress: z.ZodOptional<z.ZodString>;
6806
+ /**
6807
+ * Server-only secret the typed verification code is HMAC'd under before it is stored on the session
6808
+ * (at least 16 characters; 32+ random characters recommended). REQUIRED: without it verification is
6809
+ * unavailable, because a session's owner can read their own session row and a bare hash of a six-digit
6810
+ * code can be reversed offline. Never exposed to clients. Rotating it voids pending verifications only.
6811
+ */
6812
+ hmacSecret: z.ZodDefault<z.ZodOptional<z.ZodString>>;
6813
+ /**
6814
+ * `send` (default) delivers the email. `dry-run` builds and logs the message through the communication
6815
+ * provider WITHOUT delivering it — for rehearsal and integration environments, where a test reads the
6816
+ * emailed link and code from the `MJ: Communication Logs` row. Never use `dry-run` in production: the
6817
+ * Communication Log then holds live credentials and no one is emailed.
6818
+ */
6819
+ deliveryMode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["send", "dry-run"]>>>;
6820
+ /**
6821
+ * Base URL the emailed link is built from (`<publicBaseUrl>/realtime/verify/<token>`). Defaults to the
6822
+ * server's `publicUrl`, or `baseUrl:graphqlPort` when that is unset — the same derivation magic links use.
6823
+ */
6824
+ publicBaseUrl: z.ZodOptional<z.ZodString>;
6825
+ /**
6826
+ * The internal user the server acts as to read/write the session, send the email and write the audit
6827
+ * row, matched against `User.Name` then `User.Email` (falls back to the system user, then the lowest-ID
6828
+ * active Owner). The verify link is public, so it has no caller identity of its own.
6829
+ */
6830
+ contextUserForVerification: z.ZodOptional<z.ZodString>;
6831
+ /** Base policy layer; each knob here is overridden by the per-session cascade layer. */
6832
+ policy: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6833
+ requireBusinessDomain: z.ZodOptional<z.ZodBoolean>;
6834
+ blockedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6835
+ consumerDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
6836
+ linkTtlMinutes: z.ZodOptional<z.ZodNumber>;
6837
+ maxSendsPerSession: z.ZodOptional<z.ZodNumber>;
6838
+ maxCodeAttempts: z.ZodOptional<z.ZodNumber>;
6839
+ unverifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6840
+ verifiedMaxSeconds: z.ZodOptional<z.ZodNumber>;
6841
+ }, "strip", z.ZodTypeAny, {
6842
+ requireBusinessDomain?: boolean;
6843
+ blockedDomains?: string[];
6844
+ consumerDomains?: string[];
6845
+ linkTtlMinutes?: number;
6846
+ maxSendsPerSession?: number;
6847
+ maxCodeAttempts?: number;
6848
+ unverifiedMaxSeconds?: number;
6849
+ verifiedMaxSeconds?: number;
6850
+ }, {
6851
+ requireBusinessDomain?: boolean;
6852
+ blockedDomains?: string[];
6853
+ consumerDomains?: string[];
6854
+ linkTtlMinutes?: number;
6855
+ maxSendsPerSession?: number;
6856
+ maxCodeAttempts?: number;
6857
+ unverifiedMaxSeconds?: number;
6858
+ verifiedMaxSeconds?: number;
6859
+ }>>>;
6860
+ /** Send-side and attempt-side limits (per instance, in memory; per-session limits are persisted and exact). */
6861
+ rateLimits: z.ZodDefault<z.ZodOptional<z.ZodObject<{
6862
+ /** Window (ms) for the three send limits. Default 1 hour. */
6863
+ sendWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6864
+ /** Verification emails per client IP per window. Default 10. 0 disables. */
6865
+ perIpSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6866
+ /** Verification emails per recipient domain per window. Default 30. 0 disables. */
6867
+ perEmailDomainSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6868
+ /** Verification emails per recipient address per window — stops the feature being used to mail-bomb one inbox. Default 3. 0 disables. */
6869
+ perEmailSends: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6870
+ /** Window (ms) for code attempts. Default 10 minutes. */
6871
+ codeAttemptWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6872
+ /** Code submissions per session per window. Default 10. 0 disables. */
6873
+ perSessionCodeAttempts: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6874
+ /** Window (ms) of the public `/realtime/verify` route limiter. Default 60s. */
6875
+ redeemWindowMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6876
+ /** `/realtime/verify` requests per IP per window. Default 30. */
6877
+ redeemPerIp: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
6878
+ }, "strip", z.ZodTypeAny, {
6879
+ sendWindowMs?: number;
6880
+ perIpSends?: number;
6881
+ perEmailDomainSends?: number;
6882
+ perEmailSends?: number;
6883
+ codeAttemptWindowMs?: number;
6884
+ perSessionCodeAttempts?: number;
6885
+ redeemWindowMs?: number;
6886
+ redeemPerIp?: number;
6887
+ }, {
6888
+ sendWindowMs?: number;
6889
+ perIpSends?: number;
6890
+ perEmailDomainSends?: number;
6891
+ perEmailSends?: number;
6892
+ codeAttemptWindowMs?: number;
6893
+ perSessionCodeAttempts?: number;
6894
+ redeemWindowMs?: number;
6895
+ redeemPerIp?: number;
6896
+ }>>>;
6897
+ }, z.ZodTypeAny, "passthrough">>>>;
6898
+ /**
6899
+ * Seconds a client-direct call's recording waits for missing shards after its terminal signal before it
6900
+ * is assembled anyway as `Partial` (gaps become silence). Defaults to 90.
6901
+ */
6902
+ recordingAssemblyGraceSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
4667
6903
  }, z.ZodTypeAny, "passthrough">>>>;
4668
6904
  databaseSettings: z.ZodObject<{
4669
6905
  connectionTimeout: z.ZodNumber;
@@ -5091,19 +7327,19 @@ declare const configInfoSchema: z.ZodObject<{
5091
7327
  writeProtection?: "strict" | "log" | "off";
5092
7328
  }>>>;
5093
7329
  serverExtensions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
5094
- Enabled: z.ZodDefault<z.ZodBoolean>;
7330
+ Enabled: z.ZodOptional<z.ZodBoolean>;
5095
7331
  DriverClass: z.ZodString;
5096
- RootPath: z.ZodString;
7332
+ RootPath: z.ZodOptional<z.ZodString>;
5097
7333
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5098
7334
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
5099
- Enabled: z.ZodDefault<z.ZodBoolean>;
7335
+ Enabled: z.ZodOptional<z.ZodBoolean>;
5100
7336
  DriverClass: z.ZodString;
5101
- RootPath: z.ZodString;
7337
+ RootPath: z.ZodOptional<z.ZodString>;
5102
7338
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5103
7339
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
5104
- Enabled: z.ZodDefault<z.ZodBoolean>;
7340
+ Enabled: z.ZodOptional<z.ZodBoolean>;
5105
7341
  DriverClass: z.ZodString;
5106
- RootPath: z.ZodString;
7342
+ RootPath: z.ZodOptional<z.ZodString>;
5107
7343
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5108
7344
  }, z.ZodTypeAny, "passthrough">>, "many">>>;
5109
7345
  cacheSettings: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -5111,6 +7347,14 @@ declare const configInfoSchema: z.ZodObject<{
5111
7347
  maxMemoryMB: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5112
7348
  /** Maximum percentage of total cache memory that any single entity can occupy. Default: 50. Set to 0 to disable. */
5113
7349
  maxPercentOfCachePerEntity: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7350
+ /**
7351
+ * Ceiling on any ONE cache entry. 'auto' (the default) derives it from maxMemoryMB, so the
7352
+ * largest entity the server caches scales with the memory the cache was given; a number is an
7353
+ * explicit stricter percentage of maxMemoryMB; 0 removes the ceiling. Leave it on 'auto' unless
7354
+ * a specific entry must be kept out of the cache — an entry declined by the ceiling is re-read
7355
+ * from the database on every call, and the server logs which maxMemoryMB would admit it.
7356
+ */
7357
+ maxEntryPercentOfCache: z.ZodDefault<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"auto">]>>>;
5114
7358
  /** Default TTL in seconds. 0 = no TTL, rely on event-based invalidation. Default: 0. */
5115
7359
  defaultTTLSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5116
7360
  /** Interval in seconds for periodic eviction sweep. 0 = disabled. Default: 300 (5 minutes). */
@@ -5140,20 +7384,64 @@ declare const configInfoSchema: z.ZodObject<{
5140
7384
  * every signed-in user may read every row of every entity.
5141
7385
  */
5142
7386
  recordDataBroadcastEntities: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
7387
+ /**
7388
+ * Expiry, in seconds, of entries in the shared Redis cache (used when REDIS_URL is set). The
7389
+ * REDIS_TTL_SECONDS environment variable overrides it. 0 stores entries without expiry. When
7390
+ * neither is set, the Redis provider's default applies (one hour).
7391
+ */
7392
+ sharedCacheTTLSeconds: z.ZodOptional<z.ZodNumber>;
7393
+ /**
7394
+ * How often, in seconds, loaded engines compare their rows with the database and reload what
7395
+ * changed without an MJ event (direct SQL, other applications). With a shared cache one server
7396
+ * does it per interval. 0 = disabled. Default: 300 (5 minutes).
7397
+ */
7398
+ engineSweepIntervalSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7399
+ /**
7400
+ * How often, in seconds, the user cache compares two row counts and the newest update timestamp
7401
+ * with the database and reloads only when they differ. The cache already refreshes on MJ writes
7402
+ * (locally and, with a shared cache, on other servers); this covers changes made outside MJ.
7403
+ * 0 = disabled. Default: 300 (5 minutes).
7404
+ */
7405
+ userCacheCheckIntervalSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7406
+ /**
7407
+ * How often to compare this process's metadata with the database, in seconds (0 disables).
7408
+ * Costs nothing unless an entity the metadata is built from declares
7409
+ * `TrustServerCacheCompletely = false`; see `ProviderBase.SweepMetadataAgainstDatabase`.
7410
+ */
7411
+ metadataSweepIntervalSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7412
+ /**
7413
+ * How long, in seconds, a server holds the shared warm-up turn while it loads its engines, so
7414
+ * servers starting together load one at a time and the rest find the cache warm. The lease is
7415
+ * renewed while the load runs; this value is both its expiry and how long another server waits
7416
+ * for it. 0 disables the turn-taking. Default: 30.
7417
+ */
7418
+ startupWarmupLeaseSeconds: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5143
7419
  }, "strip", z.ZodTypeAny, {
5144
7420
  maxMemoryMB?: number;
5145
7421
  maxPercentOfCachePerEntity?: number;
7422
+ maxEntryPercentOfCache?: number | "auto";
5146
7423
  defaultTTLSeconds?: number;
5147
7424
  evictionSweepIntervalSeconds?: number;
5148
7425
  verboseLogging?: boolean;
5149
7426
  recordDataBroadcastEntities?: string[];
7427
+ sharedCacheTTLSeconds?: number;
7428
+ engineSweepIntervalSeconds?: number;
7429
+ userCacheCheckIntervalSeconds?: number;
7430
+ metadataSweepIntervalSeconds?: number;
7431
+ startupWarmupLeaseSeconds?: number;
5150
7432
  }, {
5151
7433
  maxMemoryMB?: number;
5152
7434
  maxPercentOfCachePerEntity?: number;
7435
+ maxEntryPercentOfCache?: number | "auto";
5153
7436
  defaultTTLSeconds?: number;
5154
7437
  evictionSweepIntervalSeconds?: number;
5155
7438
  verboseLogging?: boolean;
5156
7439
  recordDataBroadcastEntities?: string[];
7440
+ sharedCacheTTLSeconds?: number;
7441
+ engineSweepIntervalSeconds?: number;
7442
+ userCacheCheckIntervalSeconds?: number;
7443
+ metadataSweepIntervalSeconds?: number;
7444
+ startupWarmupLeaseSeconds?: number;
5157
7445
  }>>>;
5158
7446
  loggingSettings: z.ZodDefault<z.ZodOptional<z.ZodObject<{
5159
7447
  graphql: z.ZodDefault<z.ZodOptional<z.ZodObject<{
@@ -5181,6 +7469,18 @@ declare const configInfoSchema: z.ZodObject<{
5181
7469
  logVariables?: boolean;
5182
7470
  };
5183
7471
  }>>>;
7472
+ aiPromptRuns: z.ZodOptional<z.ZodObject<{
7473
+ /**
7474
+ * Server default for which template inputs prompt runs store in AIPromptRun.Messages:
7475
+ * 'None' (key sizes only), 'Referenced' (keys the templates read) or 'Full'.
7476
+ * AIPrompt.TemplateDataCapture and AIPromptParams.TemplateDataCapture override it.
7477
+ */
7478
+ templateDataCapture: z.ZodOptional<z.ZodEnum<["None", "Referenced", "Full"]>>;
7479
+ }, "strip", z.ZodTypeAny, {
7480
+ templateDataCapture?: "None" | "Referenced" | "Full";
7481
+ }, {
7482
+ templateDataCapture?: "None" | "Referenced" | "Full";
7483
+ }>>;
5184
7484
  feedbackSettings: z.ZodDefault<z.ZodOptional<z.ZodObject<{
5185
7485
  /** Org-level kill switch for the in-app feedback feature. Defaults to true (enabled). */
5186
7486
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -5350,6 +7650,12 @@ declare const configInfoSchema: z.ZodObject<{
5350
7650
  ___codeGenAPIPort: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5351
7651
  ___codeGenAPISubmissionDelay: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5352
7652
  graphqlRootPath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
7653
+ /**
7654
+ * Path prefix MJAPI mounts every route it serves under (core routes and server extensions), on its own
7655
+ * listener. `/` unless a proxy forwards a prefix WITHOUT stripping it (e.g. CloudFront `/api/*` → MJAPI):
7656
+ * then set `MJAPI_BASE_PATH=/api`. Independent of `graphqlRootPath`, which is only Apollo's path. MJ #5674.
7657
+ */
7658
+ apiBasePath: z.ZodDefault<z.ZodOptional<z.ZodString>>;
5353
7659
  enableIntrospection: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
5354
7660
  websiteRunFromPackage: z.ZodOptional<z.ZodNumber>;
5355
7661
  userEmailMap: z.ZodOptional<z.ZodEffects<z.ZodString, Record<string, string>, string>>;
@@ -5368,6 +7674,10 @@ declare const configInfoSchema: z.ZodObject<{
5368
7674
  contextUserForNewUserCreation?: string;
5369
7675
  CreateUserApplicationRecords?: boolean;
5370
7676
  UserApplications?: string[];
7677
+ newUserTemplate?: {
7678
+ email?: string;
7679
+ preset?: string;
7680
+ };
5371
7681
  };
5372
7682
  magicLink?: {
5373
7683
  enabled?: boolean;
@@ -5501,6 +7811,38 @@ declare const configInfoSchema: z.ZodObject<{
5501
7811
  };
5502
7812
  realtime?: {
5503
7813
  enabled?: boolean;
7814
+ identityVerification?: {
7815
+ enabled?: boolean;
7816
+ communicationProvider?: string;
7817
+ fromAddress?: string;
7818
+ hmacSecret?: string;
7819
+ deliveryMode?: "send" | "dry-run";
7820
+ publicBaseUrl?: string;
7821
+ contextUserForVerification?: string;
7822
+ policy?: {
7823
+ requireBusinessDomain?: boolean;
7824
+ blockedDomains?: string[];
7825
+ consumerDomains?: string[];
7826
+ linkTtlMinutes?: number;
7827
+ maxSendsPerSession?: number;
7828
+ maxCodeAttempts?: number;
7829
+ unverifiedMaxSeconds?: number;
7830
+ verifiedMaxSeconds?: number;
7831
+ };
7832
+ rateLimits?: {
7833
+ sendWindowMs?: number;
7834
+ perIpSends?: number;
7835
+ perEmailDomainSends?: number;
7836
+ perEmailSends?: number;
7837
+ codeAttemptWindowMs?: number;
7838
+ perSessionCodeAttempts?: number;
7839
+ redeemWindowMs?: number;
7840
+ redeemPerIp?: number;
7841
+ };
7842
+ } & {
7843
+ [k: string]: unknown;
7844
+ };
7845
+ recordingAssemblyGraceSeconds?: number;
5504
7846
  } & {
5505
7847
  [k: string]: unknown;
5506
7848
  };
@@ -5627,24 +7969,33 @@ declare const configInfoSchema: z.ZodObject<{
5627
7969
  writeProtection?: "strict" | "log" | "off";
5628
7970
  };
5629
7971
  serverExtensions?: z.objectOutputType<{
5630
- Enabled: z.ZodDefault<z.ZodBoolean>;
7972
+ Enabled: z.ZodOptional<z.ZodBoolean>;
5631
7973
  DriverClass: z.ZodString;
5632
- RootPath: z.ZodString;
7974
+ RootPath: z.ZodOptional<z.ZodString>;
5633
7975
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5634
7976
  }, z.ZodTypeAny, "passthrough">[];
5635
7977
  cacheSettings?: {
5636
7978
  maxMemoryMB?: number;
5637
7979
  maxPercentOfCachePerEntity?: number;
7980
+ maxEntryPercentOfCache?: number | "auto";
5638
7981
  defaultTTLSeconds?: number;
5639
7982
  evictionSweepIntervalSeconds?: number;
5640
7983
  verboseLogging?: boolean;
5641
7984
  recordDataBroadcastEntities?: string[];
7985
+ sharedCacheTTLSeconds?: number;
7986
+ engineSweepIntervalSeconds?: number;
7987
+ userCacheCheckIntervalSeconds?: number;
7988
+ metadataSweepIntervalSeconds?: number;
7989
+ startupWarmupLeaseSeconds?: number;
5642
7990
  };
5643
7991
  loggingSettings?: {
5644
7992
  graphql?: {
5645
7993
  logVariables?: boolean;
5646
7994
  };
5647
7995
  };
7996
+ aiPromptRuns?: {
7997
+ templateDataCapture?: "None" | "Referenced" | "Full";
7998
+ };
5648
7999
  feedbackSettings?: {
5649
8000
  enabled?: boolean;
5650
8001
  github?: {
@@ -5694,6 +8045,7 @@ declare const configInfoSchema: z.ZodObject<{
5694
8045
  ___codeGenAPIPort?: number;
5695
8046
  ___codeGenAPISubmissionDelay?: number;
5696
8047
  graphqlRootPath?: string;
8048
+ apiBasePath?: string;
5697
8049
  enableIntrospection?: boolean;
5698
8050
  websiteRunFromPackage?: number;
5699
8051
  userEmailMap?: Record<string, string>;
@@ -5712,6 +8064,10 @@ declare const configInfoSchema: z.ZodObject<{
5712
8064
  contextUserForNewUserCreation?: string;
5713
8065
  CreateUserApplicationRecords?: boolean;
5714
8066
  UserApplications?: string[];
8067
+ newUserTemplate?: {
8068
+ email?: string;
8069
+ preset?: string;
8070
+ };
5715
8071
  };
5716
8072
  magicLink?: {
5717
8073
  enabled?: string | number | boolean;
@@ -5845,6 +8201,38 @@ declare const configInfoSchema: z.ZodObject<{
5845
8201
  };
5846
8202
  realtime?: {
5847
8203
  enabled?: string | number | boolean;
8204
+ identityVerification?: {
8205
+ enabled?: string | number | boolean;
8206
+ communicationProvider?: string;
8207
+ fromAddress?: string;
8208
+ hmacSecret?: string;
8209
+ deliveryMode?: "send" | "dry-run";
8210
+ publicBaseUrl?: string;
8211
+ contextUserForVerification?: string;
8212
+ policy?: {
8213
+ requireBusinessDomain?: boolean;
8214
+ blockedDomains?: string[];
8215
+ consumerDomains?: string[];
8216
+ linkTtlMinutes?: number;
8217
+ maxSendsPerSession?: number;
8218
+ maxCodeAttempts?: number;
8219
+ unverifiedMaxSeconds?: number;
8220
+ verifiedMaxSeconds?: number;
8221
+ };
8222
+ rateLimits?: {
8223
+ sendWindowMs?: number;
8224
+ perIpSends?: number;
8225
+ perEmailDomainSends?: number;
8226
+ perEmailSends?: number;
8227
+ codeAttemptWindowMs?: number;
8228
+ perSessionCodeAttempts?: number;
8229
+ redeemWindowMs?: number;
8230
+ redeemPerIp?: number;
8231
+ };
8232
+ } & {
8233
+ [k: string]: unknown;
8234
+ };
8235
+ recordingAssemblyGraceSeconds?: number;
5848
8236
  } & {
5849
8237
  [k: string]: unknown;
5850
8238
  };
@@ -5971,24 +8359,33 @@ declare const configInfoSchema: z.ZodObject<{
5971
8359
  writeProtection?: "strict" | "log" | "off";
5972
8360
  };
5973
8361
  serverExtensions?: z.objectInputType<{
5974
- Enabled: z.ZodDefault<z.ZodBoolean>;
8362
+ Enabled: z.ZodOptional<z.ZodBoolean>;
5975
8363
  DriverClass: z.ZodString;
5976
- RootPath: z.ZodString;
8364
+ RootPath: z.ZodOptional<z.ZodString>;
5977
8365
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
5978
8366
  }, z.ZodTypeAny, "passthrough">[];
5979
8367
  cacheSettings?: {
5980
8368
  maxMemoryMB?: number;
5981
8369
  maxPercentOfCachePerEntity?: number;
8370
+ maxEntryPercentOfCache?: number | "auto";
5982
8371
  defaultTTLSeconds?: number;
5983
8372
  evictionSweepIntervalSeconds?: number;
5984
8373
  verboseLogging?: boolean;
5985
8374
  recordDataBroadcastEntities?: string[];
8375
+ sharedCacheTTLSeconds?: number;
8376
+ engineSweepIntervalSeconds?: number;
8377
+ userCacheCheckIntervalSeconds?: number;
8378
+ metadataSweepIntervalSeconds?: number;
8379
+ startupWarmupLeaseSeconds?: number;
5986
8380
  };
5987
8381
  loggingSettings?: {
5988
8382
  graphql?: {
5989
8383
  logVariables?: boolean;
5990
8384
  };
5991
8385
  };
8386
+ aiPromptRuns?: {
8387
+ templateDataCapture?: "None" | "Referenced" | "Full";
8388
+ };
5992
8389
  feedbackSettings?: {
5993
8390
  enabled?: boolean;
5994
8391
  github?: {
@@ -6038,6 +8435,7 @@ declare const configInfoSchema: z.ZodObject<{
6038
8435
  ___codeGenAPIPort?: number;
6039
8436
  ___codeGenAPISubmissionDelay?: number;
6040
8437
  graphqlRootPath?: string;
8438
+ apiBasePath?: string;
6041
8439
  enableIntrospection?: boolean;
6042
8440
  websiteRunFromPackage?: number;
6043
8441
  userEmailMap?: string;
@@ -6048,6 +8446,7 @@ export type MagicLinkConfig = z.infer<typeof magicLinkSchema>;
6048
8446
  export type WidgetConfig = z.infer<typeof widgetSchema>;
6049
8447
  export type TelephonyConfig = z.infer<typeof telephonySchema>;
6050
8448
  export type RealtimeConfig = z.infer<typeof realtimeSchema>;
8449
+ export type IdentityVerificationConfig = z.infer<typeof identityVerificationSchema>;
6051
8450
  export type TwilioTelephonyConfig = z.infer<typeof twilioTelephonySchema>;
6052
8451
  export type VonageTelephonyConfig = z.infer<typeof vonageTelephonySchema>;
6053
8452
  export type RingCentralTelephonyConfig = z.infer<typeof ringcentralTelephonySchema>;
@@ -6066,9 +8465,10 @@ export type { WorkQueueConfig } from './services/workQueueConfig.js';
6066
8465
  export type TelemetryConfig = z.infer<typeof telemetrySchema>;
6067
8466
  export type QueryDialectConfig = z.infer<typeof queryDialectSchema>;
6068
8467
  export type MultiTenancyConfig = z.infer<typeof multiTenancySchema>;
6069
- export type ServerExtensionConfig = z.infer<typeof serverExtensionSchema>;
8468
+ export type ServerExtensionConfig = z.infer<typeof ServerExtensionSchema>;
6070
8469
  export type CacheSettingsConfig = z.infer<typeof cacheSettingsSchema>;
6071
8470
  export type LoggingSettingsConfig = z.infer<typeof loggingSettingsSchema>;
8471
+ export type AIPromptRunsConfig = z.infer<typeof aiPromptRunsSchema>;
6072
8472
  export type FeedbackGithubSettingsConfig = z.infer<typeof feedbackGithubSettingsSchema>;
6073
8473
  export type FeedbackSettingsConfig = z.infer<typeof feedbackSettingsSchema>;
6074
8474
  export type CorsConfig = z.infer<typeof corsSchema>;
@@ -6120,6 +8520,10 @@ export declare function LoadConfig(): {
6120
8520
  contextUserForNewUserCreation?: string;
6121
8521
  CreateUserApplicationRecords?: boolean;
6122
8522
  UserApplications?: string[];
8523
+ newUserTemplate?: {
8524
+ email?: string;
8525
+ preset?: string;
8526
+ };
6123
8527
  };
6124
8528
  magicLink?: {
6125
8529
  enabled?: boolean;
@@ -6253,6 +8657,38 @@ export declare function LoadConfig(): {
6253
8657
  };
6254
8658
  realtime?: {
6255
8659
  enabled?: boolean;
8660
+ identityVerification?: {
8661
+ enabled?: boolean;
8662
+ communicationProvider?: string;
8663
+ fromAddress?: string;
8664
+ hmacSecret?: string;
8665
+ deliveryMode?: "send" | "dry-run";
8666
+ publicBaseUrl?: string;
8667
+ contextUserForVerification?: string;
8668
+ policy?: {
8669
+ requireBusinessDomain?: boolean;
8670
+ blockedDomains?: string[];
8671
+ consumerDomains?: string[];
8672
+ linkTtlMinutes?: number;
8673
+ maxSendsPerSession?: number;
8674
+ maxCodeAttempts?: number;
8675
+ unverifiedMaxSeconds?: number;
8676
+ verifiedMaxSeconds?: number;
8677
+ };
8678
+ rateLimits?: {
8679
+ sendWindowMs?: number;
8680
+ perIpSends?: number;
8681
+ perEmailDomainSends?: number;
8682
+ perEmailSends?: number;
8683
+ codeAttemptWindowMs?: number;
8684
+ perSessionCodeAttempts?: number;
8685
+ redeemWindowMs?: number;
8686
+ redeemPerIp?: number;
8687
+ };
8688
+ } & {
8689
+ [k: string]: unknown;
8690
+ };
8691
+ recordingAssemblyGraceSeconds?: number;
6256
8692
  } & {
6257
8693
  [k: string]: unknown;
6258
8694
  };
@@ -6379,24 +8815,33 @@ export declare function LoadConfig(): {
6379
8815
  writeProtection?: "strict" | "log" | "off";
6380
8816
  };
6381
8817
  serverExtensions?: z.objectOutputType<{
6382
- Enabled: z.ZodDefault<z.ZodBoolean>;
8818
+ Enabled: z.ZodOptional<z.ZodBoolean>;
6383
8819
  DriverClass: z.ZodString;
6384
- RootPath: z.ZodString;
8820
+ RootPath: z.ZodOptional<z.ZodString>;
6385
8821
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6386
8822
  }, z.ZodTypeAny, "passthrough">[];
6387
8823
  cacheSettings?: {
6388
8824
  maxMemoryMB?: number;
6389
8825
  maxPercentOfCachePerEntity?: number;
8826
+ maxEntryPercentOfCache?: number | "auto";
6390
8827
  defaultTTLSeconds?: number;
6391
8828
  evictionSweepIntervalSeconds?: number;
6392
8829
  verboseLogging?: boolean;
6393
8830
  recordDataBroadcastEntities?: string[];
8831
+ sharedCacheTTLSeconds?: number;
8832
+ engineSweepIntervalSeconds?: number;
8833
+ userCacheCheckIntervalSeconds?: number;
8834
+ metadataSweepIntervalSeconds?: number;
8835
+ startupWarmupLeaseSeconds?: number;
6394
8836
  };
6395
8837
  loggingSettings?: {
6396
8838
  graphql?: {
6397
8839
  logVariables?: boolean;
6398
8840
  };
6399
8841
  };
8842
+ aiPromptRuns?: {
8843
+ templateDataCapture?: "None" | "Referenced" | "Full";
8844
+ };
6400
8845
  feedbackSettings?: {
6401
8846
  enabled?: boolean;
6402
8847
  github?: {
@@ -6446,6 +8891,7 @@ export declare function LoadConfig(): {
6446
8891
  ___codeGenAPIPort?: number;
6447
8892
  ___codeGenAPISubmissionDelay?: number;
6448
8893
  graphqlRootPath?: string;
8894
+ apiBasePath?: string;
6449
8895
  enableIntrospection?: boolean;
6450
8896
  websiteRunFromPackage?: number;
6451
8897
  userEmailMap?: Record<string, string>;
@@ -6466,6 +8912,10 @@ export declare function loadConfig(): {
6466
8912
  contextUserForNewUserCreation?: string;
6467
8913
  CreateUserApplicationRecords?: boolean;
6468
8914
  UserApplications?: string[];
8915
+ newUserTemplate?: {
8916
+ email?: string;
8917
+ preset?: string;
8918
+ };
6469
8919
  };
6470
8920
  magicLink?: {
6471
8921
  enabled?: boolean;
@@ -6599,6 +9049,38 @@ export declare function loadConfig(): {
6599
9049
  };
6600
9050
  realtime?: {
6601
9051
  enabled?: boolean;
9052
+ identityVerification?: {
9053
+ enabled?: boolean;
9054
+ communicationProvider?: string;
9055
+ fromAddress?: string;
9056
+ hmacSecret?: string;
9057
+ deliveryMode?: "send" | "dry-run";
9058
+ publicBaseUrl?: string;
9059
+ contextUserForVerification?: string;
9060
+ policy?: {
9061
+ requireBusinessDomain?: boolean;
9062
+ blockedDomains?: string[];
9063
+ consumerDomains?: string[];
9064
+ linkTtlMinutes?: number;
9065
+ maxSendsPerSession?: number;
9066
+ maxCodeAttempts?: number;
9067
+ unverifiedMaxSeconds?: number;
9068
+ verifiedMaxSeconds?: number;
9069
+ };
9070
+ rateLimits?: {
9071
+ sendWindowMs?: number;
9072
+ perIpSends?: number;
9073
+ perEmailDomainSends?: number;
9074
+ perEmailSends?: number;
9075
+ codeAttemptWindowMs?: number;
9076
+ perSessionCodeAttempts?: number;
9077
+ redeemWindowMs?: number;
9078
+ redeemPerIp?: number;
9079
+ };
9080
+ } & {
9081
+ [k: string]: unknown;
9082
+ };
9083
+ recordingAssemblyGraceSeconds?: number;
6602
9084
  } & {
6603
9085
  [k: string]: unknown;
6604
9086
  };
@@ -6725,24 +9207,33 @@ export declare function loadConfig(): {
6725
9207
  writeProtection?: "strict" | "log" | "off";
6726
9208
  };
6727
9209
  serverExtensions?: z.objectOutputType<{
6728
- Enabled: z.ZodDefault<z.ZodBoolean>;
9210
+ Enabled: z.ZodOptional<z.ZodBoolean>;
6729
9211
  DriverClass: z.ZodString;
6730
- RootPath: z.ZodString;
9212
+ RootPath: z.ZodOptional<z.ZodString>;
6731
9213
  Settings: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6732
9214
  }, z.ZodTypeAny, "passthrough">[];
6733
9215
  cacheSettings?: {
6734
9216
  maxMemoryMB?: number;
6735
9217
  maxPercentOfCachePerEntity?: number;
9218
+ maxEntryPercentOfCache?: number | "auto";
6736
9219
  defaultTTLSeconds?: number;
6737
9220
  evictionSweepIntervalSeconds?: number;
6738
9221
  verboseLogging?: boolean;
6739
9222
  recordDataBroadcastEntities?: string[];
9223
+ sharedCacheTTLSeconds?: number;
9224
+ engineSweepIntervalSeconds?: number;
9225
+ userCacheCheckIntervalSeconds?: number;
9226
+ metadataSweepIntervalSeconds?: number;
9227
+ startupWarmupLeaseSeconds?: number;
6740
9228
  };
6741
9229
  loggingSettings?: {
6742
9230
  graphql?: {
6743
9231
  logVariables?: boolean;
6744
9232
  };
6745
9233
  };
9234
+ aiPromptRuns?: {
9235
+ templateDataCapture?: "None" | "Referenced" | "Full";
9236
+ };
6746
9237
  feedbackSettings?: {
6747
9238
  enabled?: boolean;
6748
9239
  github?: {
@@ -6792,6 +9283,7 @@ export declare function loadConfig(): {
6792
9283
  ___codeGenAPIPort?: number;
6793
9284
  ___codeGenAPISubmissionDelay?: number;
6794
9285
  graphqlRootPath?: string;
9286
+ apiBasePath?: string;
6795
9287
  enableIntrospection?: boolean;
6796
9288
  websiteRunFromPackage?: number;
6797
9289
  userEmailMap?: Record<string, string>;