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

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 (664) hide show
  1. package/README.md +96 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/agentSessions/BridgeHostInstance.d.ts +8 -3
  4. package/dist/agentSessions/BridgeHostInstance.d.ts.map +1 -1
  5. package/dist/agentSessions/BridgeHostInstance.js +14 -4
  6. package/dist/agentSessions/BridgeHostInstance.js.map +1 -1
  7. package/dist/agentSessions/HandoffOfferExpiry.d.ts +10 -0
  8. package/dist/agentSessions/HandoffOfferExpiry.d.ts.map +1 -0
  9. package/dist/agentSessions/HandoffOfferExpiry.js +18 -0
  10. package/dist/agentSessions/HandoffOfferExpiry.js.map +1 -0
  11. package/dist/agentSessions/ReturningVisitorRecap.js +1 -0
  12. package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
  13. package/dist/agentSessions/SessionJanitor.d.ts +34 -11
  14. package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
  15. package/dist/agentSessions/SessionJanitor.js +88 -44
  16. package/dist/agentSessions/SessionJanitor.js.map +1 -1
  17. package/dist/agentSessions/SessionManager.d.ts +29 -9
  18. package/dist/agentSessions/SessionManager.d.ts.map +1 -1
  19. package/dist/agentSessions/SessionManager.js +62 -16
  20. package/dist/agentSessions/SessionManager.js.map +1 -1
  21. package/dist/agentSessions/conversationBrowsers.d.ts +61 -0
  22. package/dist/agentSessions/conversationBrowsers.d.ts.map +1 -0
  23. package/dist/agentSessions/conversationBrowsers.js +118 -0
  24. package/dist/agentSessions/conversationBrowsers.js.map +1 -0
  25. package/dist/agentSessions/sessionDeadline.d.ts +43 -0
  26. package/dist/agentSessions/sessionDeadline.d.ts.map +1 -0
  27. package/dist/agentSessions/sessionDeadline.js +68 -0
  28. package/dist/agentSessions/sessionDeadline.js.map +1 -0
  29. package/dist/auth/APIKeyScopeAuth.d.ts.map +1 -1
  30. package/dist/auth/APIKeyScopeAuth.js +5 -4
  31. package/dist/auth/APIKeyScopeAuth.js.map +1 -1
  32. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
  33. package/dist/auth/AuthProviderCatalogRouter.js +2 -0
  34. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
  35. package/dist/auth/index.d.ts.map +1 -1
  36. package/dist/auth/index.js +51 -10
  37. package/dist/auth/index.js.map +1 -1
  38. package/dist/auth/initializeProviders.d.ts +10 -0
  39. package/dist/auth/initializeProviders.d.ts.map +1 -1
  40. package/dist/auth/initializeProviders.js +37 -1
  41. package/dist/auth/initializeProviders.js.map +1 -1
  42. package/dist/auth/localDevAuth.d.ts +79 -0
  43. package/dist/auth/localDevAuth.d.ts.map +1 -0
  44. package/dist/auth/localDevAuth.js +439 -0
  45. package/dist/auth/localDevAuth.js.map +1 -0
  46. package/dist/auth/loginEmailResolution.d.ts +41 -0
  47. package/dist/auth/loginEmailResolution.d.ts.map +1 -0
  48. package/dist/auth/loginEmailResolution.js +47 -0
  49. package/dist/auth/loginEmailResolution.js.map +1 -0
  50. package/dist/auth/magicLink/MagicLinkKeys.d.ts +51 -3
  51. package/dist/auth/magicLink/MagicLinkKeys.d.ts.map +1 -1
  52. package/dist/auth/magicLink/MagicLinkKeys.js +130 -13
  53. package/dist/auth/magicLink/MagicLinkKeys.js.map +1 -1
  54. package/dist/auth/magicLink/MagicLinkRouter.d.ts +3 -0
  55. package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
  56. package/dist/auth/magicLink/MagicLinkRouter.js +23 -5
  57. package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
  58. package/dist/auth/magicLink/MagicLinkService.d.ts +39 -5
  59. package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
  60. package/dist/auth/magicLink/MagicLinkService.js +221 -9
  61. package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
  62. package/dist/auth/magicLink/index.d.ts +1 -1
  63. package/dist/auth/magicLink/index.d.ts.map +1 -1
  64. package/dist/auth/magicLink/index.js +1 -1
  65. package/dist/auth/magicLink/index.js.map +1 -1
  66. package/dist/auth/magicLink/redeemLanding.d.ts +2 -2
  67. package/dist/auth/magicLink/redeemLanding.d.ts.map +1 -1
  68. package/dist/auth/magicLink/redeemLanding.js +7 -4
  69. package/dist/auth/magicLink/redeemLanding.js.map +1 -1
  70. package/dist/auth/magicLink/types.d.ts +39 -3
  71. package/dist/auth/magicLink/types.d.ts.map +1 -1
  72. package/dist/auth/magicLink/types.js +0 -4
  73. package/dist/auth/magicLink/types.js.map +1 -1
  74. package/dist/auth/newUsers.d.ts.map +1 -1
  75. package/dist/auth/newUsers.js +1 -0
  76. package/dist/auth/newUsers.js.map +1 -1
  77. package/dist/auth/sessionUserClone.d.ts +1 -1
  78. package/dist/auth/sessionUserClone.d.ts.map +1 -1
  79. package/dist/auth/sessionUserClone.js +3 -2
  80. package/dist/auth/sessionUserClone.js.map +1 -1
  81. package/dist/backgroundSweepConfigUnits.d.ts +231 -0
  82. package/dist/backgroundSweepConfigUnits.d.ts.map +1 -0
  83. package/dist/backgroundSweepConfigUnits.js +180 -0
  84. package/dist/backgroundSweepConfigUnits.js.map +1 -0
  85. package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.d.ts +292 -0
  86. package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.d.ts.map +1 -0
  87. package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.js +442 -0
  88. package/dist/broadcast/BaseCacheInvalidationBroadcastProvider.js.map +1 -0
  89. package/dist/broadcast/index.d.ts +6 -0
  90. package/dist/broadcast/index.d.ts.map +1 -0
  91. package/dist/broadcast/index.js +6 -0
  92. package/dist/broadcast/index.js.map +1 -0
  93. package/dist/broadcast/providers/AWSIoTCoreBroadcastProvider.d.ts +43 -0
  94. package/dist/broadcast/providers/AWSIoTCoreBroadcastProvider.d.ts.map +1 -0
  95. package/dist/broadcast/providers/AWSIoTCoreBroadcastProvider.js +144 -0
  96. package/dist/broadcast/providers/AWSIoTCoreBroadcastProvider.js.map +1 -0
  97. package/dist/broadcast/providers/AzureWebPubSubBroadcastProvider.d.ts +46 -0
  98. package/dist/broadcast/providers/AzureWebPubSubBroadcastProvider.d.ts.map +1 -0
  99. package/dist/broadcast/providers/AzureWebPubSubBroadcastProvider.js +149 -0
  100. package/dist/broadcast/providers/AzureWebPubSubBroadcastProvider.js.map +1 -0
  101. package/dist/broadcast/providers/GCPPubSubBroadcastProvider.d.ts +49 -0
  102. package/dist/broadcast/providers/GCPPubSubBroadcastProvider.d.ts.map +1 -0
  103. package/dist/broadcast/providers/GCPPubSubBroadcastProvider.js +131 -0
  104. package/dist/broadcast/providers/GCPPubSubBroadcastProvider.js.map +1 -0
  105. package/dist/broadcast/providers/SequencedRoleBucketBroadcastProvider.d.ts +24 -0
  106. package/dist/broadcast/providers/SequencedRoleBucketBroadcastProvider.d.ts.map +1 -0
  107. package/dist/broadcast/providers/SequencedRoleBucketBroadcastProvider.js +51 -0
  108. package/dist/broadcast/providers/SequencedRoleBucketBroadcastProvider.js.map +1 -0
  109. package/dist/cache.d.ts +3 -2
  110. package/dist/cache.d.ts.map +1 -1
  111. package/dist/cache.js.map +1 -1
  112. package/dist/config.d.ts +1402 -8
  113. package/dist/config.d.ts.map +1 -1
  114. package/dist/config.js +120 -0
  115. package/dist/config.js.map +1 -1
  116. package/dist/context.d.ts +5 -1
  117. package/dist/context.d.ts.map +1 -1
  118. package/dist/context.js +64 -12
  119. package/dist/context.js.map +1 -1
  120. package/dist/coreRoutes.d.ts +3 -1
  121. package/dist/coreRoutes.d.ts.map +1 -1
  122. package/dist/coreRoutes.js +20 -4
  123. package/dist/coreRoutes.js.map +1 -1
  124. package/dist/generated/graphql-schemas/__mj.d.ts +863 -14
  125. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  126. package/dist/generated/graphql-schemas/__mj.js +4167 -62
  127. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  128. package/dist/generic/CacheInvalidationResolver.d.ts +50 -30
  129. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
  130. package/dist/generic/CacheInvalidationResolver.js +154 -79
  131. package/dist/generic/CacheInvalidationResolver.js.map +1 -1
  132. package/dist/generic/OrphanedConversationDetailReconciler.d.ts +11 -0
  133. package/dist/generic/OrphanedConversationDetailReconciler.d.ts.map +1 -1
  134. package/dist/generic/OrphanedConversationDetailReconciler.js +29 -1
  135. package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -1
  136. package/dist/generic/PubSubManager.d.ts +10 -0
  137. package/dist/generic/PubSubManager.d.ts.map +1 -1
  138. package/dist/generic/PubSubManager.js +44 -1
  139. package/dist/generic/PubSubManager.js.map +1 -1
  140. package/dist/generic/PushStatusResolver.d.ts +39 -6
  141. package/dist/generic/PushStatusResolver.d.ts.map +1 -1
  142. package/dist/generic/PushStatusResolver.js +93 -11
  143. package/dist/generic/PushStatusResolver.js.map +1 -1
  144. package/dist/generic/ResolverBase.d.ts +114 -29
  145. package/dist/generic/ResolverBase.d.ts.map +1 -1
  146. package/dist/generic/ResolverBase.js +509 -220
  147. package/dist/generic/ResolverBase.js.map +1 -1
  148. package/dist/generic/RunViewResolver.d.ts +15 -3
  149. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  150. package/dist/generic/RunViewResolver.js +126 -20
  151. package/dist/generic/RunViewResolver.js.map +1 -1
  152. package/dist/generic/actionOutputFieldSecurity.d.ts +26 -0
  153. package/dist/generic/actionOutputFieldSecurity.d.ts.map +1 -0
  154. package/dist/generic/actionOutputFieldSecurity.js +47 -0
  155. package/dist/generic/actionOutputFieldSecurity.js.map +1 -0
  156. package/dist/generic/fieldSecurityTransport.d.ts +30 -0
  157. package/dist/generic/fieldSecurityTransport.d.ts.map +1 -0
  158. package/dist/generic/fieldSecurityTransport.js +30 -0
  159. package/dist/generic/fieldSecurityTransport.js.map +1 -0
  160. package/dist/index.d.ts +4 -0
  161. package/dist/index.d.ts.map +1 -1
  162. package/dist/index.js +262 -84
  163. package/dist/index.js.map +1 -1
  164. package/dist/integration/ConnectionPause.d.ts +121 -0
  165. package/dist/integration/ConnectionPause.d.ts.map +1 -0
  166. package/dist/integration/ConnectionPause.js +183 -0
  167. package/dist/integration/ConnectionPause.js.map +1 -0
  168. package/dist/integration/CustomColumnPromoter.d.ts +72 -6
  169. package/dist/integration/CustomColumnPromoter.d.ts.map +1 -1
  170. package/dist/integration/CustomColumnPromoter.js +93 -47
  171. package/dist/integration/CustomColumnPromoter.js.map +1 -1
  172. package/dist/integration/EntityMapLifecycle.d.ts +78 -4
  173. package/dist/integration/EntityMapLifecycle.d.ts.map +1 -1
  174. package/dist/integration/EntityMapLifecycle.js +199 -5
  175. package/dist/integration/EntityMapLifecycle.js.map +1 -1
  176. package/dist/integration/InactiveRowWarnings.d.ts +31 -0
  177. package/dist/integration/InactiveRowWarnings.d.ts.map +1 -1
  178. package/dist/integration/InactiveRowWarnings.js +29 -0
  179. package/dist/integration/InactiveRowWarnings.js.map +1 -1
  180. package/dist/integration/ObjectNamesByID.d.ts +28 -0
  181. package/dist/integration/ObjectNamesByID.d.ts.map +1 -0
  182. package/dist/integration/ObjectNamesByID.js +87 -0
  183. package/dist/integration/ObjectNamesByID.js.map +1 -0
  184. package/dist/integration/PostRestartIntrospect.d.ts +26 -0
  185. package/dist/integration/PostRestartIntrospect.d.ts.map +1 -0
  186. package/dist/integration/PostRestartIntrospect.js +27 -0
  187. package/dist/integration/PostRestartIntrospect.js.map +1 -0
  188. package/dist/integration/RSUPostRestartProgress.d.ts +176 -0
  189. package/dist/integration/RSUPostRestartProgress.d.ts.map +1 -0
  190. package/dist/integration/RSUPostRestartProgress.js +323 -0
  191. package/dist/integration/RSUPostRestartProgress.js.map +1 -0
  192. package/dist/integration/RSUProgressBridge.d.ts +41 -2
  193. package/dist/integration/RSUProgressBridge.d.ts.map +1 -1
  194. package/dist/integration/RSUProgressBridge.js +84 -1
  195. package/dist/integration/RSUProgressBridge.js.map +1 -1
  196. package/dist/integration/RunArtifactAuthorization.d.ts +39 -0
  197. package/dist/integration/RunArtifactAuthorization.d.ts.map +1 -0
  198. package/dist/integration/RunArtifactAuthorization.js +45 -0
  199. package/dist/integration/RunArtifactAuthorization.js.map +1 -0
  200. package/dist/integration/SchemaRefreshLaunch.d.ts +9 -0
  201. package/dist/integration/SchemaRefreshLaunch.d.ts.map +1 -1
  202. package/dist/integration/SchemaRefreshLaunch.js +3 -2
  203. package/dist/integration/SchemaRefreshLaunch.js.map +1 -1
  204. package/dist/integration/ScopedFieldsForBuild.d.ts +46 -0
  205. package/dist/integration/ScopedFieldsForBuild.d.ts.map +1 -0
  206. package/dist/integration/ScopedFieldsForBuild.js +91 -0
  207. package/dist/integration/ScopedFieldsForBuild.js.map +1 -0
  208. package/dist/integration/TargetConfigGuard.d.ts +40 -0
  209. package/dist/integration/TargetConfigGuard.d.ts.map +1 -0
  210. package/dist/integration/TargetConfigGuard.js +40 -0
  211. package/dist/integration/TargetConfigGuard.js.map +1 -0
  212. package/dist/logging/variablesLoggingMiddleware.d.ts +12 -0
  213. package/dist/logging/variablesLoggingMiddleware.d.ts.map +1 -1
  214. package/dist/logging/variablesLoggingMiddleware.js +50 -1
  215. package/dist/logging/variablesLoggingMiddleware.js.map +1 -1
  216. package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts.map +1 -1
  217. package/dist/realtimeSessions/SessionVerificationPortsBase.js +1 -0
  218. package/dist/realtimeSessions/SessionVerificationPortsBase.js.map +1 -1
  219. package/dist/realtimeSessions/ownedRealtimeSession.d.ts +8 -6
  220. package/dist/realtimeSessions/ownedRealtimeSession.d.ts.map +1 -1
  221. package/dist/realtimeSessions/ownedRealtimeSession.js +14 -6
  222. package/dist/realtimeSessions/ownedRealtimeSession.js.map +1 -1
  223. package/dist/realtimeSessions/sessionAccess.d.ts +103 -11
  224. package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -1
  225. package/dist/realtimeSessions/sessionAccess.js +147 -22
  226. package/dist/realtimeSessions/sessionAccess.js.map +1 -1
  227. package/dist/realtimeSessions/sessionConfigStamps.js +1 -1
  228. package/dist/realtimeSessions/sessionConfigStamps.js.map +1 -1
  229. package/dist/realtimeSessions/subscriptionAuthorization.d.ts.map +1 -1
  230. package/dist/realtimeSessions/subscriptionAuthorization.js +5 -2
  231. package/dist/realtimeSessions/subscriptionAuthorization.js.map +1 -1
  232. package/dist/realtimeSessions/verificationWorkflow.d.ts +2 -0
  233. package/dist/realtimeSessions/verificationWorkflow.d.ts.map +1 -1
  234. package/dist/realtimeSessions/verificationWorkflow.js +1 -1
  235. package/dist/realtimeSessions/verificationWorkflow.js.map +1 -1
  236. package/dist/realtimeWidget/WidgetRouter.d.ts.map +1 -1
  237. package/dist/realtimeWidget/WidgetRouter.js +19 -3
  238. package/dist/realtimeWidget/WidgetRouter.js.map +1 -1
  239. package/dist/realtimeWidget/WidgetSessionService.d.ts +67 -7
  240. package/dist/realtimeWidget/WidgetSessionService.d.ts.map +1 -1
  241. package/dist/realtimeWidget/WidgetSessionService.js +203 -19
  242. package/dist/realtimeWidget/WidgetSessionService.js.map +1 -1
  243. package/dist/realtimeWidget/host-identity.d.ts +1 -1
  244. package/dist/realtimeWidget/host-identity.js +1 -1
  245. package/dist/realtimeWidget/visitorIdentity.d.ts.map +1 -1
  246. package/dist/realtimeWidget/visitorIdentity.js +1 -0
  247. package/dist/realtimeWidget/visitorIdentity.js.map +1 -1
  248. package/dist/realtimeWidget/widgetCore.d.ts +20 -1
  249. package/dist/realtimeWidget/widgetCore.d.ts.map +1 -1
  250. package/dist/realtimeWidget/widgetCore.js +21 -8
  251. package/dist/realtimeWidget/widgetCore.js.map +1 -1
  252. package/dist/realtimeWidget/widgetGuestElevation.d.ts +1 -1
  253. package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
  254. package/dist/realtimeWidget/widgetGuestElevation.js +3 -1
  255. package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
  256. package/dist/requestOrigin.d.ts +22 -0
  257. package/dist/requestOrigin.d.ts.map +1 -0
  258. package/dist/requestOrigin.js +60 -0
  259. package/dist/requestOrigin.js.map +1 -0
  260. package/dist/resolvers/ActionResolver.d.ts +19 -1
  261. package/dist/resolvers/ActionResolver.d.ts.map +1 -1
  262. package/dist/resolvers/ActionResolver.js +63 -12
  263. package/dist/resolvers/ActionResolver.js.map +1 -1
  264. package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
  265. package/dist/resolvers/AdhocQueryResolver.js +1 -0
  266. package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
  267. package/dist/resolvers/AgentRunStatusPublisher.d.ts +18 -4
  268. package/dist/resolvers/AgentRunStatusPublisher.d.ts.map +1 -1
  269. package/dist/resolvers/AgentRunStatusPublisher.js +32 -8
  270. package/dist/resolvers/AgentRunStatusPublisher.js.map +1 -1
  271. package/dist/resolvers/AgentSessionResolver.d.ts +10 -4
  272. package/dist/resolvers/AgentSessionResolver.d.ts.map +1 -1
  273. package/dist/resolvers/AgentSessionResolver.js +44 -17
  274. package/dist/resolvers/AgentSessionResolver.js.map +1 -1
  275. package/dist/resolvers/AutotagPipelineResolver.d.ts.map +1 -1
  276. package/dist/resolvers/AutotagPipelineResolver.js +2 -1
  277. package/dist/resolvers/AutotagPipelineResolver.js.map +1 -1
  278. package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -1
  279. package/dist/resolvers/ConversationRunEventsResolver.js +2 -0
  280. package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -1
  281. package/dist/resolvers/EntityCommunicationsResolver.d.ts +13 -1
  282. package/dist/resolvers/EntityCommunicationsResolver.d.ts.map +1 -1
  283. package/dist/resolvers/EntityCommunicationsResolver.js +50 -14
  284. package/dist/resolvers/EntityCommunicationsResolver.js.map +1 -1
  285. package/dist/resolvers/ExecuteRemoteOperationResolver.d.ts +6 -0
  286. package/dist/resolvers/ExecuteRemoteOperationResolver.d.ts.map +1 -1
  287. package/dist/resolvers/ExecuteRemoteOperationResolver.js +30 -7
  288. package/dist/resolvers/ExecuteRemoteOperationResolver.js.map +1 -1
  289. package/dist/resolvers/FetchEntityVectorsResolver.d.ts +28 -0
  290. package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
  291. package/dist/resolvers/FetchEntityVectorsResolver.js +117 -21
  292. package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
  293. package/dist/resolvers/FileCategoryResolver.d.ts.map +1 -1
  294. package/dist/resolvers/FileCategoryResolver.js +1 -0
  295. package/dist/resolvers/FileCategoryResolver.js.map +1 -1
  296. package/dist/resolvers/FileResolver.d.ts +5 -0
  297. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  298. package/dist/resolvers/FileResolver.js +13 -4
  299. package/dist/resolvers/FileResolver.js.map +1 -1
  300. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  301. package/dist/resolvers/GetDataResolver.js +34 -13
  302. package/dist/resolvers/GetDataResolver.js.map +1 -1
  303. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +401 -11
  304. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  305. package/dist/resolvers/IntegrationDiscoveryResolver.js +2713 -1290
  306. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  307. package/dist/resolvers/MCPResolver.d.ts.map +1 -1
  308. package/dist/resolvers/MCPResolver.js +13 -2
  309. package/dist/resolvers/MCPResolver.js.map +1 -1
  310. package/dist/resolvers/MergeRecordsResolver.d.ts +8 -1
  311. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  312. package/dist/resolvers/MergeRecordsResolver.js +31 -3
  313. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  314. package/dist/resolvers/PipelineProgressResolver.d.ts +6 -0
  315. package/dist/resolvers/PipelineProgressResolver.d.ts.map +1 -1
  316. package/dist/resolvers/PipelineProgressResolver.js +5 -3
  317. package/dist/resolvers/PipelineProgressResolver.js.map +1 -1
  318. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  319. package/dist/resolvers/QueryResolver.js +20 -6
  320. package/dist/resolvers/QueryResolver.js.map +1 -1
  321. package/dist/resolvers/QuerySystemUserResolver.d.ts +38 -0
  322. package/dist/resolvers/QuerySystemUserResolver.d.ts.map +1 -1
  323. package/dist/resolvers/QuerySystemUserResolver.js +184 -88
  324. package/dist/resolvers/QuerySystemUserResolver.js.map +1 -1
  325. package/dist/resolvers/RSUResolver.d.ts.map +1 -1
  326. package/dist/resolvers/RSUResolver.js +12 -0
  327. package/dist/resolvers/RSUResolver.js.map +1 -1
  328. package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -1
  329. package/dist/resolvers/RealtimeBridgeResolver.js +1 -0
  330. package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -1
  331. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +22 -2
  332. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  333. package/dist/resolvers/RealtimeClientSessionResolver.js +118 -33
  334. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  335. package/dist/resolvers/RemoteBrowserActionResolver.d.ts +62 -10
  336. package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -1
  337. package/dist/resolvers/RemoteBrowserActionResolver.js +224 -39
  338. package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -1
  339. package/dist/resolvers/RunAIAgentResolver.d.ts +80 -16
  340. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  341. package/dist/resolvers/RunAIAgentResolver.js +388 -125
  342. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  343. package/dist/resolvers/RunAIPromptResolver.d.ts +5 -3
  344. package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
  345. package/dist/resolvers/RunAIPromptResolver.js +19 -18
  346. package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
  347. package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
  348. package/dist/resolvers/RunTemplateResolver.js +7 -5
  349. package/dist/resolvers/RunTemplateResolver.js.map +1 -1
  350. package/dist/resolvers/RunTestResolver.d.ts.map +1 -1
  351. package/dist/resolvers/RunTestResolver.js +3 -1
  352. package/dist/resolvers/RunTestResolver.js.map +1 -1
  353. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  354. package/dist/resolvers/SyncDataResolver.js +4 -0
  355. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  356. package/dist/resolvers/TestQuerySQLResolver.d.ts.map +1 -1
  357. package/dist/resolvers/TestQuerySQLResolver.js +1 -0
  358. package/dist/resolvers/TestQuerySQLResolver.js.map +1 -1
  359. package/dist/resolvers/TransactionGroupResolver.d.ts +17 -2
  360. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  361. package/dist/resolvers/TransactionGroupResolver.js +60 -15
  362. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  363. package/dist/resolvers/UserViewResolver.d.ts +1 -1
  364. package/dist/resolvers/UserViewResolver.d.ts.map +1 -1
  365. package/dist/resolvers/UserViewResolver.js +2 -1
  366. package/dist/resolvers/UserViewResolver.js.map +1 -1
  367. package/dist/resolvers/meetingRecordingRegistration.d.ts.map +1 -1
  368. package/dist/resolvers/meetingRecordingRegistration.js +2 -0
  369. package/dist/resolvers/meetingRecordingRegistration.js.map +1 -1
  370. package/dist/rest/EntityCRUDHandler.d.ts +6 -0
  371. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  372. package/dist/rest/EntityCRUDHandler.js +19 -5
  373. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  374. package/dist/rest/MediaAccessKeys.d.ts.map +1 -1
  375. package/dist/rest/MediaAccessKeys.js +6 -2
  376. package/dist/rest/MediaAccessKeys.js.map +1 -1
  377. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -1
  378. package/dist/rest/OAuthCallbackHandler.js +11 -5
  379. package/dist/rest/OAuthCallbackHandler.js.map +1 -1
  380. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  381. package/dist/rest/RESTEndpointHandler.js +8 -5
  382. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  383. package/dist/rest/RealtimeRecordingHandler.d.ts +3 -3
  384. package/dist/rest/RealtimeRecordingHandler.d.ts.map +1 -1
  385. package/dist/rest/RealtimeRecordingHandler.js +6 -8
  386. package/dist/rest/RealtimeRecordingHandler.js.map +1 -1
  387. package/dist/rest/ViewOperationsHandler.d.ts +6 -0
  388. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  389. package/dist/rest/ViewOperationsHandler.js +24 -6
  390. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  391. package/dist/rest/setupRESTEndpoints.d.ts +3 -1
  392. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  393. package/dist/rest/setupRESTEndpoints.js +11 -2
  394. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  395. package/dist/serverRoleConfigUnits.d.ts +29 -0
  396. package/dist/serverRoleConfigUnits.d.ts.map +1 -0
  397. package/dist/serverRoleConfigUnits.js +33 -0
  398. package/dist/serverRoleConfigUnits.js.map +1 -0
  399. package/dist/services/DurableEntityActionTaskSubmitter.d.ts.map +1 -1
  400. package/dist/services/DurableEntityActionTaskSubmitter.js +6 -1
  401. package/dist/services/DurableEntityActionTaskSubmitter.js.map +1 -1
  402. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  403. package/dist/services/TaskGraphActionRunner.js +2 -26
  404. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  405. package/dist/services/TaskGraphAgentRunner.d.ts +6 -0
  406. package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
  407. package/dist/services/TaskGraphAgentRunner.js +38 -0
  408. package/dist/services/TaskGraphAgentRunner.js.map +1 -1
  409. package/dist/services/TaskGraphContinuationDeliverer.d.ts +5 -0
  410. package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
  411. package/dist/services/TaskGraphContinuationDeliverer.js +43 -15
  412. package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
  413. package/dist/services/WorkQueueHostService.d.ts +2 -1
  414. package/dist/services/WorkQueueHostService.d.ts.map +1 -1
  415. package/dist/services/WorkQueueHostService.js +19 -4
  416. package/dist/services/WorkQueueHostService.js.map +1 -1
  417. package/dist/services/workQueueConfig.d.ts +2 -2
  418. package/dist/services/workQueueConfig.js +5 -5
  419. package/dist/services/workQueueConfig.js.map +1 -1
  420. package/dist/sharedCache.js +1 -1
  421. package/dist/sharedCache.js.map +1 -1
  422. package/dist/types.d.ts +40 -1
  423. package/dist/types.d.ts.map +1 -1
  424. package/dist/types.js.map +1 -1
  425. package/package.json +98 -98
  426. package/src/__tests__/APIKeyScopeAuth.test.ts +4 -8
  427. package/src/__tests__/ActionResolver.fieldSecurity.test.ts +237 -0
  428. package/src/__tests__/ActiveOperations.test.ts +68 -0
  429. package/src/__tests__/AdhocQueryResolver.dialect.test.ts +137 -0
  430. package/src/__tests__/AgentRunStatusPublisher.test.ts +49 -0
  431. package/src/__tests__/AgentSessionResolver.ownership.test.ts +150 -0
  432. package/src/__tests__/AssertTargetConfigs.test.ts +75 -0
  433. package/src/__tests__/BatchApplyParity.test.ts +109 -0
  434. package/src/__tests__/BridgeHostInstance.test.ts +42 -0
  435. package/src/__tests__/CollectInactiveRowWarnings.test.ts +115 -0
  436. package/src/__tests__/ConnectionPause.test.ts +192 -0
  437. package/src/__tests__/ConnectionPauseResolver.test.ts +166 -0
  438. package/src/__tests__/ConnectionPauseSave.test.ts +143 -0
  439. package/src/__tests__/CustomColumnPromoterCompletion.test.ts +142 -0
  440. package/src/__tests__/CustomColumnPromoterOnePass.test.ts +15 -1
  441. package/src/__tests__/DeleteConnectionRemovesPerConnectionCatalog.test.ts +51 -0
  442. package/src/__tests__/DetachedDiscoveryStart.test.ts +65 -0
  443. package/src/__tests__/DurableEntityActionTaskSubmitter.test.ts +73 -0
  444. package/src/__tests__/EntityCommunicationsResolver.actingUser.test.ts +151 -0
  445. package/src/__tests__/EntityMapLifecycle.rekey.test.ts +252 -0
  446. package/src/__tests__/EvolutionActsOnWhatItDetects.test.ts +113 -0
  447. package/src/__tests__/ExecuteRemoteOperationResolver.test.ts +213 -0
  448. package/src/__tests__/FetchEntityVectorsResolver.test.ts +206 -3
  449. package/src/__tests__/FileResolver.fieldSecurity.test.ts +82 -0
  450. package/src/__tests__/HandoffOfferExpiry.test.ts +40 -0
  451. package/src/__tests__/IntegrationRunArtifactAuthorization.test.ts +126 -0
  452. package/src/__tests__/MagicLinkKeys.test.ts +102 -0
  453. package/src/__tests__/MediaAccessKeys.test.ts +57 -10
  454. package/src/__tests__/NewArrivalsDefaultDisabled.test.ts +50 -0
  455. package/src/__tests__/ObjectNamesByID.test.ts +176 -0
  456. package/src/__tests__/PipelineProgressResolver.filter.test.ts +58 -0
  457. package/src/__tests__/PostRestartMapsInCatalogScope.test.ts +146 -0
  458. package/src/__tests__/QuerySystemUserResolver.childRows.test.ts +80 -0
  459. package/src/__tests__/QuerySystemUserResolver.collision.test.ts +200 -0
  460. package/src/__tests__/QuerySystemUserResolver.fieldSecurity.test.ts +49 -0
  461. package/src/__tests__/QuerySystemUserResolver.permissions.test.ts +132 -0
  462. package/src/__tests__/RESTEndpointHandler.test.ts +25 -0
  463. package/src/__tests__/RSUPostRestartProgress.test.ts +343 -0
  464. package/src/__tests__/RSUProgressBridge.test.ts +188 -5
  465. package/src/__tests__/RSUStartupSweepWiring.test.ts +30 -0
  466. package/src/__tests__/ReactivateRefreshMessage.test.ts +10 -3
  467. package/src/__tests__/RealtimeClientSessionResolver.configTamper.test.ts +23 -3
  468. package/src/__tests__/RealtimeClientSessionResolver.test.ts +346 -46
  469. package/src/__tests__/{RefreshAdoptsNewColumns.test.ts → RefreshReportsNewColumns.test.ts} +25 -16
  470. package/src/__tests__/RemoteBrowserActionRecovery.test.ts +287 -0
  471. package/src/__tests__/RemoteBrowserActionResolver.goalRunLink.test.ts +3 -0
  472. package/src/__tests__/RemoteBrowserActionResolver.ownership.test.ts +100 -0
  473. package/src/__tests__/RemoteBrowserAudioStream.test.ts +3 -0
  474. package/src/__tests__/RemoteBrowserSnapshot.test.ts +3 -0
  475. package/src/__tests__/ResolverBase.clientOldValues.test.ts +344 -14
  476. package/src/__tests__/ResolverBase.deleteReturnProjection.test.ts +52 -0
  477. package/src/__tests__/ResolverBase.encryptedApiZeroReencrypt.test.ts +307 -0
  478. package/src/__tests__/ResolverBase.entityMessageRelay.test.ts +227 -0
  479. package/src/__tests__/ResolverBase.includeBinaryFields.test.ts +83 -1
  480. package/src/__tests__/ResolverBase.publishStatusUpdate.test.ts +68 -0
  481. package/src/__tests__/ResolverBase.userViewCacheAndDedup.test.ts +130 -0
  482. package/src/__tests__/RunAIAgentResolver.branch.test.ts +72 -13
  483. package/src/__tests__/RunAIAgentResolver.consultPredecessor.test.ts +289 -0
  484. package/src/__tests__/RunAIAgentResolver.conversationWriter.test.ts +210 -0
  485. package/src/__tests__/RunAIAgentResolver.fireAndForgetCompletion.test.ts +209 -0
  486. package/src/__tests__/RunAIAgentResolver.handoff.test.ts +649 -0
  487. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +19 -27
  488. package/src/__tests__/RunAIAgentResolver.runDataGuard.test.ts +10 -2
  489. package/src/__tests__/RunAIAgentResolver.serverReply.test.ts +358 -0
  490. package/src/__tests__/RunAIAgentResolver.stoppedPredecessor.test.ts +91 -13
  491. package/src/__tests__/RunTemplateResolver.test.ts +35 -2
  492. package/src/__tests__/RunViewResolver.cacheCheckForwarding.test.ts +11 -0
  493. package/src/__tests__/SchemaEvolutionCustomColumns.test.ts +119 -0
  494. package/src/__tests__/SchemaRefreshLaunch.test.ts +24 -2
  495. package/src/__tests__/ScopedFieldsForBuild.test.ts +192 -0
  496. package/src/__tests__/SessionJanitor.test.ts +195 -4
  497. package/src/__tests__/SessionManager.test.ts +164 -0
  498. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +2 -2
  499. package/src/__tests__/TaskGraphAgentRunner.test.ts +272 -16
  500. package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +114 -3
  501. package/src/__tests__/TransactionGroupResolver.fieldSecurity.test.ts +199 -0
  502. package/src/__tests__/UserViewResolver.updateWhereClause.test.ts +15 -0
  503. package/src/__tests__/ViewOperationsHandler.test.ts +9 -7
  504. package/src/__tests__/WidgetSessionService.test.ts +583 -4
  505. package/src/__tests__/WorkQueueHostService.test.ts +25 -7
  506. package/src/__tests__/apiRootBoot.test.ts +1 -1
  507. package/src/__tests__/backgroundSweepConfigUnits.test.ts +153 -0
  508. package/src/__tests__/buildMagicLinkSessionUser.test.ts +96 -0
  509. package/src/__tests__/cacheBroadcastProviders.test.ts +403 -0
  510. package/src/__tests__/cacheInvalidationRecordData.test.ts +45 -0
  511. package/src/__tests__/contextRequestOrigin.test.ts +105 -0
  512. package/src/__tests__/conversationBrowsers.test.ts +62 -0
  513. package/src/__tests__/fieldSecurityFixtures.ts +91 -0
  514. package/src/__tests__/globalCors.test.ts +3 -3
  515. package/src/__tests__/localDevAuth.test.ts +196 -0
  516. package/src/__tests__/magicLinkExtensionCapabilities.test.ts +413 -0
  517. package/src/__tests__/orphanedConversationDetailReconciler.start.test.ts +82 -0
  518. package/src/__tests__/orphanedConversationDetailReconciler.test.ts +10 -0
  519. package/src/__tests__/ownedRealtimeSession.test.ts +14 -0
  520. package/src/__tests__/pushStatusResolver.filter.test.ts +57 -1
  521. package/src/__tests__/realtimeRecordingHandler.test.ts +24 -2
  522. package/src/__tests__/realtimeSessions/RealtimeSessionEventsResolver.test.ts +29 -1
  523. package/src/__tests__/realtimeSessions/ownedRealtimeSession.anonymous.test.ts +31 -0
  524. package/src/__tests__/realtimeSessions/ownedRealtimeSession.namedScoped.test.ts +37 -0
  525. package/src/__tests__/realtimeSessions/sessionAccess.test.ts +224 -7
  526. package/src/__tests__/realtimeSessions/sessionConfigStamps.test.ts +1 -1
  527. package/src/__tests__/realtimeSessions/verificationWorkflow.test.ts +25 -4
  528. package/src/__tests__/requestOrigin.test.ts +104 -0
  529. package/src/__tests__/resolverBase.cloudEventChangedFields.test.ts +157 -0
  530. package/src/__tests__/resolverBase.fieldSecurityTransport.test.ts +222 -0
  531. package/src/__tests__/resolverBase.fls.test.ts +146 -97
  532. package/src/__tests__/restTransport.fieldSecurity.test.ts +148 -0
  533. package/src/__tests__/runParamsTimeZone.test.ts +179 -0
  534. package/src/__tests__/runStreams.fieldSecurity.test.ts +100 -0
  535. package/src/__tests__/runViewProperties.test.ts +114 -0
  536. package/src/__tests__/scalabilityBenchmarks.test.ts +765 -0
  537. package/src/__tests__/scalabilityDatabaseIntegration.test.ts +207 -0
  538. package/src/__tests__/securityHardeningPr6034.test.ts +120 -0
  539. package/src/__tests__/sessionDeadline.test.ts +51 -0
  540. package/src/__tests__/sessionUserClone.test.ts +5 -1
  541. package/src/__tests__/sharedCache.test.ts +11 -0
  542. package/src/__tests__/startupSweepOrder.test.ts +40 -0
  543. package/src/__tests__/unifiedAuth.test.ts +101 -1
  544. package/src/__tests__/widgetGuestElevation.test.ts +2 -0
  545. package/src/agentSessions/BridgeHostInstance.ts +20 -5
  546. package/src/agentSessions/HandoffOfferExpiry.ts +18 -0
  547. package/src/agentSessions/ReturningVisitorRecap.ts +1 -0
  548. package/src/agentSessions/SessionJanitor.ts +95 -45
  549. package/src/agentSessions/SessionManager.ts +73 -20
  550. package/src/agentSessions/conversationBrowsers.ts +143 -0
  551. package/src/agentSessions/sessionDeadline.ts +81 -0
  552. package/src/auth/APIKeyScopeAuth.ts +5 -4
  553. package/src/auth/AuthProviderCatalogRouter.ts +3 -0
  554. package/src/auth/__tests__/loginEmailResolution.test.ts +67 -0
  555. package/src/auth/index.ts +56 -12
  556. package/src/auth/initializeProviders.ts +43 -1
  557. package/src/auth/localDevAuth.ts +528 -0
  558. package/src/auth/loginEmailResolution.ts +67 -0
  559. package/src/auth/magicLink/MagicLinkKeys.ts +147 -15
  560. package/src/auth/magicLink/MagicLinkRouter.ts +33 -6
  561. package/src/auth/magicLink/MagicLinkService.ts +250 -10
  562. package/src/auth/magicLink/index.ts +1 -1
  563. package/src/auth/magicLink/redeemLanding.ts +7 -4
  564. package/src/auth/magicLink/types.ts +38 -3
  565. package/src/auth/newUsers.ts +1 -0
  566. package/src/auth/sessionUserClone.ts +3 -2
  567. package/src/backgroundSweepConfigUnits.ts +213 -0
  568. package/src/broadcast/BaseCacheInvalidationBroadcastProvider.ts +674 -0
  569. package/src/broadcast/index.ts +5 -0
  570. package/src/broadcast/providers/AWSIoTCoreBroadcastProvider.ts +180 -0
  571. package/src/broadcast/providers/AzureWebPubSubBroadcastProvider.ts +182 -0
  572. package/src/broadcast/providers/GCPPubSubBroadcastProvider.ts +169 -0
  573. package/src/broadcast/providers/SequencedRoleBucketBroadcastProvider.ts +57 -0
  574. package/src/cache.ts +2 -1
  575. package/src/config.ts +138 -0
  576. package/src/context.ts +71 -14
  577. package/src/coreRoutes.ts +29 -7
  578. package/src/generated/graphql-schemas/__mj.ts +4145 -1193
  579. package/src/generic/CacheInvalidationResolver.ts +135 -78
  580. package/src/generic/OrphanedConversationDetailReconciler.ts +36 -3
  581. package/src/generic/PubSubManager.ts +54 -1
  582. package/src/generic/PushStatusResolver.ts +108 -11
  583. package/src/generic/ResolverBase.ts +635 -234
  584. package/src/generic/RunViewResolver.ts +176 -64
  585. package/src/generic/actionOutputFieldSecurity.ts +75 -0
  586. package/src/generic/fieldSecurityTransport.ts +62 -0
  587. package/src/index.ts +310 -85
  588. package/src/integration/ConnectionPause.ts +222 -0
  589. package/src/integration/CustomColumnPromoter.ts +129 -54
  590. package/src/integration/EntityMapLifecycle.ts +229 -6
  591. package/src/integration/InactiveRowWarnings.ts +50 -0
  592. package/src/integration/ObjectNamesByID.ts +97 -0
  593. package/src/integration/PostRestartIntrospect.ts +49 -0
  594. package/src/integration/RSUPostRestartProgress.ts +359 -0
  595. package/src/integration/RSUProgressBridge.ts +85 -2
  596. package/src/integration/RunArtifactAuthorization.ts +65 -0
  597. package/src/integration/SchemaRefreshLaunch.ts +12 -2
  598. package/src/integration/ScopedFieldsForBuild.ts +113 -0
  599. package/src/integration/TargetConfigGuard.ts +71 -0
  600. package/src/logging/variablesLoggingMiddleware.ts +59 -3
  601. package/src/realtimeSessions/README.md +7 -3
  602. package/src/realtimeSessions/SessionVerificationPortsBase.ts +1 -0
  603. package/src/realtimeSessions/ownedRealtimeSession.ts +16 -6
  604. package/src/realtimeSessions/sessionAccess.ts +211 -25
  605. package/src/realtimeSessions/sessionConfigStamps.ts +1 -1
  606. package/src/realtimeSessions/subscriptionAuthorization.ts +4 -2
  607. package/src/realtimeSessions/verificationWorkflow.ts +3 -1
  608. package/src/realtimeWidget/WidgetRouter.ts +22 -4
  609. package/src/realtimeWidget/WidgetSessionService.ts +254 -17
  610. package/src/realtimeWidget/host-identity.ts +1 -1
  611. package/src/realtimeWidget/visitorIdentity.ts +1 -0
  612. package/src/realtimeWidget/widgetCore.ts +34 -9
  613. package/src/realtimeWidget/widgetGuestElevation.ts +3 -1
  614. package/src/requestOrigin.ts +64 -0
  615. package/src/resolvers/ActionResolver.ts +78 -15
  616. package/src/resolvers/AdhocQueryResolver.ts +1 -0
  617. package/src/resolvers/AgentRunStatusPublisher.ts +36 -8
  618. package/src/resolvers/AgentSessionResolver.ts +50 -18
  619. package/src/resolvers/AutotagPipelineResolver.ts +2 -1
  620. package/src/resolvers/ConversationRunEventsResolver.ts +2 -0
  621. package/src/resolvers/EntityCommunicationsResolver.ts +56 -15
  622. package/src/resolvers/ExecuteRemoteOperationResolver.ts +41 -9
  623. package/src/resolvers/FetchEntityVectorsResolver.ts +132 -21
  624. package/src/resolvers/FileCategoryResolver.ts +1 -0
  625. package/src/resolvers/FileResolver.ts +14 -4
  626. package/src/resolvers/GetDataResolver.ts +35 -13
  627. package/src/resolvers/IntegrationDiscoveryResolver.ts +1570 -209
  628. package/src/resolvers/MCPResolver.ts +15 -2
  629. package/src/resolvers/MergeRecordsResolver.ts +23 -2
  630. package/src/resolvers/PipelineProgressResolver.ts +12 -3
  631. package/src/resolvers/QueryResolver.ts +20 -6
  632. package/src/resolvers/QuerySystemUserResolver.ts +207 -99
  633. package/src/resolvers/RSUResolver.ts +12 -0
  634. package/src/resolvers/RealtimeBridgeResolver.ts +1 -0
  635. package/src/resolvers/RealtimeClientSessionResolver.ts +144 -40
  636. package/src/resolvers/RemoteBrowserActionResolver.ts +252 -37
  637. package/src/resolvers/RunAIAgentResolver.ts +518 -163
  638. package/src/resolvers/RunAIPromptResolver.ts +18 -18
  639. package/src/resolvers/RunTemplateResolver.ts +9 -5
  640. package/src/resolvers/RunTestResolver.ts +3 -1
  641. package/src/resolvers/SyncDataResolver.ts +4 -0
  642. package/src/resolvers/TestQuerySQLResolver.ts +1 -0
  643. package/src/resolvers/TransactionGroupResolver.ts +66 -15
  644. package/src/resolvers/UserViewResolver.ts +2 -1
  645. package/src/resolvers/__tests__/GetDataResolver.tokens.test.ts +52 -0
  646. package/src/resolvers/__tests__/MergeRecordsResolver.test.ts +43 -0
  647. package/src/resolvers/meetingRecordingRegistration.ts +2 -0
  648. package/src/rest/EntityCRUDHandler.ts +22 -5
  649. package/src/rest/MediaAccessKeys.ts +6 -2
  650. package/src/rest/OAuthCallbackHandler.ts +13 -5
  651. package/src/rest/RESTEndpointHandler.ts +8 -5
  652. package/src/rest/RealtimeRecordingHandler.ts +9 -10
  653. package/src/rest/ViewOperationsHandler.ts +26 -7
  654. package/src/rest/setupRESTEndpoints.ts +11 -2
  655. package/src/serverRoleConfigUnits.ts +48 -0
  656. package/src/services/DurableEntityActionTaskSubmitter.ts +10 -2
  657. package/src/services/TaskGraphActionRunner.ts +2 -23
  658. package/src/services/TaskGraphAgentRunner.ts +43 -0
  659. package/src/services/TaskGraphContinuationDeliverer.ts +53 -20
  660. package/src/services/WorkQueueHostService.ts +26 -4
  661. package/src/services/workQueueConfig.ts +5 -5
  662. package/src/sharedCache.ts +1 -1
  663. package/src/types.ts +41 -1
  664. package/src/services/TaskOrchestration-Integration.md +0 -188
@@ -30,7 +30,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
30
30
  */
31
31
  import { Resolver, Mutation, Query, Arg, Ctx, Float, Int, ObjectType, Field, PubSub, PubSubEngine } from 'type-graphql';
32
32
  import { LogError } from '@memberjunction/core';
33
- import { UUIDsEqual } from '@memberjunction/global';
33
+ import { NormalizeUUID } from '@memberjunction/global';
34
34
  import { NormalizeInstanceKey, RemoteBrowserEngine } from '@memberjunction/remote-browser-server';
35
35
  import { BeginBrowserGoalStep, FinalizeBrowserGoalStep, ExtractCoAgentRunID } from '../agentSessions/remoteBrowserGoalEngine.js';
36
36
  import { RemoteBrowserGoalRegistry } from '../agentSessions/remoteBrowserGoalRegistry.js';
@@ -39,11 +39,15 @@ import { randomUUID } from 'node:crypto';
39
39
  import { RemoteBrowserCapabilityNotSupportedError, } from '@memberjunction/remote-browser-base';
40
40
  import { ResolverBase } from '../generic/ResolverBase.js';
41
41
  import { GetReadWriteProvider } from '../util.js';
42
+ import { LoadOwnedRealtimeSession, RealtimeSessionNotFoundError, RealtimeSessionOwnershipError, } from '../realtimeSessions/ownedRealtimeSession.js';
43
+ import { AuthorizeSessionAccess, ResolveSessionScopeIdentity } from '../realtimeSessions/sessionAccess.js';
44
+ import { ConversationBrowserLedger, RemoteBrowserRefusedError } from '../agentSessions/conversationBrowsers.js';
45
+ import { configInfo } from '../config.js';
42
46
  import { AIEngine } from '@memberjunction/aiengine';
43
47
  import { AIPromptRunner } from '@memberjunction/ai-prompts';
44
48
  import { AIPromptParams } from '@memberjunction/ai-core-plus';
45
- /** Entity name — centralised so the `MJ:`-prefix convention is applied in exactly one place. */
46
- const SESSION_ENTITY = 'MJ: AI Agent Sessions';
49
+ /** Entity name for turn-based text conversations that scope a live Remote Browser session. */
50
+ const CONVERSATION_ENTITY = 'MJ: Conversations';
47
51
  /** Entity name for the agent whose `TypeConfiguration` carries the remote-browser provider preference. */
48
52
  const AGENT_ENTITY = 'MJ: AI Agents';
49
53
  /**
@@ -55,7 +59,7 @@ const AGENT_ENTITY = 'MJ: AI Agents';
55
59
  const VISUAL_INTERPRETER_PROMPT_NAME = 'Remote Browser Visual Interpreter';
56
60
  /**
57
61
  * Result of {@link RemoteBrowserActionResolver.ExecuteRemoteBrowserAction} — the outcome of one browser
58
- * action plus the resulting URL the client narrates / displays.
62
+ * action plus the resulting URL and optional structured DOM observation / filled-field list.
59
63
  */
60
64
  let RemoteBrowserActionResult = class RemoteBrowserActionResult {
61
65
  };
@@ -71,6 +75,14 @@ __decorate([
71
75
  Field(() => String, { nullable: true }),
72
76
  __metadata("design:type", String)
73
77
  ], RemoteBrowserActionResult.prototype, "Detail", void 0);
78
+ __decorate([
79
+ Field(() => String, { nullable: true }),
80
+ __metadata("design:type", String)
81
+ ], RemoteBrowserActionResult.prototype, "ObservationJson", void 0);
82
+ __decorate([
83
+ Field(() => String, { nullable: true }),
84
+ __metadata("design:type", String)
85
+ ], RemoteBrowserActionResult.prototype, "FilledJson", void 0);
74
86
  RemoteBrowserActionResult = __decorate([
75
87
  ObjectType()
76
88
  ], RemoteBrowserActionResult);
@@ -250,7 +262,7 @@ export { RemoteBrowserInterpretation };
250
262
  const MAX_STREAM_ENTRY_AGE_MS = 4 * 60 * 60 * 1000; // 4 hours — generous vs. SessionJanitor's 15-minute idle threshold
251
263
  let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends ResolverBase {
252
264
  constructor() {
253
- super(...arguments);
265
+ super();
254
266
  /**
255
267
  * Surfaces whose live CDP screencast this resolver has already started, keyed by
256
268
  * {@link RemoteBrowserActionResolver.streamKey} (agent session **plus** instance) so a re-issued
@@ -274,6 +286,15 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
274
286
  * {@link RemoteBrowserActionResolver.startedScreencasts} for why the value is a timestamp.
275
287
  */
276
288
  this.startedAudioStreams = new Map();
289
+ /**
290
+ * The push session each surface's frames and audio go to, by stream key. A reloaded tab starts again
291
+ * from a new push session while the browser keeps streaming; it takes the frames over here instead of
292
+ * being told "already streaming" while they still go to the old session. An entry whose streams have
293
+ * stopped is dropped by {@link sweepStreamEntries}.
294
+ */
295
+ this.streamTargets = new Map();
296
+ // The idle reaper ends a conversation browser the way EndRemoteBrowserSession does.
297
+ ConversationBrowserLedger.Instance.EndBrowser = (conversationID) => this.endBrowser(conversationID);
277
298
  }
278
299
  /**
279
300
  * Drops any {@link startedScreencasts} / {@link startedAudioStreams} entry older than
@@ -293,6 +314,12 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
293
314
  this.startedAudioStreams.delete(key);
294
315
  }
295
316
  }
317
+ // A target outlives its streams only until here (a stop, a failed start, a voice session's end).
318
+ for (const key of this.streamTargets.keys()) {
319
+ if (!this.startedScreencasts.has(key) && !this.startedAudioStreams.has(key)) {
320
+ this.streamTargets.delete(key);
321
+ }
322
+ }
296
323
  }
297
324
  /**
298
325
  * Execute ONE browser action relayed from the client-direct realtime session, returning the outcome +
@@ -310,18 +337,24 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
310
337
  * @param kind The action kind (`'navigate' | 'click' | 'type' | 'key' | 'scroll' | 'back' | 'forward' | 'wait'`).
311
338
  * @returns The action result (success + resulting URL + detail).
312
339
  */
313
- async ExecuteRemoteBrowserAction(agentSessionID, kind, { userPayload, providers }, url, selector, x, y, text, key, deltaX, deltaY, ms, instanceKey) {
340
+ async ExecuteRemoteBrowserAction(agentSessionID, kind, { userPayload, providers }, url, selector, x, y, text, key, deltaX, deltaY, ms, instanceKey, ref, valuesJson) {
314
341
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
315
- const session = await this.loadOwnedSession(agentSessionID, contextUser, provider);
316
- const action = this.buildAction({ kind, url, selector, x, y, text, key, deltaX, deltaY, ms });
342
+ const session = await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
343
+ const action = this.buildAction({ kind, url, selector, ref, x, y, text, key, deltaX, deltaY, ms, valuesJson });
317
344
  if (!action) {
318
345
  return { Success: false, Detail: `Unknown or incomplete remote-browser action '${kind}'.` };
319
346
  }
320
347
  const providerName = await this.resolveProviderName(session, contextUser, provider);
321
348
  try {
322
- const liveSession = await RemoteBrowserEngine.Instance.StartSessionForAgentSession(agentSessionID, contextUser, providerName, instanceKey);
349
+ const liveSession = await this.startBrowser(agentSessionID, session, contextUser, providerName, instanceKey);
323
350
  const result = await liveSession.ExecuteAction(action);
324
- return { Success: result.Success, CurrentUrl: result.CurrentUrl, Detail: result.Detail };
351
+ return {
352
+ Success: result.Success,
353
+ CurrentUrl: result.CurrentUrl,
354
+ Detail: result.Detail,
355
+ ...(result.Observation ? { ObservationJson: JSON.stringify(result.Observation) } : {}),
356
+ ...(result.Filled ? { FilledJson: JSON.stringify(result.Filled) } : {}),
357
+ };
325
358
  }
326
359
  catch (err) {
327
360
  // A dead handle is not a failure to report, it is a mapping to delete (#3598) — and this is the
@@ -347,6 +380,8 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
347
380
  Detail: retried.Success
348
381
  ? retried.Detail
349
382
  : `The browser had closed and was replaced (it is now on a blank page). ${retried.Detail ?? ''}`.trim(),
383
+ ...(retried.Observation ? { ObservationJson: JSON.stringify(retried.Observation) } : {}),
384
+ ...(retried.Filled ? { FilledJson: JSON.stringify(retried.Filled) } : {}),
350
385
  };
351
386
  }
352
387
  catch (retryError) {
@@ -376,7 +411,11 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
376
411
  */
377
412
  async ExecuteRemoteBrowserGoal(agentSessionID, goal, { userPayload, providers }, startUrl, maxSteps, preferredStrategy, instanceKey) {
378
413
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
379
- const session = await this.loadOwnedSession(agentSessionID, contextUser, provider);
414
+ const session = await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
415
+ if (session.IsConversation) {
416
+ // A goal loop clicks and navigates on its own, past the click guard the browser_* tools go through.
417
+ return { Success: false, Status: 'Error', Detail: 'Goal runs are not available in a text conversation; use the browser_* tools.' };
418
+ }
380
419
  const providerName = await this.resolveProviderName(session, contextUser, provider);
381
420
  // Observability: nest this goal's many prompt runs under ONE "Browser goal" step on the realtime
382
421
  // co-agent run (when the session has one). Best-effort — a null step just means the goal runs unlinked.
@@ -444,7 +483,7 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
444
483
  */
445
484
  async RemoteBrowserSnapshot(agentSessionID, { userPayload, providers }, instanceKey) {
446
485
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
447
- await this.loadOwnedSession(agentSessionID, contextUser, provider);
486
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
448
487
  const liveSession = RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey);
449
488
  if (!liveSession) {
450
489
  return {};
@@ -517,7 +556,7 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
517
556
  */
518
557
  async InterpretRemoteBrowserPage(agentSessionID, { userPayload, providers }, query, instanceKey) {
519
558
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
520
- await this.loadOwnedSession(agentSessionID, contextUser, provider);
559
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
521
560
  const liveSession = RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey);
522
561
  if (!liveSession) {
523
562
  return { Description: undefined, Elements: [], Detail: 'no live browser' };
@@ -551,18 +590,19 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
551
590
  */
552
591
  async StartRemoteBrowserScreencast(agentSessionID, { userPayload, providers }, pubSub, instanceKey) {
553
592
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
554
- const session = await this.loadOwnedSession(agentSessionID, contextUser, provider);
593
+ const session = await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
555
594
  // Idempotent PER SURFACE: a re-bind must not stack a second screencast on the one live browser,
556
595
  // but a SECOND surface binding for the first time is not a re-bind (#3531).
557
596
  this.sweepStreamEntries();
558
597
  const streamKey = this.streamKey(agentSessionID, instanceKey);
598
+ this.streamTargets.set(streamKey, userPayload);
559
599
  if (this.startedScreencasts.has(streamKey)) {
560
600
  return { Streaming: true };
561
601
  }
562
602
  const providerName = await this.resolveProviderName(session, contextUser, provider);
563
603
  try {
564
- const liveSession = await RemoteBrowserEngine.Instance.StartSessionForAgentSession(agentSessionID, contextUser, providerName, instanceKey);
565
- await liveSession.StartScreencast((frame) => this.publishFrame(pubSub, userPayload, agentSessionID, instanceKey, frame, liveSession.GetCurrentUrl()));
604
+ const liveSession = await this.startBrowser(agentSessionID, session, contextUser, providerName, instanceKey);
605
+ await liveSession.StartScreencast((frame) => this.publishFrame(pubSub, this.streamTargets.get(streamKey) ?? userPayload, agentSessionID, instanceKey, frame, liveSession.GetCurrentUrl()));
566
606
  this.startedScreencasts.set(streamKey, Date.now());
567
607
  return { Streaming: true };
568
608
  }
@@ -571,6 +611,9 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
571
611
  // Backend can't stream — the client keeps polling. Not an error condition.
572
612
  return { Streaming: false };
573
613
  }
614
+ if (err instanceof RemoteBrowserRefusedError) {
615
+ throw err; // the client must stop and say so, not poll for a browser that will never start
616
+ }
574
617
  const message = err instanceof Error ? err.message : String(err);
575
618
  LogError(`StartRemoteBrowserScreencast failed (provider='${providerName}'): ${message}`);
576
619
  return { Streaming: false };
@@ -586,7 +629,7 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
586
629
  */
587
630
  async StopRemoteBrowserScreencast(agentSessionID, { userPayload, providers }, instanceKey) {
588
631
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
589
- await this.loadOwnedSession(agentSessionID, contextUser, provider);
632
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
590
633
  this.startedScreencasts.delete(this.streamKey(agentSessionID, instanceKey));
591
634
  const liveSession = RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey);
592
635
  if (liveSession) {
@@ -601,6 +644,33 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
601
644
  }
602
645
  return true;
603
646
  }
647
+ /**
648
+ * Ends the browser the caller's own session or conversation started, and forgets its stream
649
+ * bookkeeping. Ownership-gated. Idempotent: ending a scope that holds no browser resolves `false`.
650
+ * A text chat calls this when its browser drawer closes, the conversation changes, or the chat is
651
+ * destroyed, so a closed drawer never leaves a Chromium process (or a billed hosted browser) running.
652
+ *
653
+ * @param agentSessionID The `AIAgentSession` id or `Conversation` id.
654
+ * @returns `true` when a live browser was ended.
655
+ */
656
+ async EndRemoteBrowserSession(agentSessionID, { userPayload, providers }, instanceKey) {
657
+ const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
658
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
659
+ return this.endBrowser(agentSessionID, instanceKey);
660
+ }
661
+ /**
662
+ * Ends a scope's browser and everything kept about it: the ledger slot (released first, so an action
663
+ * landing during teardown is counted again), the stream entries (so the next open streams the next
664
+ * browser) and the browser itself. The idle reaper ends conversation browsers through here too.
665
+ */
666
+ async endBrowser(agentSessionID, instanceKey) {
667
+ ConversationBrowserLedger.Instance.Release(agentSessionID);
668
+ const streamKey = this.streamKey(agentSessionID, instanceKey);
669
+ this.startedScreencasts.delete(streamKey);
670
+ this.startedAudioStreams.delete(streamKey);
671
+ this.streamTargets.delete(streamKey);
672
+ return RemoteBrowserEngine.Instance.EndSessionForAgentSession(agentSessionID, instanceKey);
673
+ }
604
674
  /**
605
675
  * Starts streaming the session browser's TAB AUDIO and PUSHES each encoded chunk to the calling user's
606
676
  * push-status topic — so a co-agent demoing a video/audio site is HEARD, not just seen. Ownership-gated.
@@ -616,17 +686,18 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
616
686
  */
617
687
  async StartRemoteBrowserAudioStream(agentSessionID, { userPayload, providers }, pubSub, instanceKey) {
618
688
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
619
- const session = await this.loadOwnedSession(agentSessionID, contextUser, provider);
689
+ const session = await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
620
690
  // Idempotent PER SURFACE — same reasoning as the screencast map (#3531).
621
691
  this.sweepStreamEntries();
622
692
  const streamKey = this.streamKey(agentSessionID, instanceKey);
693
+ this.streamTargets.set(streamKey, userPayload);
623
694
  if (this.startedAudioStreams.has(streamKey)) {
624
695
  return { Streaming: true };
625
696
  }
626
697
  const providerName = await this.resolveProviderName(session, contextUser, provider);
627
698
  try {
628
- const liveSession = await RemoteBrowserEngine.Instance.StartSessionForAgentSession(agentSessionID, contextUser, providerName, instanceKey);
629
- await liveSession.StartAudioStream((chunk) => this.publishAudioChunk(pubSub, userPayload, agentSessionID, instanceKey, chunk));
699
+ const liveSession = await this.startBrowser(agentSessionID, session, contextUser, providerName, instanceKey);
700
+ await liveSession.StartAudioStream((chunk) => this.publishAudioChunk(pubSub, this.streamTargets.get(streamKey) ?? userPayload, agentSessionID, instanceKey, chunk));
630
701
  this.startedAudioStreams.set(streamKey, Date.now());
631
702
  return { Streaming: true };
632
703
  }
@@ -635,6 +706,9 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
635
706
  // Backend can't capture audio — the client plays no audio. Not an error condition.
636
707
  return { Streaming: false };
637
708
  }
709
+ if (err instanceof RemoteBrowserRefusedError) {
710
+ throw err;
711
+ }
638
712
  const message = err instanceof Error ? err.message : String(err);
639
713
  LogError(`StartRemoteBrowserAudioStream failed (provider='${providerName}'): ${message}`);
640
714
  return { Streaming: false };
@@ -650,7 +724,7 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
650
724
  */
651
725
  async StopRemoteBrowserAudioStream(agentSessionID, { userPayload, providers }, instanceKey) {
652
726
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
653
- await this.loadOwnedSession(agentSessionID, contextUser, provider);
727
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
654
728
  this.startedAudioStreams.delete(this.streamKey(agentSessionID, instanceKey));
655
729
  const liveSession = RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey);
656
730
  if (liveSession) {
@@ -691,7 +765,7 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
691
765
  */
692
766
  async RelayRemoteBrowserHumanInput(agentSessionID, kind, { userPayload, providers }, x, y, button, key, text, deltaX, deltaY, modifiers, instanceKey) {
693
767
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
694
- await this.loadOwnedSession(agentSessionID, contextUser, provider);
768
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
695
769
  const liveSession = RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey);
696
770
  if (!liveSession) {
697
771
  return false;
@@ -730,7 +804,7 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
730
804
  */
731
805
  async GetRemoteBrowserSelection(agentSessionID, { userPayload, providers }, instanceKey) {
732
806
  const { contextUser, provider } = this.requireUserAndProvider(userPayload, providers);
733
- await this.loadOwnedSession(agentSessionID, contextUser, provider);
807
+ await this.loadOwnedSession(agentSessionID, contextUser, provider, instanceKey);
734
808
  const liveSession = RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey);
735
809
  if (!liveSession) {
736
810
  return { Text: '' };
@@ -939,21 +1013,83 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
939
1013
  return { contextUser, provider: GetReadWriteProvider(providers) };
940
1014
  }
941
1015
  /**
942
- * Loads the agent session and enforces inbound ownership: the session's `UserID` must equal the
943
- * caller's. Throws when the session is missing or owned by another user.
1016
+ * Loads the owning scope and enforces inbound ownership: an `MJ: AI Agent Sessions` row (a realtime
1017
+ * call, via `LoadOwnedRealtimeSession`) or, failing that, an `MJ: Conversations` row (a text chat's
1018
+ * browser), both under `AuthorizeSessionAccess`. Throws when neither exists or the caller may not use it.
944
1019
  *
945
- * @param agentSessionID The `AIAgentSession` id.
946
- * @returns The loaded, owned session entity.
1020
+ * @param agentSessionID The `AIAgentSession` id or `Conversation` id.
1021
+ * @returns The owned scope.
1022
+ */
1023
+ async loadOwnedSession(agentSessionID, contextUser, provider, instanceKey) {
1024
+ try {
1025
+ return await LoadOwnedRealtimeSession(agentSessionID, contextUser, provider);
1026
+ }
1027
+ catch (err) {
1028
+ if (err instanceof RealtimeSessionOwnershipError) {
1029
+ throw new RemoteBrowserRefusedError(`Not authorized: remote-browser session ${agentSessionID} is not owned by you.`);
1030
+ }
1031
+ if (!(err instanceof RealtimeSessionNotFoundError)) {
1032
+ throw err;
1033
+ }
1034
+ }
1035
+ // Not a realtime session: a text chat scopes its browser to a conversation, which this server must opt
1036
+ // into (each browser is a server Chromium or a billed hosted session), under the same access rule
1037
+ // (owner, and for an anonymous widget guest its scope id), loaded as the caller so its RLS applies too.
1038
+ const settings = this.ConversationBrowserSettings();
1039
+ if (!settings.enabled) {
1040
+ throw new RemoteBrowserRefusedError(`Remote-browser session ${agentSessionID} not found. Conversation browsers are not enabled on this server (realtime.conversationBrowser.enabled).`);
1041
+ }
1042
+ if (contextUser.IsMagicLinkAnonymous && !settings.allowAnonymous) {
1043
+ throw new RemoteBrowserRefusedError(`Not authorized: anonymous users cannot open a conversation browser on this server.`);
1044
+ }
1045
+ // One browser per conversation: an instance key would key a second one past the cap, the network
1046
+ // policy and the reaper (the client never sends one).
1047
+ if (instanceKey?.trim()) {
1048
+ throw new RemoteBrowserRefusedError('A conversation browser has no instances; instanceKey is not accepted.');
1049
+ }
1050
+ const conversation = await provider.GetEntityObject(CONVERSATION_ENTITY, contextUser);
1051
+ if (!(await conversation.Load(agentSessionID))) {
1052
+ throw new RemoteBrowserRefusedError(`Remote-browser session ${agentSessionID} not found.`);
1053
+ }
1054
+ const access = AuthorizeSessionAccess({ SessionUserID: conversation.UserID, ConversationExternalID: conversation.ExternalID, ConversationReadable: true }, contextUser);
1055
+ if (!access.Allowed) {
1056
+ throw new RemoteBrowserRefusedError(`Not authorized: remote-browser session ${agentSessionID} is not owned by you.`);
1057
+ }
1058
+ // Each use puts off the browser's idle end.
1059
+ ConversationBrowserLedger.Instance.Touch(agentSessionID);
1060
+ return { ID: conversation.ID, AgentID: null, Config_: null, IsConversation: true };
1061
+ }
1062
+ /** This server's conversation-browser settings (a seam for tests). */
1063
+ ConversationBrowserSettings() {
1064
+ return configInfo.realtime.conversationBrowser;
1065
+ }
1066
+ /**
1067
+ * Starts (or reuses) the scope's browser. A conversation's browser first counts against its owner's
1068
+ * cap, and gives the slot back when it fails to start.
947
1069
  */
948
- async loadOwnedSession(agentSessionID, contextUser, provider) {
949
- const session = await provider.GetEntityObject(SESSION_ENTITY, contextUser);
950
- if (!(await session.Load(agentSessionID))) {
951
- throw new Error(`Remote-browser session ${agentSessionID} not found.`);
1070
+ async startBrowser(agentSessionID, scope, contextUser, providerName, instanceKey) {
1071
+ if (scope.IsConversation) {
1072
+ const settings = this.ConversationBrowserSettings();
1073
+ // ponytail: an action that joins a launch a concurrent End then tears down keeps this slot until the
1074
+ // reaper frees it (idleMinutes); release it on that teardown if users hit maxPerUser this way.
1075
+ // An anonymous guest's cap is its own: every guest is the one shared Anonymous user.
1076
+ const guestScope = contextUser.IsMagicLinkAnonymous ? ResolveSessionScopeIdentity(contextUser) : undefined;
1077
+ const owner = { Key: guestScope ? `scope:${guestScope}` : `user:${NormalizeUUID(contextUser.ID)}`, Anonymous: Boolean(contextUser.IsMagicLinkAnonymous) };
1078
+ ConversationBrowserLedger.Instance.Claim(agentSessionID, owner, settings);
1079
+ // Set once, before the browser launches; the engine re-applies it to any replacement.
1080
+ if (!RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey)) {
1081
+ await RemoteBrowserEngine.Instance.RestrictPrivateNetworkForAgentSession(agentSessionID, settings.allowedPrivateHosts);
1082
+ }
952
1083
  }
953
- if (!UUIDsEqual(session.UserID, contextUser.ID)) {
954
- throw new Error(`Not authorized: remote-browser session ${agentSessionID} is not owned by you.`);
1084
+ try {
1085
+ return await RemoteBrowserEngine.Instance.StartSessionForAgentSession(agentSessionID, contextUser, providerName, instanceKey);
1086
+ }
1087
+ catch (err) {
1088
+ if (scope.IsConversation && !RemoteBrowserEngine.Instance.GetSessionForAgentSession(agentSessionID, instanceKey)) {
1089
+ ConversationBrowserLedger.Instance.Release(agentSessionID);
1090
+ }
1091
+ throw err;
955
1092
  }
956
- return session;
957
1093
  }
958
1094
  /**
959
1095
  * Resolves the remote-browser backend name for the session from the session's agent's
@@ -961,10 +1097,13 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
961
1097
  * config, or unparseable JSON all yield `undefined`, letting the engine fall back to the single Active
962
1098
  * provider.
963
1099
  *
964
- * @param session The owned session entity (supplies the agent id).
1100
+ * @param session The owned scope (supplies the agent id; a conversation has none).
965
1101
  * @returns The configured backend name, or `undefined` to let the engine auto-select.
966
1102
  */
967
1103
  async resolveProviderName(session, contextUser, provider) {
1104
+ if (!session.AgentID) {
1105
+ return undefined;
1106
+ }
968
1107
  // The session's agent IS the co-agent (the realtime voice agent), and the interactive channels
969
1108
  // (Remote Browser, Whiteboard) are the CO-AGENT's abilities — so the remoteBrowser backend config
970
1109
  // lives on the co-agent's TypeConfiguration, not on the target agent it voices.
@@ -1014,8 +1153,15 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
1014
1153
  case 'navigate':
1015
1154
  return input.url ? { Kind: 'navigate', Url: input.url } : null;
1016
1155
  case 'click':
1017
- if (input.selector || (typeof input.x === 'number' && typeof input.y === 'number')) {
1018
- return { Kind: 'click', Selector: input.selector, X: input.x, Y: input.y };
1156
+ if (input.selector || input.ref || input.text || (typeof input.x === 'number' && typeof input.y === 'number')) {
1157
+ return {
1158
+ Kind: 'click',
1159
+ Selector: input.selector,
1160
+ Ref: input.ref,
1161
+ Text: input.text,
1162
+ X: input.x,
1163
+ Y: input.y,
1164
+ };
1019
1165
  }
1020
1166
  return null;
1021
1167
  case 'type':
@@ -1036,10 +1182,37 @@ let RemoteBrowserActionResolver = class RemoteBrowserActionResolver extends Reso
1036
1182
  return { Kind: 'wait', Ms: input.ms, Selector: input.selector };
1037
1183
  }
1038
1184
  return null;
1185
+ case 'inspect':
1186
+ return { Kind: 'inspect' };
1187
+ case 'getPageText':
1188
+ return { Kind: 'getPageText' };
1189
+ case 'fill': {
1190
+ const values = this.parseFillValues(input.valuesJson);
1191
+ return values.length > 0 ? { Kind: 'fill', Values: values } : null;
1192
+ }
1039
1193
  default:
1040
1194
  return null;
1041
1195
  }
1042
1196
  }
1197
+ /**
1198
+ * Parses the `valuesJson` payload for a `fill` action: a JSON object mapping a field ref (`f1`) or
1199
+ * label to its value (`string`, or `boolean` for a checkbox). Anything else yields no values.
1200
+ */
1201
+ parseFillValues(valuesJson) {
1202
+ let parsed;
1203
+ try {
1204
+ parsed = JSON.parse(valuesJson ?? '');
1205
+ }
1206
+ catch {
1207
+ return [];
1208
+ }
1209
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
1210
+ return [];
1211
+ }
1212
+ return Object.entries(parsed)
1213
+ .filter(([target, value]) => target.trim().length > 0 && value !== undefined && value !== null)
1214
+ .map(([target, value]) => ({ Target: target.trim(), Value: typeof value === 'boolean' ? value : String(value) }));
1215
+ }
1043
1216
  /**
1044
1217
  * Builds a strongly-typed {@link RemoteBrowserHumanInput} from the relayed `kind` + fields, validating
1045
1218
  * each kind's required field(s). Returns `null` for an unknown kind or a kind missing its required
@@ -1138,8 +1311,10 @@ __decorate([
1138
1311
  __param(10, Arg('deltaY', () => Float, { nullable: true })),
1139
1312
  __param(11, Arg('ms', () => Float, { nullable: true })),
1140
1313
  __param(12, Arg('instanceKey', () => String, { nullable: true })),
1314
+ __param(13, Arg('ref', () => String, { nullable: true })),
1315
+ __param(14, Arg('valuesJson', () => String, { nullable: true })),
1141
1316
  __metadata("design:type", Function),
1142
- __metadata("design:paramtypes", [String, String, Object, String, String, Number, Number, String, String, Number, Number, Number, String]),
1317
+ __metadata("design:paramtypes", [String, String, Object, String, String, Number, Number, String, String, Number, Number, Number, String, String, String]),
1143
1318
  __metadata("design:returntype", Promise)
1144
1319
  ], RemoteBrowserActionResolver.prototype, "ExecuteRemoteBrowserAction", null);
1145
1320
  __decorate([
@@ -1202,6 +1377,15 @@ __decorate([
1202
1377
  __metadata("design:paramtypes", [String, Object, String]),
1203
1378
  __metadata("design:returntype", Promise)
1204
1379
  ], RemoteBrowserActionResolver.prototype, "StopRemoteBrowserScreencast", null);
1380
+ __decorate([
1381
+ Mutation(() => Boolean),
1382
+ __param(0, Arg('agentSessionID', () => String)),
1383
+ __param(1, Ctx()),
1384
+ __param(2, Arg('instanceKey', () => String, { nullable: true })),
1385
+ __metadata("design:type", Function),
1386
+ __metadata("design:paramtypes", [String, Object, String]),
1387
+ __metadata("design:returntype", Promise)
1388
+ ], RemoteBrowserActionResolver.prototype, "EndRemoteBrowserSession", null);
1205
1389
  __decorate([
1206
1390
  Mutation(() => RemoteBrowserAudioStreamResult),
1207
1391
  __param(0, Arg('agentSessionID', () => String)),
@@ -1249,7 +1433,8 @@ __decorate([
1249
1433
  __metadata("design:returntype", Promise)
1250
1434
  ], RemoteBrowserActionResolver.prototype, "GetRemoteBrowserSelection", null);
1251
1435
  RemoteBrowserActionResolver = __decorate([
1252
- Resolver()
1436
+ Resolver(),
1437
+ __metadata("design:paramtypes", [])
1253
1438
  ], RemoteBrowserActionResolver);
1254
1439
  export { RemoteBrowserActionResolver };
1255
1440
  //# sourceMappingURL=RemoteBrowserActionResolver.js.map