@memberjunction/server 6.2.0-edge.0 → 6.2.0-edge.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/agentSessions/ReturningVisitorRecap.d.ts +2 -0
  3. package/dist/agentSessions/ReturningVisitorRecap.d.ts.map +1 -1
  4. package/dist/agentSessions/ReturningVisitorRecap.js +5 -1
  5. package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
  6. package/dist/agentSessions/SessionManager.js +2 -2
  7. package/dist/agentSessions/remoteBrowserGoalEngine.d.ts +8 -0
  8. package/dist/agentSessions/remoteBrowserGoalEngine.d.ts.map +1 -1
  9. package/dist/agentSessions/remoteBrowserGoalEngine.js +21 -5
  10. package/dist/agentSessions/remoteBrowserGoalEngine.js.map +1 -1
  11. package/dist/auth/AuthProviderCatalogRouter.d.ts +2 -0
  12. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
  13. package/dist/auth/AuthProviderCatalogRouter.js +5 -1
  14. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
  15. package/dist/auth/index.d.ts +20 -1
  16. package/dist/auth/index.d.ts.map +1 -1
  17. package/dist/auth/index.js +20 -10
  18. package/dist/auth/index.js.map +1 -1
  19. package/dist/auth/initializeProviders.d.ts +8 -0
  20. package/dist/auth/initializeProviders.d.ts.map +1 -1
  21. package/dist/auth/initializeProviders.js +21 -5
  22. package/dist/auth/initializeProviders.js.map +1 -1
  23. package/dist/auth/magicLink/MagicLinkRouter.d.ts +9 -0
  24. package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
  25. package/dist/auth/magicLink/MagicLinkRouter.js +22 -10
  26. package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
  27. package/dist/auth/magicLink/MagicLinkService.d.ts +17 -15
  28. package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
  29. package/dist/auth/magicLink/MagicLinkService.js +65 -51
  30. package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
  31. package/dist/auth/magicLink/index.d.ts +2 -2
  32. package/dist/auth/magicLink/index.d.ts.map +1 -1
  33. package/dist/auth/magicLink/index.js +2 -2
  34. package/dist/auth/magicLink/index.js.map +1 -1
  35. package/dist/auth/magicLink/magicLinkCore.d.ts +54 -33
  36. package/dist/auth/magicLink/magicLinkCore.d.ts.map +1 -1
  37. package/dist/auth/magicLink/magicLinkCore.js +61 -61
  38. package/dist/auth/magicLink/magicLinkCore.js.map +1 -1
  39. package/dist/auth/magicLink/redeemLanding.d.ts +4 -0
  40. package/dist/auth/magicLink/redeemLanding.d.ts.map +1 -1
  41. package/dist/auth/magicLink/redeemLanding.js +12 -4
  42. package/dist/auth/magicLink/redeemLanding.js.map +1 -1
  43. package/dist/auth/magicLink/types.d.ts +4 -4
  44. package/dist/auth/principals.d.ts +2 -0
  45. package/dist/auth/principals.d.ts.map +1 -1
  46. package/dist/auth/principals.js +6 -2
  47. package/dist/auth/principals.js.map +1 -1
  48. package/dist/cache.d.ts +2 -0
  49. package/dist/cache.d.ts.map +1 -1
  50. package/dist/cache.js +3 -1
  51. package/dist/cache.js.map +1 -1
  52. package/dist/config.d.ts +346 -2
  53. package/dist/config.d.ts.map +1 -1
  54. package/dist/config.js +34 -4
  55. package/dist/config.js.map +1 -1
  56. package/dist/context.d.ts +20 -0
  57. package/dist/context.d.ts.map +1 -1
  58. package/dist/context.js +27 -19
  59. package/dist/context.js.map +1 -1
  60. package/dist/directives/Public.d.ts +2 -0
  61. package/dist/directives/Public.d.ts.map +1 -1
  62. package/dist/directives/Public.js +3 -1
  63. package/dist/directives/Public.js.map +1 -1
  64. package/dist/directives/RequireSystemUser.d.ts +2 -0
  65. package/dist/directives/RequireSystemUser.d.ts.map +1 -1
  66. package/dist/directives/RequireSystemUser.js +3 -1
  67. package/dist/directives/RequireSystemUser.js.map +1 -1
  68. package/dist/generated/graphql-schemas/__mj.d.ts +1021 -0
  69. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  70. package/dist/generated/graphql-schemas/__mj.js +7368 -2145
  71. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  72. package/dist/generic/CacheInvalidationResolver.d.ts +94 -4
  73. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
  74. package/dist/generic/CacheInvalidationResolver.js +122 -3
  75. package/dist/generic/CacheInvalidationResolver.js.map +1 -1
  76. package/dist/generic/DeleteOptionsInput.d.ts +8 -1
  77. package/dist/generic/DeleteOptionsInput.d.ts.map +1 -1
  78. package/dist/generic/DeleteOptionsInput.js +1 -1
  79. package/dist/generic/DeleteOptionsInput.js.map +1 -1
  80. package/dist/generic/FireAndForgetHeartbeat.d.ts +18 -2
  81. package/dist/generic/FireAndForgetHeartbeat.d.ts.map +1 -1
  82. package/dist/generic/FireAndForgetHeartbeat.js +24 -6
  83. package/dist/generic/FireAndForgetHeartbeat.js.map +1 -1
  84. package/dist/generic/OrphanedConversationDetailReconciler.d.ts +31 -0
  85. package/dist/generic/OrphanedConversationDetailReconciler.d.ts.map +1 -0
  86. package/dist/generic/OrphanedConversationDetailReconciler.js +215 -0
  87. package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -0
  88. package/dist/generic/PushStatusResolver.d.ts +48 -1
  89. package/dist/generic/PushStatusResolver.d.ts.map +1 -1
  90. package/dist/generic/PushStatusResolver.js +95 -4
  91. package/dist/generic/PushStatusResolver.js.map +1 -1
  92. package/dist/generic/ResolverBase.d.ts +18 -2
  93. package/dist/generic/ResolverBase.d.ts.map +1 -1
  94. package/dist/generic/ResolverBase.js +64 -55
  95. package/dist/generic/ResolverBase.js.map +1 -1
  96. package/dist/index.d.ts +9 -0
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +120 -11
  99. package/dist/index.js.map +1 -1
  100. package/dist/integration/CustomColumnPromoter.d.ts +2 -0
  101. package/dist/integration/CustomColumnPromoter.d.ts.map +1 -1
  102. package/dist/integration/CustomColumnPromoter.js +5 -1
  103. package/dist/integration/CustomColumnPromoter.js.map +1 -1
  104. package/dist/integration/EntityMapLifecycle.d.ts +4 -0
  105. package/dist/integration/EntityMapLifecycle.d.ts.map +1 -1
  106. package/dist/integration/EntityMapLifecycle.js +10 -2
  107. package/dist/integration/EntityMapLifecycle.js.map +1 -1
  108. package/dist/logging/NoLog.d.ts +4 -0
  109. package/dist/logging/NoLog.d.ts.map +1 -1
  110. package/dist/logging/NoLog.js +10 -2
  111. package/dist/logging/NoLog.js.map +1 -1
  112. package/dist/logging/StartupLogger.d.ts +2 -0
  113. package/dist/logging/StartupLogger.d.ts.map +1 -1
  114. package/dist/logging/StartupLogger.js +5 -1
  115. package/dist/logging/StartupLogger.js.map +1 -1
  116. package/dist/logging/bootAudit.d.ts +11 -7
  117. package/dist/logging/bootAudit.d.ts.map +1 -1
  118. package/dist/logging/bootAudit.js +15 -7
  119. package/dist/logging/bootAudit.js.map +1 -1
  120. package/dist/logging/boundaryLogPayload.d.ts +4 -0
  121. package/dist/logging/boundaryLogPayload.d.ts.map +1 -1
  122. package/dist/logging/boundaryLogPayload.js +5 -1
  123. package/dist/logging/boundaryLogPayload.js.map +1 -1
  124. package/dist/logging/secretRedactor.d.ts +2 -0
  125. package/dist/logging/secretRedactor.d.ts.map +1 -1
  126. package/dist/logging/secretRedactor.js +8 -4
  127. package/dist/logging/secretRedactor.js.map +1 -1
  128. package/dist/logging/shortenForLog.d.ts +2 -0
  129. package/dist/logging/shortenForLog.d.ts.map +1 -1
  130. package/dist/logging/shortenForLog.js +7 -3
  131. package/dist/logging/shortenForLog.js.map +1 -1
  132. package/dist/logging/variablesLoggingMiddleware.d.ts +2 -0
  133. package/dist/logging/variablesLoggingMiddleware.d.ts.map +1 -1
  134. package/dist/logging/variablesLoggingMiddleware.js +8 -6
  135. package/dist/logging/variablesLoggingMiddleware.js.map +1 -1
  136. package/dist/metadataRefreshSignal.d.ts +19 -0
  137. package/dist/metadataRefreshSignal.d.ts.map +1 -0
  138. package/dist/metadataRefreshSignal.js +45 -0
  139. package/dist/metadataRefreshSignal.js.map +1 -0
  140. package/dist/middleware/MJTenantFilterMiddleware.js +4 -4
  141. package/dist/multiTenancy/index.d.ts +8 -0
  142. package/dist/multiTenancy/index.d.ts.map +1 -1
  143. package/dist/multiTenancy/index.js +21 -5
  144. package/dist/multiTenancy/index.js.map +1 -1
  145. package/dist/realtimeWidget/WidgetRouter.d.ts +5 -0
  146. package/dist/realtimeWidget/WidgetRouter.d.ts.map +1 -1
  147. package/dist/realtimeWidget/WidgetRouter.js +14 -10
  148. package/dist/realtimeWidget/WidgetRouter.js.map +1 -1
  149. package/dist/realtimeWidget/WidgetSessionService.d.ts +6 -6
  150. package/dist/realtimeWidget/WidgetSessionService.js +27 -27
  151. package/dist/realtimeWidget/host-identity.d.ts +5 -1
  152. package/dist/realtimeWidget/host-identity.d.ts.map +1 -1
  153. package/dist/realtimeWidget/host-identity.js +11 -3
  154. package/dist/realtimeWidget/host-identity.js.map +1 -1
  155. package/dist/realtimeWidget/index.d.ts +2 -2
  156. package/dist/realtimeWidget/index.d.ts.map +1 -1
  157. package/dist/realtimeWidget/index.js +2 -2
  158. package/dist/realtimeWidget/index.js.map +1 -1
  159. package/dist/realtimeWidget/visitorIdentity.d.ts +21 -1
  160. package/dist/realtimeWidget/visitorIdentity.d.ts.map +1 -1
  161. package/dist/realtimeWidget/visitorIdentity.js +16 -4
  162. package/dist/realtimeWidget/visitorIdentity.js.map +1 -1
  163. package/dist/realtimeWidget/widgetCore.d.ts +48 -0
  164. package/dist/realtimeWidget/widgetCore.d.ts.map +1 -1
  165. package/dist/realtimeWidget/widgetCore.js +38 -10
  166. package/dist/realtimeWidget/widgetCore.js.map +1 -1
  167. package/dist/realtimeWidget/widgetGuestElevation.d.ts +10 -6
  168. package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
  169. package/dist/realtimeWidget/widgetGuestElevation.js +14 -6
  170. package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
  171. package/dist/resolvers/AdhocQueryResolver.js +3 -3
  172. package/dist/resolvers/AgentRunStatusPublisher.d.ts +55 -0
  173. package/dist/resolvers/AgentRunStatusPublisher.d.ts.map +1 -0
  174. package/dist/resolvers/AgentRunStatusPublisher.js +141 -0
  175. package/dist/resolvers/AgentRunStatusPublisher.js.map +1 -0
  176. package/dist/resolvers/ConversationRunEventsResolver.d.ts +90 -0
  177. package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -0
  178. package/dist/resolvers/ConversationRunEventsResolver.js +283 -0
  179. package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -0
  180. package/dist/resolvers/DuplicateEntryCheckResolver.d.ts +98 -0
  181. package/dist/resolvers/DuplicateEntryCheckResolver.d.ts.map +1 -0
  182. package/dist/resolvers/DuplicateEntryCheckResolver.js +227 -0
  183. package/dist/resolvers/DuplicateEntryCheckResolver.js.map +1 -0
  184. package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
  185. package/dist/resolvers/FetchEntityVectorsResolver.js +2 -1
  186. package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
  187. package/dist/resolvers/FileResolver.js +3 -3
  188. package/dist/resolvers/GeoResolver.d.ts +2 -2
  189. package/dist/resolvers/GeoResolver.js +4 -4
  190. package/dist/resolvers/GetDataResolver.d.ts +14 -0
  191. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  192. package/dist/resolvers/GetDataResolver.js +43 -15
  193. package/dist/resolvers/GetDataResolver.js.map +1 -1
  194. package/dist/resolvers/IntegrationDiscoveryResolver.js +2 -2
  195. package/dist/resolvers/ListOperationsResolver.d.ts +20 -0
  196. package/dist/resolvers/ListOperationsResolver.d.ts.map +1 -1
  197. package/dist/resolvers/ListOperationsResolver.js +68 -28
  198. package/dist/resolvers/ListOperationsResolver.js.map +1 -1
  199. package/dist/resolvers/MCPResolver.d.ts +11 -1
  200. package/dist/resolvers/MCPResolver.d.ts.map +1 -1
  201. package/dist/resolvers/MCPResolver.js +7 -3
  202. package/dist/resolvers/MCPResolver.js.map +1 -1
  203. package/dist/resolvers/MergeRecordsResolver.d.ts +7 -0
  204. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  205. package/dist/resolvers/MergeRecordsResolver.js +16 -2
  206. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  207. package/dist/resolvers/RealtimeBridgeResolver.js +3 -3
  208. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +44 -6
  209. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  210. package/dist/resolvers/RealtimeClientSessionResolver.js +93 -37
  211. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  212. package/dist/resolvers/RemoteBrowserActionResolver.js +5 -5
  213. package/dist/resolvers/RunAIAgentResolver.d.ts +8 -18
  214. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  215. package/dist/resolvers/RunAIAgentResolver.js +85 -184
  216. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  217. package/dist/resolvers/RunAIPromptResolver.d.ts +1 -1
  218. package/dist/resolvers/RunAIPromptResolver.js +2 -2
  219. package/dist/resolvers/RunDecisionResolver.d.ts +149 -0
  220. package/dist/resolvers/RunDecisionResolver.d.ts.map +1 -0
  221. package/dist/resolvers/RunDecisionResolver.js +396 -0
  222. package/dist/resolvers/RunDecisionResolver.js.map +1 -0
  223. package/dist/resolvers/RunTestResolver.js +5 -5
  224. package/dist/resolvers/SqlLoggingConfigResolver.d.ts +8 -4
  225. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  226. package/dist/resolvers/SqlLoggingConfigResolver.js +5 -5
  227. package/dist/resolvers/TaskGraphFrameResolver.d.ts +8 -1
  228. package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
  229. package/dist/resolvers/TaskGraphFrameResolver.js +6 -2
  230. package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
  231. package/dist/resolvers/VectorizeEntityResolver.d.ts +1 -1
  232. package/dist/resolvers/VectorizeEntityResolver.d.ts.map +1 -1
  233. package/dist/resolvers/VectorizeEntityResolver.js +14 -10
  234. package/dist/resolvers/VectorizeEntityResolver.js.map +1 -1
  235. package/dist/resolvers/adhoc-query-helpers.d.ts +6 -0
  236. package/dist/resolvers/adhoc-query-helpers.d.ts.map +1 -1
  237. package/dist/resolvers/adhoc-query-helpers.js +10 -2
  238. package/dist/resolvers/adhoc-query-helpers.js.map +1 -1
  239. package/dist/resolvers/artifact-routing.d.ts +8 -8
  240. package/dist/resolvers/artifact-routing.js +2 -2
  241. package/dist/resolvers/artifact-routing.js.map +1 -1
  242. package/dist/resolvers/meetingRecordingRegistration.d.ts +10 -2
  243. package/dist/resolvers/meetingRecordingRegistration.d.ts.map +1 -1
  244. package/dist/resolvers/meetingRecordingRegistration.js +24 -8
  245. package/dist/resolvers/meetingRecordingRegistration.js.map +1 -1
  246. package/dist/resolvers/peaksSidecar.d.ts +4 -0
  247. package/dist/resolvers/peaksSidecar.d.ts.map +1 -1
  248. package/dist/resolvers/peaksSidecar.js +10 -2
  249. package/dist/resolvers/peaksSidecar.js.map +1 -1
  250. package/dist/rest/EntityCRUDHandler.d.ts +28 -0
  251. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  252. package/dist/rest/EntityCRUDHandler.js +20 -4
  253. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  254. package/dist/rest/MediaStreamHandler.d.ts +2 -0
  255. package/dist/rest/MediaStreamHandler.d.ts.map +1 -1
  256. package/dist/rest/MediaStreamHandler.js +10 -6
  257. package/dist/rest/MediaStreamHandler.js.map +1 -1
  258. package/dist/rest/OAuthCallbackHandler.d.ts +9 -0
  259. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -1
  260. package/dist/rest/OAuthCallbackHandler.js +15 -3
  261. package/dist/rest/OAuthCallbackHandler.js.map +1 -1
  262. package/dist/rest/RESTEndpointHandler.d.ts +6 -4
  263. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  264. package/dist/rest/RESTEndpointHandler.js +15 -11
  265. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  266. package/dist/rest/RealtimeSdpBrokerHandler.d.ts +5 -1
  267. package/dist/rest/RealtimeSdpBrokerHandler.d.ts.map +1 -1
  268. package/dist/rest/RealtimeSdpBrokerHandler.js +12 -4
  269. package/dist/rest/RealtimeSdpBrokerHandler.js.map +1 -1
  270. package/dist/rest/SignatureWebhookHandler.d.ts +2 -0
  271. package/dist/rest/SignatureWebhookHandler.d.ts.map +1 -1
  272. package/dist/rest/SignatureWebhookHandler.js +5 -1
  273. package/dist/rest/SignatureWebhookHandler.js.map +1 -1
  274. package/dist/rest/UploadTokenManager.d.ts +24 -8
  275. package/dist/rest/UploadTokenManager.d.ts.map +1 -1
  276. package/dist/rest/UploadTokenManager.js +53 -21
  277. package/dist/rest/UploadTokenManager.js.map +1 -1
  278. package/dist/rest/ViewOperationsHandler.d.ts +20 -0
  279. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  280. package/dist/rest/ViewOperationsHandler.js +20 -4
  281. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  282. package/dist/rest/mediaRange.d.ts +4 -0
  283. package/dist/rest/mediaRange.d.ts.map +1 -1
  284. package/dist/rest/mediaRange.js +10 -2
  285. package/dist/rest/mediaRange.js.map +1 -1
  286. package/dist/rest/setupRESTEndpoints.d.ts +4 -0
  287. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  288. package/dist/rest/setupRESTEndpoints.js +13 -7
  289. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  290. package/dist/serverExtensionReservedRoots.d.ts +2 -0
  291. package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
  292. package/dist/serverExtensionReservedRoots.js +5 -1
  293. package/dist/serverExtensionReservedRoots.js.map +1 -1
  294. package/dist/services/TaskGraphActionRunner.d.ts +13 -8
  295. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  296. package/dist/services/TaskGraphActionRunner.js +16 -15
  297. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  298. package/dist/types.d.ts +2 -0
  299. package/dist/types.d.ts.map +1 -1
  300. package/dist/types.js +7 -3
  301. package/dist/types.js.map +1 -1
  302. package/dist/util.d.ts +6 -0
  303. package/dist/util.d.ts.map +1 -1
  304. package/dist/util.js +13 -5
  305. package/dist/util.js.map +1 -1
  306. package/package.json +94 -92
  307. package/src/__tests__/AgentRunStatusPublisher.test.ts +175 -0
  308. package/src/__tests__/DeleteOptionsInput.wireShape.test.ts +62 -0
  309. package/src/__tests__/DuplicateEntryCheckResolver.test.ts +300 -0
  310. package/src/__tests__/FileResolverPeaks.test.ts +13 -13
  311. package/src/__tests__/ListOperationsResolver.test.ts +17 -17
  312. package/src/__tests__/MediaStreamHandler.test.ts +28 -28
  313. package/src/__tests__/NoLog.test.ts +11 -11
  314. package/src/__tests__/PrimaryKeyAlwaysMapped.test.ts +10 -10
  315. package/src/__tests__/RESTEndpointHandler.test.ts +14 -14
  316. package/src/__tests__/RealtimeBridgeResolver.test.ts +4 -2
  317. package/src/__tests__/RealtimeClientSessionResolver.test.ts +216 -2
  318. package/src/__tests__/RealtimeSdpBrokerHandler.test.ts +6 -6
  319. package/src/__tests__/RefreshAdoptsNewColumns.test.ts +8 -8
  320. package/src/__tests__/RemoteBrowserActionRecovery.test.ts +7 -1
  321. package/src/__tests__/RemoteBrowserAudioStream.test.ts +7 -1
  322. package/src/__tests__/RemoteBrowserGoalEngine.test.ts +18 -18
  323. package/src/__tests__/RemoteBrowserSnapshot.test.ts +7 -1
  324. package/src/__tests__/ResolverBase.clientOldValues.test.ts +52 -0
  325. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +398 -0
  326. package/src/__tests__/RunAIAgentResolver.streaming.test.ts +18 -27
  327. package/src/__tests__/RunDecisionResolver.test.ts +699 -0
  328. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +131 -0
  329. package/src/__tests__/TaskGraphFrameResolver.test.ts +2 -2
  330. package/src/__tests__/VectorizeEntityResolver.test.ts +106 -0
  331. package/src/__tests__/WidgetSessionService.test.ts +8 -4
  332. package/src/__tests__/adhoc-query-helpers.test.ts +21 -21
  333. package/src/__tests__/bootAudit.test.ts +11 -11
  334. package/src/__tests__/boundaryLogPayload.test.ts +6 -6
  335. package/src/__tests__/cacheInvalidationRecordData.test.ts +177 -0
  336. package/src/__tests__/conversationRunEvents.test.ts +399 -0
  337. package/src/__tests__/databaseAbstraction.test.ts +12 -6
  338. package/src/__tests__/getDataTokenRedaction.test.ts +7 -7
  339. package/src/__tests__/initializeProviders.refresh.test.ts +4 -4
  340. package/src/__tests__/magicLink.test.ts +73 -134
  341. package/src/__tests__/magicLinkService.consume.test.ts +224 -0
  342. package/src/__tests__/meetingRecordingRegistration.test.ts +12 -12
  343. package/src/__tests__/metadataRefreshSignal.test.ts +78 -0
  344. package/src/__tests__/multiTenancy.security.test.ts +40 -40
  345. package/src/__tests__/multiTenancy.test.ts +18 -18
  346. package/src/__tests__/newUsers.test.ts +24 -23
  347. package/src/__tests__/orphanedConversationDetailReconciler.test.ts +283 -0
  348. package/src/__tests__/principals.test.ts +22 -22
  349. package/src/__tests__/pushStatusFanOut.test.ts +206 -0
  350. package/src/__tests__/pushStatusResolver.filter.test.ts +8 -8
  351. package/src/__tests__/secretRedactor.failOpen.test.ts +12 -12
  352. package/src/__tests__/secretRedactor.test.ts +12 -12
  353. package/src/__tests__/serverExtensionReservedRoots.test.ts +7 -7
  354. package/src/__tests__/subscriptionRedaction.test.ts +5 -5
  355. package/src/__tests__/unifiedAuth.test.ts +15 -9
  356. package/src/__tests__/visitorIdentity.resolve.test.ts +6 -6
  357. package/src/__tests__/widget.test.ts +45 -45
  358. package/src/__tests__/widgetGuestElevation.test.ts +7 -7
  359. package/src/__tests__/widgetHostIdentity.test.ts +14 -14
  360. package/src/agentSessions/ReturningVisitorRecap.ts +12 -1
  361. package/src/agentSessions/SessionManager.ts +2 -2
  362. package/src/agentSessions/remoteBrowserGoalEngine.ts +30 -5
  363. package/src/auth/AuthProviderCatalogRouter.ts +6 -1
  364. package/src/auth/__tests__/backward-compatibility.test.ts +4 -3
  365. package/src/auth/index.ts +43 -28
  366. package/src/auth/initializeProviders.ts +25 -5
  367. package/src/auth/magicLink/MagicLinkRouter.ts +28 -10
  368. package/src/auth/magicLink/MagicLinkService.ts +71 -52
  369. package/src/auth/magicLink/index.ts +7 -7
  370. package/src/auth/magicLink/magicLinkCore.ts +96 -64
  371. package/src/auth/magicLink/redeemLanding.ts +14 -4
  372. package/src/auth/magicLink/types.ts +54 -54
  373. package/src/auth/newUsers.ts +1 -1
  374. package/src/auth/principals.ts +11 -2
  375. package/src/cache.ts +4 -1
  376. package/src/config.ts +37 -4
  377. package/src/context.ts +37 -24
  378. package/src/directives/Public.ts +4 -1
  379. package/src/directives/RequireSystemUser.ts +4 -1
  380. package/src/generated/graphql-schemas/__mj.ts +3674 -4
  381. package/src/generic/CacheInvalidationResolver.ts +148 -4
  382. package/src/generic/DeleteOptionsInput.ts +9 -2
  383. package/src/generic/FireAndForgetHeartbeat.ts +35 -16
  384. package/src/generic/OrphanedConversationDetailReconciler.ts +267 -0
  385. package/src/generic/PushStatusResolver.ts +118 -8
  386. package/src/generic/ResolverBase.ts +65 -57
  387. package/src/generic/RunViewResolver.ts +22 -22
  388. package/src/generic/__tests__/FireAndForgetHeartbeat.test.ts +7 -7
  389. package/src/index.ts +137 -11
  390. package/src/integration/CustomColumnPromoter.ts +6 -1
  391. package/src/integration/EntityMapLifecycle.ts +20 -2
  392. package/src/logging/NoLog.ts +16 -2
  393. package/src/logging/StartupLogger.ts +6 -1
  394. package/src/logging/bootAudit.ts +26 -16
  395. package/src/logging/boundaryLogPayload.ts +8 -1
  396. package/src/logging/secretRedactor.ts +14 -9
  397. package/src/logging/shortenForLog.ts +8 -3
  398. package/src/logging/variablesLoggingMiddleware.ts +9 -6
  399. package/src/metadataRefreshSignal.ts +45 -0
  400. package/src/middleware/MJTenantFilterMiddleware.ts +4 -4
  401. package/src/multiTenancy/index.ts +29 -5
  402. package/src/realtimeWidget/WidgetRouter.ts +15 -10
  403. package/src/realtimeWidget/WidgetSessionService.ts +76 -76
  404. package/src/realtimeWidget/host-identity.ts +24 -10
  405. package/src/realtimeWidget/index.ts +3 -3
  406. package/src/realtimeWidget/visitorIdentity.ts +39 -8
  407. package/src/realtimeWidget/widgetCore.ts +75 -10
  408. package/src/realtimeWidget/widgetGuestElevation.ts +25 -12
  409. package/src/resolvers/AdhocQueryResolver.ts +3 -3
  410. package/src/resolvers/AgentRunStatusPublisher.ts +175 -0
  411. package/src/resolvers/AgentSessionResolver.ts +3 -3
  412. package/src/resolvers/ColorResolver.ts +6 -6
  413. package/src/resolvers/ComponentRegistryResolver.ts +36 -36
  414. package/src/resolvers/ConversationRunEventsResolver.ts +308 -0
  415. package/src/resolvers/DuplicateEntryCheckResolver.ts +232 -0
  416. package/src/resolvers/EntityCommunicationsResolver.ts +4 -4
  417. package/src/resolvers/ExecuteRemoteOperationResolver.ts +9 -9
  418. package/src/resolvers/FetchEntityVectorsResolver.ts +2 -1
  419. package/src/resolvers/FileResolver.ts +42 -42
  420. package/src/resolvers/GeoResolver.ts +4 -4
  421. package/src/resolvers/GetDataResolver.ts +50 -15
  422. package/src/resolvers/IntegrationDiscoveryResolver.ts +2 -2
  423. package/src/resolvers/ListOperationsResolver.ts +78 -28
  424. package/src/resolvers/MCPResolver.ts +30 -15
  425. package/src/resolvers/MergeRecordsResolver.ts +14 -2
  426. package/src/resolvers/QueryResolver.ts +13 -13
  427. package/src/resolvers/RealtimeBridgeResolver.ts +3 -3
  428. package/src/resolvers/RealtimeClientSessionResolver.ts +96 -38
  429. package/src/resolvers/RemoteBrowserActionResolver.ts +5 -5
  430. package/src/resolvers/RunAIAgentResolver.ts +134 -239
  431. package/src/resolvers/RunAIPromptResolver.ts +22 -22
  432. package/src/resolvers/RunDecisionResolver.ts +435 -0
  433. package/src/resolvers/RunTemplateResolver.ts +4 -4
  434. package/src/resolvers/RunTestResolver.ts +25 -25
  435. package/src/resolvers/SqlLoggingConfigResolver.ts +56 -56
  436. package/src/resolvers/TaskGraphFrameResolver.ts +37 -28
  437. package/src/resolvers/TelemetryResolver.ts +79 -79
  438. package/src/resolvers/VectorizeEntityResolver.ts +16 -11
  439. package/src/resolvers/__tests__/GetDataResolver.tokens.test.ts +40 -38
  440. package/src/resolvers/__tests__/MergeRecordsResolver.test.ts +93 -0
  441. package/src/resolvers/__tests__/artifact-routing.test.ts +23 -23
  442. package/src/resolvers/adhoc-query-helpers.ts +19 -2
  443. package/src/resolvers/artifact-routing.ts +19 -19
  444. package/src/resolvers/meetingRecordingRegistration.ts +44 -10
  445. package/src/resolvers/peaksSidecar.ts +12 -2
  446. package/src/rest/EntityCRUDHandler.ts +24 -4
  447. package/src/rest/MediaStreamHandler.ts +11 -6
  448. package/src/rest/OAuthCallbackHandler.ts +25 -7
  449. package/src/rest/RESTEndpointHandler.ts +20 -15
  450. package/src/rest/RealtimeSdpBrokerHandler.ts +14 -4
  451. package/src/rest/SignatureWebhookHandler.ts +6 -1
  452. package/src/rest/UploadTokenManager.ts +66 -30
  453. package/src/rest/ViewOperationsHandler.ts +24 -4
  454. package/src/rest/mediaRange.ts +16 -6
  455. package/src/rest/setupRESTEndpoints.ts +24 -12
  456. package/src/serverExtensionReservedRoots.ts +6 -1
  457. package/src/services/TaskGraphActionRunner.ts +16 -15
  458. package/src/types.ts +21 -16
  459. package/src/util.ts +16 -6
@@ -0,0 +1,396 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var RunDecisionResolver_1;
14
+ import { Resolver, Mutation, Arg, Ctx, ObjectType, Field, Int } from 'type-graphql';
15
+ import { LogError, LogStatus } from '@memberjunction/core';
16
+ import { UUIDsEqual } from '@memberjunction/global';
17
+ import { AIDecisionRunner, AIDecisionParams, ParseDecisionQuestions } from '@memberjunction/ai-prompts';
18
+ import { AIEngine } from '@memberjunction/aiengine';
19
+ import { ResolverBase } from '../generic/ResolverBase.js';
20
+ import { IsScopeLimitedPrincipal } from '../auth/scopeLimitedPrincipal.js';
21
+ /**
22
+ * The result of the `RunDecision` mutation. Every failure, an authorization denial included, comes
23
+ * back as `success: false` with an `errorMessage`: the mutation never throws to the client.
24
+ */
25
+ let DecisionRunResult = class DecisionRunResult {
26
+ };
27
+ __decorate([
28
+ Field(),
29
+ __metadata("design:type", Boolean)
30
+ ], DecisionRunResult.prototype, "success", void 0);
31
+ __decorate([
32
+ Field({ nullable: true }),
33
+ __metadata("design:type", String)
34
+ ], DecisionRunResult.prototype, "errorMessage", void 0);
35
+ __decorate([
36
+ Field({ nullable: true }),
37
+ __metadata("design:type", String)
38
+ ], DecisionRunResult.prototype, "answersJSON", void 0);
39
+ __decorate([
40
+ Field({ nullable: true }),
41
+ __metadata("design:type", String)
42
+ ], DecisionRunResult.prototype, "promptRunId", void 0);
43
+ __decorate([
44
+ Field({ nullable: true }),
45
+ __metadata("design:type", String)
46
+ ], DecisionRunResult.prototype, "modelName", void 0);
47
+ __decorate([
48
+ Field({ nullable: true }),
49
+ __metadata("design:type", String)
50
+ ], DecisionRunResult.prototype, "resolvedModel", void 0);
51
+ __decorate([
52
+ Field({ nullable: true }),
53
+ __metadata("design:type", Number)
54
+ ], DecisionRunResult.prototype, "executionTimeMs", void 0);
55
+ DecisionRunResult = __decorate([
56
+ ObjectType()
57
+ ], DecisionRunResult);
58
+ export { DecisionRunResult };
59
+ /**
60
+ * Runs typed decisions (Likelihood, Choice, Score) for clients in one round trip, through
61
+ * `AIDecisionRunner`. It is the direct path for latency-sensitive browser callers: the `Run Decision`
62
+ * action does the same work with action-execution overhead on top.
63
+ *
64
+ * The request path adds no entity load: the prompt comes from `AIEngine`'s cache.
65
+ */
66
+ let RunDecisionResolver = class RunDecisionResolver extends ResolverBase {
67
+ static { RunDecisionResolver_1 = this; }
68
+ /** The prompt used when the caller names none, as for the `Run Decision` action. */
69
+ static { this.DEFAULT_PROMPT_NAME = 'Default Decision'; }
70
+ // Server-side bounds on a request. They are cheap backstops, checked before the model is
71
+ // called. Each decision model's own declared limits are the runner's to check.
72
+ /**
73
+ * The most characters the state may have: about 32,000 tokens at four characters a token, which
74
+ * is Jev's declared input limit. Checked before the state is parsed.
75
+ */
76
+ static { this.MAX_STATE_CHARACTERS = 128_000; }
77
+ /** The most characters the questions' JSON may have. Checked before it is parsed. */
78
+ static { this.MAX_QUESTIONS_CHARACTERS = 128_000; }
79
+ /** The most questions one request may carry. */
80
+ static { this.MAX_QUESTIONS = 32; }
81
+ /**
82
+ * The most options a Choice question, or levels a Score question, may list: Jev's declared
83
+ * `MaxChoiceOptions`.
84
+ */
85
+ static { this.MAX_OPTIONS_PER_QUESTION = 255; }
86
+ /** The model-call timeout used when the caller sends none, or one that is not positive. */
87
+ static { this.DEFAULT_TIMEOUT_MS = 30_000; }
88
+ /** The longest model-call timeout a caller may ask for. A longer one is cut to it. */
89
+ static { this.MAX_TIMEOUT_MS = 120_000; }
90
+ /**
91
+ * Answers typed questions about a state with a Decision-typed prompt.
92
+ *
93
+ * Authorization is `RunAIPrompt`'s: the API-key `prompt:execute` scope check, before any other
94
+ * work (a session without an API key skips it). As `RunAIPrompt` and `RunAIAgent` do, it checks
95
+ * the ID of the prompt that will run, whether the caller named it by ID or by name, so a rule on
96
+ * a prompt's ID holds on both. A denial is returned as `success: false`, not thrown.
97
+ *
98
+ * Scope-limited sessions (magic-link guests and resource-scoped sessions) are refused. The
99
+ * prompt is read from `AIEngine`'s cache, around entity permissions and row-level security, so
100
+ * the confinement those sessions rely on would not apply here. For the same reason, a prompt
101
+ * that cannot run gets one neutral message, whatever the reason, that names nothing the caller
102
+ * did not send.
103
+ *
104
+ * @param state The state the questions are about: text, or the JSON text of an object.
105
+ * @param questions The `DecisionQuestion` map by question key, as JSON: the shape `Run Decision` accepts.
106
+ * @param promptId The decision prompt's ID. Takes precedence over `promptName`.
107
+ * @param promptName The decision prompt's name, matched case-insensitively. Defaults to `Default Decision`.
108
+ * @param timeoutMS Bounds each model call, as the runner's `timeoutMS`. Unset or not positive, it is
109
+ * `DEFAULT_TIMEOUT_MS`; above `MAX_TIMEOUT_MS`, it is cut to it. A call is never unbounded.
110
+ */
111
+ async RunDecision(state, questions, { userPayload }, promptId, promptName, timeoutMS) {
112
+ const startTime = Date.now();
113
+ try {
114
+ const request = { State: state, Questions: questions, PromptID: promptId, PromptName: promptName, TimeoutMS: timeoutMS };
115
+ return await this.runDecision(request, userPayload, startTime);
116
+ }
117
+ catch (error) {
118
+ const message = error instanceof Error ? error.message : String(error);
119
+ LogError(`RunDecision failed: ${message}`, undefined, error);
120
+ return this.failure(message || 'Unknown error occurred', startTime);
121
+ }
122
+ }
123
+ /** Authorizes, validates, resolves the prompt, and runs the decision. Throws only on unexpected errors. */
124
+ async runDecision(request, userPayload, startTime) {
125
+ const reference = this.promptReference(request);
126
+ const authorized = await this.authorizePrompt(reference, userPayload);
127
+ const currentUser = this.GetUserFromPayload(userPayload);
128
+ if (!currentUser) {
129
+ return this.failure('Unable to determine current user', startTime);
130
+ }
131
+ // A scope-limited session is confined only by entity permissions and RLS, and the prompt comes
132
+ // from the cache, around both. There is no narrower read to fall back to, so it is refused.
133
+ if (IsScopeLimitedPrincipal(currentUser)) {
134
+ return this.failure('RunDecision is not permitted for scope-limited sessions', startTime);
135
+ }
136
+ const inputs = this.validateInputs(request);
137
+ if ('Error' in inputs) {
138
+ return this.failure(inputs.Error, startTime);
139
+ }
140
+ const runner = new AIDecisionRunner();
141
+ const prompt = await this.resolvePrompt(authorized, reference, runner, currentUser, userPayload);
142
+ if (typeof prompt === 'string') {
143
+ return this.failure(prompt, startTime);
144
+ }
145
+ const result = await runner.ExecuteDecision(this.buildDecisionParams(prompt, inputs, currentUser));
146
+ return this.mapRunResult(result, prompt, startTime);
147
+ }
148
+ /** The prompt the request names: its ID when given, otherwise its name, otherwise the default. */
149
+ promptReference(request) {
150
+ const id = request.PromptID?.trim();
151
+ if (id) {
152
+ return { By: 'ID', Value: id };
153
+ }
154
+ const name = request.PromptName?.trim();
155
+ return { By: 'Name', Value: name || RunDecisionResolver_1.DEFAULT_PROMPT_NAME };
156
+ }
157
+ /**
158
+ * The API-key `prompt:execute` scope check, made before any other work. The prompt is looked up
159
+ * in `AIEngine`'s cache as it stands, with nothing loaded or logged, and the check is made against
160
+ * its ID. A prompt that is not there is checked against the value the caller sent, so a denied
161
+ * caller learns nothing about which prompts exist: that it was not found is reported only after
162
+ * the check passes.
163
+ *
164
+ * @returns The prompt found, which was authorized by its ID, or undefined when none was found.
165
+ */
166
+ async authorizePrompt(reference, userPayload) {
167
+ const cached = this.findCachedPrompt(reference);
168
+ await this.CheckAPIKeyScopeAuthorization('prompt:execute', cached?.ID ?? reference.Value, userPayload);
169
+ return cached;
170
+ }
171
+ /**
172
+ * Looks the prompt up in the cache without loading it. A cache that cannot be read counts as not
173
+ * found here, so the error surfaces only after authorization, when the lookup is made again.
174
+ */
175
+ findCachedPrompt(reference) {
176
+ try {
177
+ return this.findPrompt(reference);
178
+ }
179
+ catch {
180
+ return undefined;
181
+ }
182
+ }
183
+ /**
184
+ * Validates the state and the questions and bounds their size, or returns the first problem
185
+ * found. Settles the model-call timeout too.
186
+ */
187
+ validateInputs(request) {
188
+ const tooLong = this.checkInputLengths(request);
189
+ if (tooLong) {
190
+ return { Error: tooLong };
191
+ }
192
+ const state = this.parseState(request.State);
193
+ if ('Error' in state) {
194
+ return state;
195
+ }
196
+ const questions = ParseDecisionQuestions(request.Questions);
197
+ if (!questions.Valid) {
198
+ return { Error: questions.Message };
199
+ }
200
+ const tooMany = this.checkQuestionCounts(questions.Questions);
201
+ if (tooMany) {
202
+ return { Error: tooMany };
203
+ }
204
+ return { State: state.State, Questions: questions.Questions, TimeoutMS: this.effectiveTimeoutMS(request.TimeoutMS) };
205
+ }
206
+ /** Refuses a state or questions text over its character limit, before either is parsed. */
207
+ checkInputLengths(request) {
208
+ const stateLength = typeof request.State === 'string' ? request.State.length : 0;
209
+ if (stateLength > RunDecisionResolver_1.MAX_STATE_CHARACTERS) {
210
+ return `State has ${stateLength} characters, over the limit of ${RunDecisionResolver_1.MAX_STATE_CHARACTERS}`;
211
+ }
212
+ const questionsLength = typeof request.Questions === 'string' ? request.Questions.length : 0;
213
+ if (questionsLength > RunDecisionResolver_1.MAX_QUESTIONS_CHARACTERS) {
214
+ return `Questions JSON has ${questionsLength} characters, over the limit of ${RunDecisionResolver_1.MAX_QUESTIONS_CHARACTERS}`;
215
+ }
216
+ return undefined;
217
+ }
218
+ /** Refuses more questions than one request may carry, or more options or levels than one question may list. */
219
+ checkQuestionCounts(questions) {
220
+ const questionCount = Object.keys(questions).length;
221
+ if (questionCount > RunDecisionResolver_1.MAX_QUESTIONS) {
222
+ return `${questionCount} questions exceed the limit of ${RunDecisionResolver_1.MAX_QUESTIONS} per request`;
223
+ }
224
+ const maxOptions = RunDecisionResolver_1.MAX_OPTIONS_PER_QUESTION;
225
+ for (const [key, question] of Object.entries(questions)) {
226
+ if (question.Kind === 'Choice' && question.Options.length > maxOptions) {
227
+ return `Choice '${key}' has ${question.Options.length} options, over the limit of ${maxOptions}`;
228
+ }
229
+ if (question.Kind === 'Score' && question.Levels.length > maxOptions) {
230
+ return `Score '${key}' has ${question.Levels.length} levels, over the limit of ${maxOptions}`;
231
+ }
232
+ }
233
+ return undefined;
234
+ }
235
+ /**
236
+ * The caller's timeout, cut to `MAX_TIMEOUT_MS`, or `DEFAULT_TIMEOUT_MS` when it sent none or one
237
+ * that is not positive.
238
+ */
239
+ effectiveTimeoutMS(requested) {
240
+ if (requested == null || !(requested > 0)) {
241
+ return RunDecisionResolver_1.DEFAULT_TIMEOUT_MS;
242
+ }
243
+ return Math.min(requested, RunDecisionResolver_1.MAX_TIMEOUT_MS);
244
+ }
245
+ /**
246
+ * Reads the state: the object, when the text is the JSON of a non-empty object, otherwise the text
247
+ * itself. Empty text and an empty object are refused, as the `Run Decision` action refuses them.
248
+ */
249
+ parseState(state) {
250
+ const trimmed = typeof state === 'string' ? state.trim() : '';
251
+ if (trimmed.length === 0) {
252
+ return { Error: 'State is required and cannot be empty' };
253
+ }
254
+ const parsed = this.parseJSONObject(trimmed);
255
+ if (!parsed) {
256
+ return { State: trimmed };
257
+ }
258
+ return Object.keys(parsed).length > 0 ? { State: parsed } : { Error: 'State object cannot be empty' };
259
+ }
260
+ /** The text parsed as a JSON object, or undefined when it is not the JSON of an object. */
261
+ parseJSONObject(text) {
262
+ if (!text.startsWith('{')) {
263
+ return undefined;
264
+ }
265
+ try {
266
+ const parsed = JSON.parse(text);
267
+ return this.isPlainObject(parsed) ? parsed : undefined;
268
+ }
269
+ catch {
270
+ return undefined;
271
+ }
272
+ }
273
+ isPlainObject(value) {
274
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
275
+ }
276
+ /**
277
+ * The prompt to run, checked that it can run a decision: that it is Decision-typed and Active.
278
+ * Returns the reason when it cannot.
279
+ *
280
+ * The prompt authorized before is the one used. When there was none, the engine is loaded (a
281
+ * no-op once it is) and the prompt looked up again: one that appears only then is authorized by
282
+ * its ID too, so a request that reaches a cold cache cannot get past a rule on that ID by name.
283
+ */
284
+ async resolvePrompt(authorized, reference, runner, contextUser, userPayload) {
285
+ await AIEngine.Instance.Config(false, contextUser);
286
+ const prompt = authorized ?? (await this.findAndAuthorizeLoadedPrompt(reference, userPayload));
287
+ if (!prompt || !this.canRunDecision(prompt, runner)) {
288
+ return this.unavailablePromptMessage(reference);
289
+ }
290
+ return prompt;
291
+ }
292
+ /**
293
+ * Whether the prompt can run a decision: Decision-typed and Active. When it cannot, the reason,
294
+ * which names the prompt and its status, goes to the server log only.
295
+ */
296
+ canRunDecision(prompt, runner) {
297
+ if (!this.isDecisionPrompt(prompt, runner)) {
298
+ LogStatus(`RunDecision: AI Prompt '${prompt.Name}' (${prompt.ID}) is not a Decision prompt: its AI model type must be '${runner.RequiredModelType}'`);
299
+ return false;
300
+ }
301
+ if (prompt.Status !== 'Active') {
302
+ LogStatus(`RunDecision: AI Prompt '${prompt.Name}' (${prompt.ID}) is not active (Status: ${prompt.Status})`);
303
+ return false;
304
+ }
305
+ return true;
306
+ }
307
+ /**
308
+ * The one message for a prompt that cannot run, whether it is missing, not Decision-typed or not
309
+ * Active. It repeats only what the caller sent: this path reads the cache around entity
310
+ * permissions, so it must not tell a caller the name or status of a prompt it may not read.
311
+ */
312
+ unavailablePromptMessage(reference) {
313
+ const named = reference.By === 'ID' ? `with ID ${reference.Value}` : `'${reference.Value}'`;
314
+ return `AI Prompt ${named} was not found or is not an active Decision prompt`;
315
+ }
316
+ /** Looks the prompt up in the loaded cache, and authorizes it by its ID when it is found. */
317
+ async findAndAuthorizeLoadedPrompt(reference, userPayload) {
318
+ const prompt = this.findPrompt(reference);
319
+ if (prompt) {
320
+ await this.CheckAPIKeyScopeAuthorization('prompt:execute', prompt.ID, userPayload);
321
+ }
322
+ return prompt;
323
+ }
324
+ /** Looks the prompt up by ID, or by name case-insensitively, as the `Run Decision` action does. */
325
+ findPrompt(reference) {
326
+ const prompts = AIEngine.Instance.Prompts;
327
+ if (reference.By === 'ID') {
328
+ return prompts.find(p => UUIDsEqual(p.ID, reference.Value));
329
+ }
330
+ const target = reference.Value.toLowerCase();
331
+ return prompts.find(p => p.Name?.trim().toLowerCase() === target);
332
+ }
333
+ /**
334
+ * Whether the prompt's AI model type is the one `AIDecisionRunner` requires. A prompt with no model
335
+ * type is refused too: the runner would accept it, but nothing marks it as a decision prompt.
336
+ */
337
+ isDecisionPrompt(prompt, runner) {
338
+ if (!prompt.AIModelTypeID) {
339
+ return false;
340
+ }
341
+ const required = runner.RequiredModelType.trim().toLowerCase();
342
+ const decisionType = AIEngine.Instance.ModelTypes.find(mt => mt.Name?.trim().toLowerCase() === required);
343
+ return !!decisionType && UUIDsEqual(prompt.AIModelTypeID, decisionType.ID);
344
+ }
345
+ buildDecisionParams(prompt, inputs, contextUser) {
346
+ const params = new AIDecisionParams();
347
+ params.prompt = prompt;
348
+ params.contextUser = contextUser;
349
+ params.State = inputs.State;
350
+ params.Questions = inputs.Questions;
351
+ params.timeoutMS = inputs.TimeoutMS;
352
+ return params;
353
+ }
354
+ /** Maps the runner's result. The answers are sent only on success, so a caller never acts on partial ones. */
355
+ mapRunResult(result, prompt, startTime) {
356
+ const mapped = {
357
+ success: result.success,
358
+ promptRunId: result.promptRun?.ID,
359
+ modelName: result.modelInfo?.modelName,
360
+ resolvedModel: result.DecisionResult?.ResolvedModel,
361
+ executionTimeMs: Date.now() - startTime,
362
+ };
363
+ if (result.success) {
364
+ mapped.answersJSON = JSON.stringify(result.Answers ?? {});
365
+ }
366
+ else {
367
+ mapped.errorMessage = result.errorMessage || 'Decision execution failed';
368
+ LogError(`RunDecision failed for prompt '${prompt.Name}': ${mapped.errorMessage}`);
369
+ }
370
+ return mapped;
371
+ }
372
+ failure(errorMessage, startTime) {
373
+ return {
374
+ success: false,
375
+ errorMessage,
376
+ executionTimeMs: Date.now() - startTime,
377
+ };
378
+ }
379
+ };
380
+ __decorate([
381
+ Mutation(() => DecisionRunResult),
382
+ __param(0, Arg('state')),
383
+ __param(1, Arg('questions')),
384
+ __param(2, Ctx()),
385
+ __param(3, Arg('promptId', { nullable: true })),
386
+ __param(4, Arg('promptName', { nullable: true })),
387
+ __param(5, Arg('timeoutMS', () => Int, { nullable: true })),
388
+ __metadata("design:type", Function),
389
+ __metadata("design:paramtypes", [String, String, Object, String, String, Number]),
390
+ __metadata("design:returntype", Promise)
391
+ ], RunDecisionResolver.prototype, "RunDecision", null);
392
+ RunDecisionResolver = RunDecisionResolver_1 = __decorate([
393
+ Resolver()
394
+ ], RunDecisionResolver);
395
+ export { RunDecisionResolver };
396
+ //# sourceMappingURL=RunDecisionResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunDecisionResolver.js","sourceRoot":"","sources":["../../src/resolvers/RunDecisionResolver.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import { Resolver, Mutation, Query, Arg, Ctx, ObjectType, Field, PubSub, PubSubE
14
14
  import { LogError, LogStatus } from '@memberjunction/core';
15
15
  import { TestEngine } from '@memberjunction/testing-engine';
16
16
  import { ResolverBase } from '../generic/ResolverBase.js';
17
- import { startLivenessPulse } from '../generic/FireAndForgetHeartbeat.js';
17
+ import { StartLivenessPulse } from '../generic/FireAndForgetHeartbeat.js';
18
18
  // ===== GraphQL Types =====
19
19
  let TestRunResult = class TestRunResult {
20
20
  };
@@ -207,14 +207,14 @@ let RunTestResolver = class RunTestResolver extends ResolverBase {
207
207
  executeTestInBackground(testId, verbose, environment, tags, variables, pubSub, userPayload, user) {
208
208
  // Keep-alive pulse so a long-running test never trips the client idle timeout.
209
209
  // The client captures the testRunId from progress events for reconciliation.
210
- const pulse = startLivenessPulse({ pubSub, sessionId: userPayload.sessionId, ownerUserId: userPayload.userRecord.ID, resolver: 'RunTestResolver' });
210
+ const pulse = StartLivenessPulse({ pubSub, sessionId: userPayload.sessionId, ownerUserId: userPayload.userRecord.ID, resolver: 'RunTestResolver' });
211
211
  this.executeTest(testId, verbose, environment, tags, variables, pubSub, userPayload, user)
212
212
  .catch((error) => {
213
213
  const errorMessage = (error instanceof Error) ? error.message : 'Unknown background test execution error';
214
214
  LogError(`🔥 Fire-and-forget test execution failed: ${errorMessage}`, undefined, error);
215
215
  this.publishFireAndForgetError(pubSub, userPayload, testId, errorMessage);
216
216
  })
217
- .finally(() => pulse.stop());
217
+ .finally(() => pulse.Stop());
218
218
  }
219
219
  /**
220
220
  * Execute a test suite synchronously and return the result.
@@ -264,12 +264,12 @@ let RunTestResolver = class RunTestResolver extends ResolverBase {
264
264
  // (Suite reconciliation isn't wired: suite progress carries the per-test run id, not the
265
265
  // Test Suite Run id, so the client has no handle to reconcile against — the pulse is the
266
266
  // protection here.)
267
- const pulse = startLivenessPulse({ pubSub, sessionId: userPayload.sessionId, ownerUserId: userPayload.userRecord.ID, resolver: 'RunTestResolver' });
267
+ const pulse = StartLivenessPulse({ pubSub, sessionId: userPayload.sessionId, ownerUserId: userPayload.userRecord.ID, resolver: 'RunTestResolver' });
268
268
  this.executeSuite(suiteId, verbose, environment, parallel, tags, variables, selectedTestIds, sequenceStart, sequenceEnd, pubSub, userPayload, user).catch((error) => {
269
269
  const errorMessage = (error instanceof Error) ? error.message : 'Unknown background suite execution error';
270
270
  LogError(`🔥 Fire-and-forget suite execution failed: ${errorMessage}`, undefined, error);
271
271
  this.publishFireAndForgetSuiteError(pubSub, userPayload, suiteId, errorMessage);
272
- }).finally(() => pulse.stop());
272
+ }).finally(() => pulse.Stop());
273
273
  }
274
274
  // ===== Result Building =====
275
275
  /**
@@ -248,7 +248,8 @@ export declare class SqlLoggingConfigResolver extends ResolverBase {
248
248
  * }
249
249
  * ```
250
250
  */
251
- startSqlLogging(input: StartSqlLoggingInput, context: AppContext): Promise<SqlLoggingSession>;
251
+ startSqlLogging(// case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
252
+ input: StartSqlLoggingInput, context: AppContext): Promise<SqlLoggingSession>;
252
253
  /**
253
254
  * Stops and disposes of a specific SQL logging session.
254
255
  *
@@ -270,7 +271,8 @@ export declare class SqlLoggingConfigResolver extends ResolverBase {
270
271
  * }
271
272
  * ```
272
273
  */
273
- stopSqlLogging(sessionId: string, context: AppContext): Promise<boolean>;
274
+ stopSqlLogging(// case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
275
+ sessionId: string, context: AppContext): Promise<boolean>;
274
276
  /**
275
277
  * Stops and disposes of all currently active SQL logging sessions.
276
278
  *
@@ -319,7 +321,8 @@ export declare class SqlLoggingConfigResolver extends ResolverBase {
319
321
  * }
320
322
  * ```
321
323
  */
322
- updateSqlLoggingDefaults(options: SqlLoggingOptionsInput, context: AppContext): Promise<SqlLoggingOptions>;
324
+ updateSqlLoggingDefaults(// case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
325
+ options: SqlLoggingOptionsInput, context: AppContext): Promise<SqlLoggingOptions>;
323
326
  /**
324
327
  * Reads the contents of a specific SQL log file.
325
328
  *
@@ -342,7 +345,8 @@ export declare class SqlLoggingConfigResolver extends ResolverBase {
342
345
  * }
343
346
  * ```
344
347
  */
345
- readSqlLogFile(sessionId: string, maxLines: number | null, context: AppContext): Promise<string>;
348
+ readSqlLogFile(// case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
349
+ sessionId: string, maxLines: number | null, context: AppContext): Promise<string>;
346
350
  /**
347
351
  * Debug query to check what the current user email is in the SQL provider.
348
352
  * This helps diagnose user filtering issues when SQL statements aren't being captured.
@@ -1 +1 @@
1
- {"version":3,"file":"SqlLoggingConfigResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/SqlLoggingConfigResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D;;;GAGG;AACH,qBACa,iBAAiB;IAC5B,oFAAoF;IAEpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,mEAAmE;IAEnE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4EAA4E;IAE5E,cAAc,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IAElD,iFAAiF;IAEjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oEAAoE;IAEpE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,yEAAyE;IAEzE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,uEAAuE;IAEvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,iFAAiF;IAEjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gEAAgE;IAEhE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,uEAAuE;IAEvE,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEnC,6DAA6D;IAE7D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uEAAuE;IAEvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,kDAAkD;IAElD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,iBAAiB;IAC5B,iDAAiD;IAEjD,EAAE,EAAE,MAAM,CAAC;IAEX,+DAA+D;IAE/D,QAAQ,EAAE,MAAM,CAAC;IAEjB,sDAAsD;IAEtD,SAAS,EAAE,IAAI,CAAC;IAEhB,+DAA+D;IAE/D,cAAc,EAAE,MAAM,CAAC;IAEvB,4DAA4D;IAE5D,OAAO,EAAE,iBAAiB,CAAC;IAE3B,mDAAmD;IAEnD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,+EAA+E;IAE/E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,sBAAsB;IACjC,oFAAoF;IAEpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,mEAAmE;IAEnE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4EAA4E;IAE5E,cAAc,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IAElD,iFAAiF;IAEjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oEAAoE;IAEpE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,yEAAyE;IAEzE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,uEAAuE;IAEvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,iFAAiF;IAEjF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gEAAgE;IAEhE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,uEAAuE;IAEvE,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEnC,6DAA6D;IAE7D,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,uEAAuE;IAEvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,kDAAkD;IAElD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,oBAAoB;IAC/B,qFAAqF;IAErF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,kFAAkF;IAElF,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAEjC,2EAA2E;IAE3E,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qBACa,gBAAgB;IAC3B,iEAAiE;IAEjE,OAAO,EAAE,OAAO,CAAC;IAEjB,0EAA0E;IAE1E,cAAc,EAAE,iBAAiB,CAAC;IAElC,mEAAmE;IAEnE,mBAAmB,EAAE,MAAM,CAAC;IAE5B,gEAAgE;IAEhE,iBAAiB,EAAE,MAAM,CAAC;IAE1B,+EAA+E;IAE/E,qBAAqB,EAAE,OAAO,CAAC;IAE/B,sFAAsF;IAEtF,cAAc,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IAEpD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,wBAAyB,SAAQ,YAAY;IACxD,0DAA0D;IAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAc;IAErD,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,eAAe,CAAqC;IAEnE;;;;;;;;;;;;;OAaG;YACW,gBAAgB;IA8B9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IAEG,gBAAgB,CAAQ,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwB7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IAEG,wBAAwB,CAAQ,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAgBxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IAEG,eAAe,CACuB,KAAK,EAAE,oBAAoB,EAC9D,OAAO,EAAE,UAAU,GACzB,OAAO,CAAC,iBAAiB,CAAC;IAqE7B;;;;;;;;;;;;;;;;;;;;OAoBG;IAEG,cAAc,CACc,SAAS,EAAE,MAAM,EAC1C,OAAO,EAAE,UAAU,GACzB,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;;;;;;;;;;;;;;;;;OAmBG;IAEG,iBAAiB,CAAQ,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrE;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IAEG,wBAAwB,CACkB,OAAO,EAAE,sBAAsB,EACtE,OAAO,EAAE,UAAU,GACzB,OAAO,CAAC,iBAAiB,CAAC;IAiB7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IAEG,cAAc,CACc,SAAS,EAAE,MAAM,EACD,QAAQ,EAAE,MAAM,GAAG,IAAI,EAChE,OAAO,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC;IAkDlB;;;;;;;;;;;OAWG;IAEG,qBAAqB,CAAQ,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQxE;;;;;;;;;;;;OAYG;YACW,qBAAqB;IAQnC;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;CAkBhC"}
1
+ {"version":3,"file":"SqlLoggingConfigResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/SqlLoggingConfigResolver.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ var SqlLoggingConfigResolver_1;
14
14
  import { Arg, Ctx, Field, InputType, Mutation, ObjectType, Query, Int, Resolver } from 'type-graphql';
15
15
  import * as path from 'path';
16
16
  import * as fs from 'fs/promises';
17
- import { loadConfig } from '../config.js';
17
+ import { LoadConfig } from '../config.js';
18
18
  import { ResolverBase } from '../generic/ResolverBase.js';
19
19
  import { GetReadOnlyProvider } from '../util.js';
20
20
  import { UserCache } from '@memberjunction/generic-database-provider';
@@ -329,7 +329,7 @@ let SqlLoggingConfigResolver = class SqlLoggingConfigResolver extends ResolverBa
329
329
  */
330
330
  async sqlLoggingConfig(context) {
331
331
  await this.checkOwnerAccess(context);
332
- const config = await loadConfig();
332
+ const config = await LoadConfig();
333
333
  const provider = GetReadOnlyProvider(context.providers, { allowFallbackToReadWrite: true });
334
334
  const activeSessions = provider.GetActiveSqlLoggingSessions();
335
335
  return {
@@ -433,7 +433,7 @@ let SqlLoggingConfigResolver = class SqlLoggingConfigResolver extends ResolverBa
433
433
  */
434
434
  async startSqlLogging(input, context) {
435
435
  await this.checkOwnerAccess(context);
436
- const config = await loadConfig();
436
+ const config = await LoadConfig();
437
437
  // Check if SQL logging is enabled
438
438
  if (!config.sqlLogging?.enabled) {
439
439
  throw new Error('SQL logging is not enabled in the server configuration');
@@ -585,7 +585,7 @@ let SqlLoggingConfigResolver = class SqlLoggingConfigResolver extends ResolverBa
585
585
  await this.checkOwnerAccess(context);
586
586
  // Note: This updates the runtime configuration only, not the file
587
587
  // In a production system, you might want to persist this to a database
588
- const config = await loadConfig();
588
+ const config = await LoadConfig();
589
589
  if (!config.sqlLogging) {
590
590
  throw new Error('SQL logging configuration not found');
591
591
  }
@@ -619,7 +619,7 @@ let SqlLoggingConfigResolver = class SqlLoggingConfigResolver extends ResolverBa
619
619
  */
620
620
  async readSqlLogFile(sessionId, maxLines, context) {
621
621
  await this.checkOwnerAccess(context);
622
- const config = await loadConfig();
622
+ const config = await LoadConfig();
623
623
  // Check if SQL logging is enabled
624
624
  if (!config.sqlLogging?.enabled) {
625
625
  throw new Error('SQL logging is not enabled in the server configuration');
@@ -79,6 +79,12 @@ export interface TaskGraphFrameFilterContext {
79
79
  * another user's workflow — including its per-step error messages. **Fails closed** — a missing
80
80
  * identity on either side never matches.
81
81
  */
82
+ export declare function TaskGraphFrameFilter(data: {
83
+ payload: TaskGraphFramePayload;
84
+ args: TaskGraphFrameArgs;
85
+ context: TaskGraphFrameFilterContext | undefined;
86
+ }): boolean;
87
+ /** @deprecated Use {@link TaskGraphFrameFilter}. */
82
88
  export declare function taskGraphFrameFilter(data: {
83
89
  payload: TaskGraphFramePayload;
84
90
  args: TaskGraphFrameArgs;
@@ -97,7 +103,8 @@ export declare class TaskGraphFrameBroadcaster implements TaskGraphObserver {
97
103
  OnFrame(frame: TaskGraphFrame): void;
98
104
  }
99
105
  export declare class TaskGraphFrameResolver {
100
- taskGraphFrames(payload: TaskGraphFramePayload, parentTaskId: string): TaskGraphFrameNotification;
106
+ taskGraphFrames(// case-violation-ok-legacy-back-compat: the property name is the GraphQL schema field name — renaming it breaks every client query
107
+ payload: TaskGraphFramePayload, parentTaskId: string): TaskGraphFrameNotification;
101
108
  }
102
109
  export {};
103
110
  //# sourceMappingURL=TaskGraphFrameResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraphFrameResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/TaskGraphFrameResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAA8B,YAAY,EAAoD,MAAM,cAAc,CAAC;AAG1H,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,uDAAuD;AACvD,qBACa,0BAA0B;IAErC,IAAI,EAAG,MAAM,CAAC;IAGd,YAAY,EAAG,MAAM,CAAC;IAGtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IAExC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,iDAAiD;IAEjD,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gGAAgG;IAEhG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAI/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,IAAI,EAAG,IAAI,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAChD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAClD,GAAG,OAAO,CAaV;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,YAAW,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAE1C,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAgB5C;AAED,qBACa,sBAAsB;IAMjC,eAAe,CACL,OAAO,EAAE,qBAAqB,EACP,YAAY,EAAE,MAAM,GAClD,0BAA0B;CA8B9B"}
1
+ {"version":3,"file":"TaskGraphFrameResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/TaskGraphFrameResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAA8B,YAAY,EAAoD,MAAM,cAAc,CAAC;AAG1H,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpF,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,uDAAuD;AACvD,qBACa,0BAA0B;IAErC,IAAI,EAAG,MAAM,CAAC;IAGd,YAAY,EAAG,MAAM,CAAC;IAGtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IAExC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,iDAAiD;IAEjD,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gGAAgG;IAEhG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAI/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,IAAI,EAAG,IAAI,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAChD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAClD,GAAG,OAAO,CAaV;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,2BAA2B,GAAG,SAAS,CAAC;CAClD,GAAG,OAAO,CAEV;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,YAAW,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAE1C,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;CAgB5C;AAED,qBACa,sBAAsB;IAMjC,eAAe,CAAG,mIAAmI;IAC3I,OAAO,EAAE,qBAAqB,EACP,YAAY,EAAE,MAAM,GAClD,0BAA0B;CA8B9B"}
@@ -148,7 +148,7 @@ export { TaskGraphFrameNotification };
148
148
  * another user's workflow — including its per-step error messages. **Fails closed** — a missing
149
149
  * identity on either side never matches.
150
150
  */
151
- export function taskGraphFrameFilter(data) {
151
+ export function TaskGraphFrameFilter(data) {
152
152
  const { payload, args, context } = data;
153
153
  if (!payload.ParentTaskID || !args.parentTaskId) {
154
154
  return false;
@@ -162,6 +162,10 @@ export function taskGraphFrameFilter(data) {
162
162
  }
163
163
  return UUIDsEqual(payload.ownerUserId, connectionUserId);
164
164
  }
165
+ /** @deprecated Use {@link TaskGraphFrameFilter}. */
166
+ export function taskGraphFrameFilter(data) {
167
+ return TaskGraphFrameFilter(data);
168
+ }
165
169
  /**
166
170
  * MJServer's `TaskGraphObserver` — turns dispatcher frames into a PubSub publish.
167
171
  *
@@ -223,7 +227,7 @@ let TaskGraphFrameResolver = class TaskGraphFrameResolver {
223
227
  __decorate([
224
228
  Subscription(() => TaskGraphFrameNotification, {
225
229
  topics: TASK_GRAPH_FRAMES_TOPIC,
226
- filter: (data) => taskGraphFrameFilter(data),
230
+ filter: (data) => TaskGraphFrameFilter(data),
227
231
  }),
228
232
  __param(0, Root()),
229
233
  __param(1, Arg('parentTaskId', () => ID)),