@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
@@ -0,0 +1,25 @@
1
+ import { IMetadataProvider, UserInfo } from '@memberjunction/core';
2
+ /**
3
+ * Gives the realtime bridge engine (`AIBridgeEngine`) this MJAPI instance's identity, the one its agent-session rows
4
+ * carry: `hostname:port:pid:bootId` ({@link GetCurrentHostInstance}). The engine stamps it into the `HostInstanceID`
5
+ * of each `MJ: AI Agent Session Bridges` row it creates, and its orphan reconcile closes only the bridges an earlier
6
+ * boot of this instance left, never another MJAPI's (#5310). Without it the engine's fallback identity applies, which
7
+ * names this process alone, so the reconcile would never find what an earlier boot left.
8
+ *
9
+ * `Serve` calls it right after `SetHostInstancePort`, before anything can start a bridge: a server extension may start
10
+ * a scheduled meeting bridge before the server listens.
11
+ */
12
+ export declare function BindBridgeEngineHostInstance(): void;
13
+ /**
14
+ * Starts the realtime bridge engine's orphan reconcile: now, then every 10 minutes, it closes the bridges an earlier
15
+ * boot of this instance left `Connecting` or `Connected` (reason `Janitor`) and finalizes their co-agent runs.
16
+ *
17
+ * `Serve` calls it once the server listens on its port, where it starts the session janitor. Holding the port is what
18
+ * makes another boot of this instance a process that has ended; before that, an MJAPI started on a port another MJAPI
19
+ * still serves would take that one's live bridges for its own orphans.
20
+ *
21
+ * @param provider The server's metadata provider, for the reads and writes.
22
+ * @param systemUser The user the writes run as.
23
+ */
24
+ export declare function StartBridgeOrphanReconciliation(provider: IMetadataProvider, systemUser: UserInfo): void;
25
+ //# sourceMappingURL=BridgeHostInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeHostInstance.d.ts","sourceRoot":"","sources":["../../src/agentSessions/BridgeHostInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAInE;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAEvG"}
@@ -0,0 +1,30 @@
1
+ import { AIBridgeEngine } from '@memberjunction/ai-bridge-server';
2
+ import { GetCurrentHostInstance } from './HostInstance.js';
3
+ /**
4
+ * Gives the realtime bridge engine (`AIBridgeEngine`) this MJAPI instance's identity, the one its agent-session rows
5
+ * carry: `hostname:port:pid:bootId` ({@link GetCurrentHostInstance}). The engine stamps it into the `HostInstanceID`
6
+ * of each `MJ: AI Agent Session Bridges` row it creates, and its orphan reconcile closes only the bridges an earlier
7
+ * boot of this instance left, never another MJAPI's (#5310). Without it the engine's fallback identity applies, which
8
+ * names this process alone, so the reconcile would never find what an earlier boot left.
9
+ *
10
+ * `Serve` calls it right after `SetHostInstancePort`, before anything can start a bridge: a server extension may start
11
+ * a scheduled meeting bridge before the server listens.
12
+ */
13
+ export function BindBridgeEngineHostInstance() {
14
+ AIBridgeEngine.Instance.SetHostInstanceIdentity(GetCurrentHostInstance());
15
+ }
16
+ /**
17
+ * Starts the realtime bridge engine's orphan reconcile: now, then every 10 minutes, it closes the bridges an earlier
18
+ * boot of this instance left `Connecting` or `Connected` (reason `Janitor`) and finalizes their co-agent runs.
19
+ *
20
+ * `Serve` calls it once the server listens on its port, where it starts the session janitor. Holding the port is what
21
+ * makes another boot of this instance a process that has ended; before that, an MJAPI started on a port another MJAPI
22
+ * still serves would take that one's live bridges for its own orphans.
23
+ *
24
+ * @param provider The server's metadata provider, for the reads and writes.
25
+ * @param systemUser The user the writes run as.
26
+ */
27
+ export function StartBridgeOrphanReconciliation(provider, systemUser) {
28
+ AIBridgeEngine.Instance.StartOrphanReconciliation(systemUser, provider);
29
+ }
30
+ //# sourceMappingURL=BridgeHostInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeHostInstance.js","sourceRoot":"","sources":["../../src/agentSessions/BridgeHostInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B;IACxC,cAAc,CAAC,QAAQ,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAA2B,EAAE,UAAoB;IAC7F,cAAc,CAAC,QAAQ,CAAC,yBAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,19 +1,83 @@
1
1
  /**
2
- * Returns this process's stable host-instance identity (`hostname:pid:bootId`).
3
- * Stamped into `AIAgentSession.HostInstanceID` at session create and read back by the
4
- * janitor for own-host orphan recovery.
2
+ * Identity of one MJAPI instance and of one boot of it. A boot stamps its id into the `HostInstanceID` of the
3
+ * `MJ: AI Agent Sessions` rows it owns, and of the `MJ: AI Agent Session Bridges` rows the realtime bridge engine
4
+ * creates for it (see `BindBridgeEngineHostInstance`), so that after a restart the instance can tell the rows it left
5
+ * behind from another server's live ones.
6
+ *
7
+ * An instance is one MJAPI on one host, named by the host and the port it serves on. Two MJAPIs running at the same
8
+ * time on one host can't serve on the same port, so they are two instances; an MJAPI that restarts serves on its port
9
+ * again, so it is the same instance. Each boot adds its process id and a UUID made at load:
10
+ * `hostname:port:pid:bootId`.
11
+ *
12
+ * A row stamped by another boot of this instance was left by a process that has ended, since this boot holds the
13
+ * port. A row of another instance (another port on this host, or another host) may belong to a server that is still
14
+ * running.
5
15
  */
6
- export declare function GetHostInstanceID(): string;
16
+ export declare class HostInstanceIdentity {
17
+ /** The OS host name. */
18
+ readonly HostName: string;
19
+ /**
20
+ * What tells this instance apart from the other MJAPIs on the host: the port it serves on, or `pid-<pid>` for a
21
+ * process that has not set one (see {@link SetHostInstancePort}).
22
+ */
23
+ readonly InstanceKey: string;
24
+ /** The OS process id of this boot. */
25
+ readonly ProcessID: number;
26
+ /** A UUID made once per boot, so two boots never share an id, even when the OS reuses a process id. */
27
+ readonly BootID: string;
28
+ /**
29
+ * @param hostName The OS host name.
30
+ * @param instanceKey The port the instance serves on, or `pid-<pid>` for a process that serves none.
31
+ * @param processID The OS process id of this boot.
32
+ * @param bootID A UUID made once per boot.
33
+ */
34
+ constructor(hostName: string, instanceKey: string, processID: number, bootID: string);
35
+ /** The id this boot stamps into the rows it owns: `hostname:port:pid:bootId`. */
36
+ GetHostInstanceID(): string;
37
+ /** The prefix every boot of this instance shares and no other instance has: `hostname:port:`. */
38
+ GetInstancePrefix(): string;
39
+ /**
40
+ * Whether a `HostInstanceID` was stamped by another boot of this instance: this instance's prefix, then a process
41
+ * id and a boot id, and not this boot's own id. That boot has ended, since this one holds the instance's port.
42
+ *
43
+ * False for this boot's id, for another instance's (another port on this host, or another host), for the format
44
+ * used before the port was added (`hostname:pid:bootId`), and for null. The match is exact: unlike a SQL `LIKE`,
45
+ * a `_` in a host name matches only `_`.
46
+ *
47
+ * @param hostInstanceID A row's `HostInstanceID`.
48
+ */
49
+ IsPriorBoot(hostInstanceID: string | null | undefined): boolean;
50
+ }
7
51
  /**
8
- * Returns the host-name prefix (`hostname:`) used to match *any* session previously hosted
9
- * by this OS host, regardless of which boot created it. The janitor uses this to find rows
10
- * that belong to this host but to a *different* (older) boot — i.e. crash/redeploy orphans.
52
+ * Names this process's MJAPI instance by the port it serves on. `Serve` calls it first, before anything stamps a row,
53
+ * so every `HostInstanceID` the server writes carries its port.
54
+ *
55
+ * Until it is called the instance is the process alone (`pid-<pid>`), and its startup recovery closes no other
56
+ * process's sessions. The identity is fixed once read: a later call with another port is logged and ignored, so the
57
+ * rows already stamped keep matching this process.
58
+ *
59
+ * @param port The port this MJAPI serves on (`graphqlPort`).
11
60
  */
12
- export declare function GetHostNamePrefix(): string;
61
+ export declare function SetHostInstancePort(port: number): void;
62
+ /**
63
+ * This process's identity: the one place MJServer reads it, to stamp the rows it owns and to recover them after a
64
+ * restart. Made on first call from the host name, the port {@link SetHostInstancePort} set (or `pid-<pid>`), the
65
+ * process id and this boot's id.
66
+ */
67
+ export declare function GetCurrentHostInstance(): HostInstanceIdentity;
13
68
  /**
14
- * Returns the UUID generated once at process start. Exposed primarily for diagnostics and
15
- * tests; the janitor compares against the full {@link GetHostInstanceID} rather than this
16
- * value directly.
69
+ * Returns this boot's id (`hostname:port:pid:bootId`), stamped into `AIAgentSession.HostInstanceID` at session
70
+ * create. Same as `GetCurrentHostInstance().GetHostInstanceID()`.
17
71
  */
72
+ export declare function GetHostInstanceID(): string;
73
+ /**
74
+ * Returns `hostname:`, the prefix of every `HostInstanceID` stamped on this host by any MJAPI.
75
+ *
76
+ * @deprecated Not an ownership test: several MJAPIs can run on one host. Match this instance's rows with
77
+ * {@link HostInstanceIdentity.GetInstancePrefix} and {@link HostInstanceIdentity.IsPriorBoot} on
78
+ * {@link GetCurrentHostInstance}.
79
+ */
80
+ export declare function GetHostNamePrefix(): string;
81
+ /** Returns the UUID made once at process start. For diagnostics and tests. */
18
82
  export declare function GetBootID(): string;
19
83
  //# sourceMappingURL=HostInstance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HostInstance.d.ts","sourceRoot":"","sources":["../../src/agentSessions/HostInstance.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
1
+ {"version":3,"file":"HostInstance.d.ts","sourceRoot":"","sources":["../../src/agentSessions/HostInstance.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAoB;IAC7B,wBAAwB;IACxB,SAAgB,QAAQ,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,sCAAsC;IACtC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,uGAAuG;IACvG,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;;;;OAKG;gBACS,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOpF,iFAAiF;IAC1E,iBAAiB,IAAI,MAAM;IAIlC,iGAAiG;IAC1F,iBAAiB,IAAI,MAAM;IAIlC;;;;;;;;;OASG;IACI,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO;CAOzE;AAcD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUtD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,oBAAoB,CAK7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
@@ -1,47 +1,118 @@
1
1
  import { hostname } from 'os';
2
2
  import { randomUUID } from 'crypto';
3
+ import { LogError } from '@memberjunction/core';
4
+ /** What follows an instance's prefix in a `HostInstanceID`: a process id, then a boot id. */
5
+ const PID_AND_BOOT_ID = /^\d+:[^:]+$/;
3
6
  /**
4
- * Stable, per-process identity for this server node, used to anchor
5
- * {@link import('@memberjunction/core-entities').MJAIAgentSessionEntity} rows to the
6
- * instance that currently owns their in-memory sockets.
7
+ * Identity of one MJAPI instance and of one boot of it. A boot stamps its id into the `HostInstanceID` of the
8
+ * `MJ: AI Agent Sessions` rows it owns, and of the `MJ: AI Agent Session Bridges` rows the realtime bridge engine
9
+ * creates for it (see `BindBridgeEngineHostInstance`), so that after a restart the instance can tell the rows it left
10
+ * behind from another server's live ones.
7
11
  *
8
- * The shape is `${hostname}:${pid}:${bootId}` where:
9
- * - `hostname` and `pid` locate the OS process,
10
- * - `bootId` is a UUID generated **once** at module load, so two different boots of the
11
- * *same* host (a crash/redeploy that reuses pid, or a long-lived host that restarts the
12
- * process) produce **distinct** identities.
12
+ * An instance is one MJAPI on one host, named by the host and the port it serves on. Two MJAPIs running at the same
13
+ * time on one host can't serve on the same port, so they are two instances; an MJAPI that restarts serves on its port
14
+ * again, so it is the same instance. Each boot adds its process id and a UUID made at load:
15
+ * `hostname:port:pid:bootId`.
13
16
  *
14
- * This last property is what lets {@link import('./SessionJanitor.js').SessionJanitor} tell a
15
- * live session owned by *this* boot apart from an orphan left by a *previous* boot of the
16
- * same host: only the latter has a `HostInstanceID` that starts with `${hostname}:` but
17
- * carries a different `bootId`.
17
+ * A row stamped by another boot of this instance was left by a process that has ended, since this boot holds the
18
+ * port. A row of another instance (another port on this host, or another host) may belong to a server that is still
19
+ * running.
18
20
  */
19
- const BOOT_ID = randomUUID();
20
- /** Resolved host name captured once at load (cheap; avoids repeated syscalls). */
21
+ export class HostInstanceIdentity {
22
+ /**
23
+ * @param hostName The OS host name.
24
+ * @param instanceKey The port the instance serves on, or `pid-<pid>` for a process that serves none.
25
+ * @param processID The OS process id of this boot.
26
+ * @param bootID A UUID made once per boot.
27
+ */
28
+ constructor(hostName, instanceKey, processID, bootID) {
29
+ this.HostName = hostName;
30
+ this.InstanceKey = instanceKey;
31
+ this.ProcessID = processID;
32
+ this.BootID = bootID;
33
+ }
34
+ /** The id this boot stamps into the rows it owns: `hostname:port:pid:bootId`. */
35
+ GetHostInstanceID() {
36
+ return `${this.GetInstancePrefix()}${this.ProcessID}:${this.BootID}`;
37
+ }
38
+ /** The prefix every boot of this instance shares and no other instance has: `hostname:port:`. */
39
+ GetInstancePrefix() {
40
+ return `${this.HostName}:${this.InstanceKey}:`;
41
+ }
42
+ /**
43
+ * Whether a `HostInstanceID` was stamped by another boot of this instance: this instance's prefix, then a process
44
+ * id and a boot id, and not this boot's own id. That boot has ended, since this one holds the instance's port.
45
+ *
46
+ * False for this boot's id, for another instance's (another port on this host, or another host), for the format
47
+ * used before the port was added (`hostname:pid:bootId`), and for null. The match is exact: unlike a SQL `LIKE`,
48
+ * a `_` in a host name matches only `_`.
49
+ *
50
+ * @param hostInstanceID A row's `HostInstanceID`.
51
+ */
52
+ IsPriorBoot(hostInstanceID) {
53
+ if (!hostInstanceID || hostInstanceID === this.GetHostInstanceID()) {
54
+ return false;
55
+ }
56
+ const prefix = this.GetInstancePrefix();
57
+ return hostInstanceID.startsWith(prefix) && PID_AND_BOOT_ID.test(hostInstanceID.slice(prefix.length));
58
+ }
59
+ }
60
+ /** The OS host name, read once at load. */
21
61
  const HOST_NAME = hostname();
22
- /** The full, immutable host-instance identity string for this process. */
23
- const HOST_INSTANCE_ID = `${HOST_NAME}:${process.pid}:${BOOT_ID}`;
62
+ /** This boot's id, made once at load. */
63
+ const BOOT_ID = randomUUID();
64
+ /** The instance key until {@link SetHostInstancePort} sets the port: this process alone. */
65
+ let instanceKey = `pid-${process.pid}`;
66
+ /** This process's identity, made on first use and fixed from then on. */
67
+ let currentInstance = null;
68
+ /**
69
+ * Names this process's MJAPI instance by the port it serves on. `Serve` calls it first, before anything stamps a row,
70
+ * so every `HostInstanceID` the server writes carries its port.
71
+ *
72
+ * Until it is called the instance is the process alone (`pid-<pid>`), and its startup recovery closes no other
73
+ * process's sessions. The identity is fixed once read: a later call with another port is logged and ignored, so the
74
+ * rows already stamped keep matching this process.
75
+ *
76
+ * @param port The port this MJAPI serves on (`graphqlPort`).
77
+ */
78
+ export function SetHostInstancePort(port) {
79
+ const key = String(port);
80
+ if (currentInstance && currentInstance.InstanceKey !== key) {
81
+ LogError(`[HostInstance] Port ${key} was set after this process's identity (${currentInstance.GetHostInstanceID()}) ` +
82
+ `was in use; keeping that identity so the rows it stamped still match this process`);
83
+ return;
84
+ }
85
+ instanceKey = key;
86
+ }
87
+ /**
88
+ * This process's identity: the one place MJServer reads it, to stamp the rows it owns and to recover them after a
89
+ * restart. Made on first call from the host name, the port {@link SetHostInstancePort} set (or `pid-<pid>`), the
90
+ * process id and this boot's id.
91
+ */
92
+ export function GetCurrentHostInstance() {
93
+ if (!currentInstance) {
94
+ currentInstance = new HostInstanceIdentity(HOST_NAME, instanceKey, process.pid, BOOT_ID);
95
+ }
96
+ return currentInstance;
97
+ }
24
98
  /**
25
- * Returns this process's stable host-instance identity (`hostname:pid:bootId`).
26
- * Stamped into `AIAgentSession.HostInstanceID` at session create and read back by the
27
- * janitor for own-host orphan recovery.
99
+ * Returns this boot's id (`hostname:port:pid:bootId`), stamped into `AIAgentSession.HostInstanceID` at session
100
+ * create. Same as `GetCurrentHostInstance().GetHostInstanceID()`.
28
101
  */
29
102
  export function GetHostInstanceID() {
30
- return HOST_INSTANCE_ID;
103
+ return GetCurrentHostInstance().GetHostInstanceID();
31
104
  }
32
105
  /**
33
- * Returns the host-name prefix (`hostname:`) used to match *any* session previously hosted
34
- * by this OS host, regardless of which boot created it. The janitor uses this to find rows
35
- * that belong to this host but to a *different* (older) boot — i.e. crash/redeploy orphans.
106
+ * Returns `hostname:`, the prefix of every `HostInstanceID` stamped on this host by any MJAPI.
107
+ *
108
+ * @deprecated Not an ownership test: several MJAPIs can run on one host. Match this instance's rows with
109
+ * {@link HostInstanceIdentity.GetInstancePrefix} and {@link HostInstanceIdentity.IsPriorBoot} on
110
+ * {@link GetCurrentHostInstance}.
36
111
  */
37
112
  export function GetHostNamePrefix() {
38
113
  return `${HOST_NAME}:`;
39
114
  }
40
- /**
41
- * Returns the UUID generated once at process start. Exposed primarily for diagnostics and
42
- * tests; the janitor compares against the full {@link GetHostInstanceID} rather than this
43
- * value directly.
44
- */
115
+ /** Returns the UUID made once at process start. For diagnostics and tests. */
45
116
  export function GetBootID() {
46
117
  return BOOT_ID;
47
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HostInstance.js","sourceRoot":"","sources":["../../src/agentSessions/HostInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,kFAAkF;AAClF,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;AAE7B,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;AAElE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,gBAAgB,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,GAAG,SAAS,GAAG,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACrB,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"HostInstance.js","sourceRoot":"","sources":["../../src/agentSessions/HostInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,6FAA6F;AAC7F,MAAM,eAAe,GAAG,aAAa,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,oBAAoB;IAgB7B;;;;;OAKG;IACH,YAAY,QAAgB,EAAE,WAAmB,EAAE,SAAiB,EAAE,MAAc;QAChF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,iFAAiF;IAC1E,iBAAiB;QACpB,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;IACzE,CAAC;IAED,iGAAiG;IAC1F,iBAAiB;QACpB,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;IACnD,CAAC;IAED;;;;;;;;;OASG;IACI,WAAW,CAAC,cAAyC;QACxD,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,OAAO,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1G,CAAC;CACJ;AAED,2CAA2C;AAC3C,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;AAE7B,yCAAyC;AACzC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;AAE7B,4FAA4F;AAC5F,IAAI,WAAW,GAAG,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AAEvC,yEAAyE;AACzE,IAAI,eAAe,GAAgC,IAAI,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,eAAe,IAAI,eAAe,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;QACzD,QAAQ,CACJ,uBAAuB,GAAG,2CAA2C,eAAe,CAAC,iBAAiB,EAAE,IAAI;YACxG,mFAAmF,CAC1F,CAAC;QACF,OAAO;IACX,CAAC;IACD,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IAClC,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,eAAe,GAAG,IAAI,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,sBAAsB,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB;IAC7B,OAAO,GAAG,SAAS,GAAG,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS;IACrB,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReturningVisitorRecap.d.ts","sourceRoot":"","sources":["../../src/agentSessions/ReturningVisitorRecap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAW,QAAQ,EAAuB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAiBtG;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,0DAA0D;AAC1D,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"ReturningVisitorRecap.d.ts","sourceRoot":"","sources":["../../src/agentSessions/ReturningVisitorRecap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAW,QAAQ,EAAuB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAkBtG;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED,0DAA0D;AAC1D,wBAAsB,0BAA0B,CAC9C,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,WAAW,EAAE,QAAQ,EACrB,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -22,6 +22,7 @@
22
22
  * @module @memberjunction/server/agentSessions
23
23
  */
24
24
  import { RunView, LogError, LogStatus } from '@memberjunction/core';
25
+ import { ConversationEngine } from '@memberjunction/core-entities';
25
26
  import { AIEngine } from '@memberjunction/aiengine';
26
27
  import { AIPromptParams } from '@memberjunction/ai-core-plus';
27
28
  import { AIPromptRunner } from '@memberjunction/ai-prompts';
@@ -117,13 +118,16 @@ async function recapAlreadyExists(conversationId, contextUser) {
117
118
  }, contextUser);
118
119
  return result.Success && (result.Results?.length ?? 0) > 0;
119
120
  }
120
- /** Builds a compact transcript string from the conversation's most-recent detail turns. */
121
+ /**
122
+ * Builds a compact transcript string from the most recent detail turns in Main that no rerun replaced
123
+ * (a returning visitor's widget conversation has no forks). Returns undefined when there are none.
124
+ */
121
125
  async function loadTranscript(conversationId, contextUser) {
122
126
  const rv = new RunView();
123
127
  const result = await rv.RunView({
124
128
  EntityName: CONVERSATION_DETAILS_ENTITY,
125
- ExtraFilter: `ConversationID = '${conversationId}'`,
126
- OrderBy: '__mj_CreatedAt DESC',
129
+ ExtraFilter: ConversationEngine.LiveRowsFilter(ConversationEngine.ScopeFilter(ConversationEngine.TrunkScope(conversationId))),
130
+ OrderBy: 'Sequence DESC',
127
131
  MaxRows: MAX_TRANSCRIPT_TURNS,
128
132
  ResultType: 'entity_object',
129
133
  }, contextUser);
@@ -1 +1 @@
1
- {"version":3,"file":"ReturningVisitorRecap.js","sourceRoot":"","sources":["../../src/agentSessions/ReturningVisitorRecap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReturningVisitorRecap.js","sourceRoot":"","sources":["../../src/agentSessions/ReturningVisitorRecap.ts"],"names":[],"mappings":"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"}