@memberjunction/server 6.2.0-edge.2 → 6.2.0-edge.4
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.
- package/README.md +30 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/agentSessions/BridgeHostInstance.d.ts +25 -0
- package/dist/agentSessions/BridgeHostInstance.d.ts.map +1 -0
- package/dist/agentSessions/BridgeHostInstance.js +30 -0
- package/dist/agentSessions/BridgeHostInstance.js.map +1 -0
- package/dist/agentSessions/HostInstance.d.ts +75 -11
- package/dist/agentSessions/HostInstance.d.ts.map +1 -1
- package/dist/agentSessions/HostInstance.js +99 -28
- package/dist/agentSessions/HostInstance.js.map +1 -1
- package/dist/agentSessions/ReturningVisitorRecap.d.ts.map +1 -1
- package/dist/agentSessions/ReturningVisitorRecap.js +7 -3
- package/dist/agentSessions/ReturningVisitorRecap.js.map +1 -1
- package/dist/agentSessions/SessionJanitor.d.ts +173 -25
- package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
- package/dist/agentSessions/SessionJanitor.js +452 -54
- package/dist/agentSessions/SessionJanitor.js.map +1 -1
- package/dist/agentSessions/SessionManager.d.ts +43 -2
- package/dist/agentSessions/SessionManager.d.ts.map +1 -1
- package/dist/agentSessions/SessionManager.js +99 -8
- package/dist/agentSessions/SessionManager.js.map +1 -1
- package/dist/agentSessions/SessionRunIDVerifier.d.ts +63 -0
- package/dist/agentSessions/SessionRunIDVerifier.d.ts.map +1 -0
- package/dist/agentSessions/SessionRunIDVerifier.js +129 -0
- package/dist/agentSessions/SessionRunIDVerifier.js.map +1 -0
- package/dist/agentSessions/index.d.ts +2 -0
- package/dist/agentSessions/index.d.ts.map +1 -1
- package/dist/agentSessions/index.js +10 -3
- package/dist/agentSessions/index.js.map +1 -1
- package/dist/auth/actionAuthorization.d.ts +40 -0
- package/dist/auth/actionAuthorization.d.ts.map +1 -0
- package/dist/auth/actionAuthorization.js +94 -0
- package/dist/auth/actionAuthorization.js.map +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -10
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkService.js +6 -3
- package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
- package/dist/auth/newUsers.d.ts +10 -0
- package/dist/auth/newUsers.d.ts.map +1 -1
- package/dist/auth/newUsers.js +80 -11
- package/dist/auth/newUsers.js.map +1 -1
- package/dist/config.d.ts +4567 -71
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +246 -3
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +8 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +25 -34
- package/dist/context.js.map +1 -1
- package/dist/generated/graphql-schemas/__mj.d.ts +1073 -10
- package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
- package/dist/generated/graphql-schemas/__mj.js +9188 -3649
- package/dist/generated/graphql-schemas/__mj.js.map +1 -1
- package/dist/generic/OrphanedConversationDetailReconciler.js +3 -3
- package/dist/generic/OrphanedConversationDetailReconciler.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +62 -6
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +179 -35
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +4 -0
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +37 -1
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +214 -159
- package/dist/index.js.map +1 -1
- package/dist/isolatedProvider.d.ts +20 -0
- package/dist/isolatedProvider.d.ts.map +1 -0
- package/dist/isolatedProvider.js +22 -0
- package/dist/isolatedProvider.js.map +1 -0
- package/dist/postgresqlCompat.d.ts +8 -0
- package/dist/postgresqlCompat.d.ts.map +1 -0
- package/dist/postgresqlCompat.js +19 -0
- package/dist/postgresqlCompat.js.map +1 -0
- package/dist/postgresqlPoolSettings.d.ts +108 -0
- package/dist/postgresqlPoolSettings.d.ts.map +1 -0
- package/dist/postgresqlPoolSettings.js +134 -0
- package/dist/postgresqlPoolSettings.js.map +1 -0
- package/dist/realtimeProxy/RealtimeProxyServer.d.ts +44 -4
- package/dist/realtimeProxy/RealtimeProxyServer.d.ts.map +1 -1
- package/dist/realtimeProxy/RealtimeProxyServer.js +121 -16
- package/dist/realtimeProxy/RealtimeProxyServer.js.map +1 -1
- package/dist/realtimeProxy/RealtimeRelayTunnel.d.ts +171 -0
- package/dist/realtimeProxy/RealtimeRelayTunnel.d.ts.map +1 -0
- package/dist/realtimeProxy/RealtimeRelayTunnel.js +532 -0
- package/dist/realtimeProxy/RealtimeRelayTunnel.js.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.d.ts +148 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.d.ts.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.js +191 -0
- package/dist/realtimeSessions/RealtimeSessionEventService.js.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts +66 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts.map +1 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js +138 -0
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js.map +1 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts +38 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts.map +1 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.js +98 -0
- package/dist/realtimeSessions/RealtimeVerifyRouter.js.map +1 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts +61 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.d.ts.map +1 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.js +149 -0
- package/dist/realtimeSessions/SessionVerificationPortsBase.js.map +1 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.d.ts +57 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.d.ts.map +1 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.js +69 -0
- package/dist/realtimeSessions/SlidingWindowRateLimiter.js.map +1 -0
- package/dist/realtimeSessions/index.d.ts +17 -0
- package/dist/realtimeSessions/index.d.ts.map +1 -0
- package/dist/realtimeSessions/index.js +17 -0
- package/dist/realtimeSessions/index.js.map +1 -0
- package/dist/realtimeSessions/sessionAccess.d.ts +86 -0
- package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -0
- package/dist/realtimeSessions/sessionAccess.js +90 -0
- package/dist/realtimeSessions/sessionAccess.js.map +1 -0
- package/dist/realtimeSessions/sessionConfigStamps.d.ts +70 -0
- package/dist/realtimeSessions/sessionConfigStamps.d.ts.map +1 -0
- package/dist/realtimeSessions/sessionConfigStamps.js +93 -0
- package/dist/realtimeSessions/sessionConfigStamps.js.map +1 -0
- package/dist/realtimeSessions/subscriptionAuthorization.d.ts +65 -0
- package/dist/realtimeSessions/subscriptionAuthorization.d.ts.map +1 -0
- package/dist/realtimeSessions/subscriptionAuthorization.js +71 -0
- package/dist/realtimeSessions/subscriptionAuthorization.js.map +1 -0
- package/dist/realtimeSessions/verificationCore.d.ts +243 -0
- package/dist/realtimeSessions/verificationCore.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationCore.js +356 -0
- package/dist/realtimeSessions/verificationCore.js.map +1 -0
- package/dist/realtimeSessions/verificationPages.d.ts +66 -0
- package/dist/realtimeSessions/verificationPages.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationPages.js +110 -0
- package/dist/realtimeSessions/verificationPages.js.map +1 -0
- package/dist/realtimeSessions/verificationPolicy.d.ts +147 -0
- package/dist/realtimeSessions/verificationPolicy.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationPolicy.js +249 -0
- package/dist/realtimeSessions/verificationPolicy.js.map +1 -0
- package/dist/realtimeSessions/verificationWorkflow.d.ts +263 -0
- package/dist/realtimeSessions/verificationWorkflow.d.ts.map +1 -0
- package/dist/realtimeSessions/verificationWorkflow.js +435 -0
- package/dist/realtimeSessions/verificationWorkflow.js.map +1 -0
- package/dist/realtimeWidget/widgetGuestElevation.d.ts +20 -2
- package/dist/realtimeWidget/widgetGuestElevation.d.ts.map +1 -1
- package/dist/realtimeWidget/widgetGuestElevation.js +31 -2
- package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
- package/dist/resolvers/ActionResolver.d.ts +31 -5
- package/dist/resolvers/ActionResolver.d.ts.map +1 -1
- package/dist/resolvers/ActionResolver.js +75 -14
- package/dist/resolvers/ActionResolver.js.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.d.ts +35 -17
- package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
- package/dist/resolvers/AdhocQueryResolver.js +92 -166
- package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
- package/dist/resolvers/CacheStatsResolver.d.ts +27 -0
- package/dist/resolvers/CacheStatsResolver.d.ts.map +1 -1
- package/dist/resolvers/CacheStatsResolver.js +113 -2
- package/dist/resolvers/CacheStatsResolver.js.map +1 -1
- package/dist/resolvers/ClientToolRequestResolver.d.ts +4 -2
- package/dist/resolvers/ClientToolRequestResolver.d.ts.map +1 -1
- package/dist/resolvers/ClientToolRequestResolver.js +28 -10
- package/dist/resolvers/ClientToolRequestResolver.js.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +7 -23
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js +9 -47
- package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts +12 -1
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.js +83 -2
- package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +9 -0
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/HumanHandoffResolver.d.ts +107 -0
- package/dist/resolvers/HumanHandoffResolver.d.ts.map +1 -0
- package/dist/resolvers/HumanHandoffResolver.js +330 -0
- package/dist/resolvers/HumanHandoffResolver.js.map +1 -0
- package/dist/resolvers/MCPResolver.d.ts.map +1 -1
- package/dist/resolvers/MCPResolver.js +9 -4
- package/dist/resolvers/MCPResolver.js.map +1 -1
- package/dist/resolvers/MeetingResolver.d.ts +69 -0
- package/dist/resolvers/MeetingResolver.d.ts.map +1 -0
- package/dist/resolvers/MeetingResolver.js +381 -0
- package/dist/resolvers/MeetingResolver.js.map +1 -0
- package/dist/resolvers/RealtimeBridgeResolver.d.ts +88 -3
- package/dist/resolvers/RealtimeBridgeResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeBridgeResolver.js +352 -12
- package/dist/resolvers/RealtimeBridgeResolver.js.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts +156 -108
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.js +395 -293
- package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
- package/dist/resolvers/RealtimeSessionEventsResolver.d.ts +61 -0
- package/dist/resolvers/RealtimeSessionEventsResolver.d.ts.map +1 -0
- package/dist/resolvers/RealtimeSessionEventsResolver.js +130 -0
- package/dist/resolvers/RealtimeSessionEventsResolver.js.map +1 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.d.ts +85 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.d.ts.map +1 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.js +188 -0
- package/dist/resolvers/RealtimeSessionVerificationResolver.js.map +1 -0
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts +2 -0
- package/dist/resolvers/RemoteBrowserActionResolver.d.ts.map +1 -1
- package/dist/resolvers/RemoteBrowserActionResolver.js +5 -1
- package/dist/resolvers/RemoteBrowserActionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts +10 -0
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +68 -11
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
- package/dist/resolvers/RunTemplateResolver.js +12 -11
- package/dist/resolvers/RunTemplateResolver.js.map +1 -1
- package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
- package/dist/resolvers/SyncDataResolver.js +6 -2
- package/dist/resolvers/SyncDataResolver.js.map +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.d.ts +2 -0
- package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.js +23 -6
- package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
- package/dist/resolvers/UserAvatarResolver.d.ts +16 -0
- package/dist/resolvers/UserAvatarResolver.d.ts.map +1 -0
- package/dist/resolvers/UserAvatarResolver.js +124 -0
- package/dist/resolvers/UserAvatarResolver.js.map +1 -0
- package/dist/resolvers/UserResolver.d.ts.map +1 -1
- package/dist/resolvers/UserResolver.js +2 -17
- package/dist/resolvers/UserResolver.js.map +1 -1
- package/dist/resolvers/adhocTimeout.d.ts +7 -0
- package/dist/resolvers/adhocTimeout.d.ts.map +1 -0
- package/dist/resolvers/adhocTimeout.js +12 -0
- package/dist/resolvers/adhocTimeout.js.map +1 -0
- package/dist/resolvers/agentVisionConsentAudit.d.ts +37 -0
- package/dist/resolvers/agentVisionConsentAudit.d.ts.map +1 -0
- package/dist/resolvers/agentVisionConsentAudit.js +63 -0
- package/dist/resolvers/agentVisionConsentAudit.js.map +1 -0
- package/dist/resolvers/avatarInputValidation.d.ts +40 -0
- package/dist/resolvers/avatarInputValidation.d.ts.map +1 -0
- package/dist/resolvers/avatarInputValidation.js +97 -0
- package/dist/resolvers/avatarInputValidation.js.map +1 -0
- package/dist/resolvers/currentUserRoles.d.ts +29 -0
- package/dist/resolvers/currentUserRoles.d.ts.map +1 -1
- package/dist/resolvers/currentUserRoles.js +30 -0
- package/dist/resolvers/currentUserRoles.js.map +1 -1
- package/dist/resolvers/meetings/index.d.ts +5 -0
- package/dist/resolvers/meetings/index.d.ts.map +1 -0
- package/dist/resolvers/meetings/index.js +5 -0
- package/dist/resolvers/meetings/index.js.map +1 -0
- package/dist/resolvers/meetings/meetingHelpers.d.ts +17 -0
- package/dist/resolvers/meetings/meetingHelpers.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingHelpers.js +212 -0
- package/dist/resolvers/meetings/meetingHelpers.js.map +1 -0
- package/dist/resolvers/meetings/meetingMutations.d.ts +18 -0
- package/dist/resolvers/meetings/meetingMutations.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingMutations.js +439 -0
- package/dist/resolvers/meetings/meetingMutations.js.map +1 -0
- package/dist/resolvers/meetings/meetingQueries.d.ts +7 -0
- package/dist/resolvers/meetings/meetingQueries.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingQueries.js +113 -0
- package/dist/resolvers/meetings/meetingQueries.js.map +1 -0
- package/dist/resolvers/meetings/meetingTypes.d.ts +89 -0
- package/dist/resolvers/meetings/meetingTypes.d.ts.map +1 -0
- package/dist/resolvers/meetings/meetingTypes.js +345 -0
- package/dist/resolvers/meetings/meetingTypes.js.map +1 -0
- package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
- package/dist/rest/ViewOperationsHandler.js +8 -5
- package/dist/rest/ViewOperationsHandler.js.map +1 -1
- package/dist/services/TaskGraphActionRunner.d.ts +8 -0
- package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphActionRunner.js +27 -1
- package/dist/services/TaskGraphActionRunner.js.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.d.ts +4 -3
- package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.js +13 -7
- package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
- package/dist/services/WorkQueueHostService.d.ts +36 -0
- package/dist/services/WorkQueueHostService.d.ts.map +1 -0
- package/dist/services/WorkQueueHostService.js +97 -0
- package/dist/services/WorkQueueHostService.js.map +1 -0
- package/dist/services/workQueueConfig.d.ts +103 -0
- package/dist/services/workQueueConfig.d.ts.map +1 -0
- package/dist/services/workQueueConfig.js +48 -0
- package/dist/services/workQueueConfig.js.map +1 -0
- package/dist/sharedCache.d.ts +105 -0
- package/dist/sharedCache.d.ts.map +1 -0
- package/dist/sharedCache.js +276 -0
- package/dist/sharedCache.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +97 -94
- package/src/__tests__/ActionResolver.authorization.test.ts +353 -0
- package/src/__tests__/AdhocQueryResolver.bugs.test.ts +14 -35
- package/src/__tests__/AdhocQueryResolver.pagination.test.ts +6 -2
- package/src/__tests__/AdhocQueryResolver.scopeGuard.test.ts +3 -3
- package/src/__tests__/AdhocQueryResolver.sqlAuthorizer.test.ts +104 -0
- package/src/__tests__/BridgeHostInstance.test.ts +232 -0
- package/src/__tests__/ClientToolRequestResolver.test.ts +116 -0
- package/src/__tests__/EntityRecordNameResolver.fieldSecurity.test.ts +27 -72
- package/src/__tests__/FetchEntityVectorsResolver.test.ts +285 -0
- package/src/__tests__/HostInstance.test.ts +84 -0
- package/src/__tests__/HumanHandoffResolver.test.ts +250 -0
- package/src/__tests__/MeetingResolver.test.ts +448 -0
- package/src/__tests__/RealtimeBridgeResolver.test.ts +651 -4
- package/src/__tests__/RealtimeClientSessionResolver.configTamper.test.ts +383 -0
- package/src/__tests__/RealtimeClientSessionResolver.test.ts +682 -58
- package/src/__tests__/RealtimeProxyServer.test.ts +16 -1
- package/src/__tests__/RealtimeRelay.test.ts +876 -0
- package/src/__tests__/RemoteBrowserActionResolver.goalRunLink.test.ts +129 -0
- package/src/__tests__/ResolverBase.adhocReadScope.test.ts +96 -0
- package/src/__tests__/ResolverBase.aggregateScreen.test.ts +174 -0
- package/src/__tests__/ResolverBase.clientOldValues.test.ts +6 -3
- package/src/__tests__/ResolverBase.filterEscaping.test.ts +21 -2
- package/src/__tests__/ResolverBase.includeBinaryFields.test.ts +291 -0
- package/src/__tests__/ReturningVisitorRecap.test.ts +115 -0
- package/src/__tests__/RunAIAgentResolver.branch.test.ts +169 -0
- package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +4 -4
- package/src/__tests__/RunAIAgentResolver.stoppedPredecessor.test.ts +166 -0
- package/src/__tests__/RunTemplateResolver.test.ts +132 -0
- package/src/__tests__/RunViewResolver.cacheCheckForwarding.test.ts +63 -0
- package/src/__tests__/SessionJanitor.test.ts +845 -18
- package/src/__tests__/SessionManager.test.ts +213 -17
- package/src/__tests__/SessionRunIDVerifier.test.ts +251 -0
- package/src/__tests__/SyncRolesUsersResolver.userRoles.test.ts +97 -0
- package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +41 -0
- package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +50 -3
- package/src/__tests__/UserAvatarResolver.test.ts +255 -0
- package/src/__tests__/UserResolver.currentUser.test.ts +16 -1
- package/src/__tests__/WorkQueueHostService.test.ts +133 -0
- package/src/__tests__/actionAuthorization.test.ts +130 -0
- package/src/__tests__/adhocTimeoutClamp.test.ts +26 -0
- package/src/__tests__/agentVisionConsentAudit.test.ts +118 -0
- package/src/__tests__/avatarInputValidation.test.ts +160 -0
- package/src/__tests__/isolatedProviderTransactions.test.ts +169 -0
- package/src/__tests__/magicLinkService.consume.test.ts +6 -0
- package/src/__tests__/magicLinkService.provisionLog.test.ts +5 -0
- package/src/__tests__/newUsers.template.test.ts +151 -0
- package/src/__tests__/newUsers.test.ts +74 -5
- package/src/__tests__/orphanedConversationDetailReconciler.test.ts +17 -2
- package/src/__tests__/postgresqlPoolSettings.test.ts +131 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionEventService.test.ts +201 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionEventsResolver.test.ts +215 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionVerificationResolver.test.ts +102 -0
- package/src/__tests__/realtimeSessions/RealtimeSessionVerificationService.test.ts +349 -0
- package/src/__tests__/realtimeSessions/RealtimeVerifyRouter.test.ts +131 -0
- package/src/__tests__/realtimeSessions/SlidingWindowRateLimiter.test.ts +56 -0
- package/src/__tests__/realtimeSessions/helpers.ts +4 -0
- package/src/__tests__/realtimeSessions/sessionAccess.test.ts +129 -0
- package/src/__tests__/realtimeSessions/sessionConfigStamps.test.ts +124 -0
- package/src/__tests__/realtimeSessions/verificationCore.test.ts +355 -0
- package/src/__tests__/realtimeSessions/verificationPages.test.ts +84 -0
- package/src/__tests__/realtimeSessions/verificationPolicy.test.ts +226 -0
- package/src/__tests__/realtimeSessions/verificationWorkflow.test.ts +633 -0
- package/src/__tests__/resolverBase.fls.test.ts +87 -4
- package/src/__tests__/serverExtensionReservedRoots.test.ts +2 -0
- package/src/__tests__/sharedCache.test.ts +310 -0
- package/src/__tests__/translateBracketsToPG.test.ts +20 -0
- package/src/__tests__/widgetGuestElevation.test.ts +44 -0
- package/src/agentSessions/BridgeHostInstance.ts +32 -0
- package/src/agentSessions/HostInstance.ts +124 -28
- package/src/agentSessions/ReturningVisitorRecap.ts +7 -3
- package/src/agentSessions/SessionJanitor.ts +543 -57
- package/src/agentSessions/SessionManager.ts +125 -25
- package/src/agentSessions/SessionRunIDVerifier.ts +171 -0
- package/src/agentSessions/index.ts +10 -3
- package/src/auth/actionAuthorization.ts +116 -0
- package/src/auth/index.ts +3 -8
- package/src/auth/magicLink/MagicLinkService.ts +6 -3
- package/src/auth/newUsers.ts +99 -11
- package/src/config.ts +255 -3
- package/src/context.ts +26 -34
- package/src/generated/graphql-schemas/__mj.ts +22701 -18838
- package/src/generic/OrphanedConversationDetailReconciler.ts +3 -3
- package/src/generic/ResolverBase.ts +210 -36
- package/src/generic/RunViewResolver.ts +37 -2
- package/src/index.ts +236 -170
- package/src/isolatedProvider.ts +22 -0
- package/src/postgresqlCompat.ts +21 -0
- package/src/postgresqlPoolSettings.ts +213 -0
- package/src/realtimeProxy/RealtimeProxyServer.ts +148 -16
- package/src/realtimeProxy/RealtimeRelayTunnel.ts +645 -0
- package/src/realtimeSessions/README.md +179 -0
- package/src/realtimeSessions/RealtimeSessionEventService.ts +274 -0
- package/src/realtimeSessions/RealtimeSessionVerificationService.ts +167 -0
- package/src/realtimeSessions/RealtimeVerifyRouter.ts +108 -0
- package/src/realtimeSessions/SessionVerificationPortsBase.ts +189 -0
- package/src/realtimeSessions/SlidingWindowRateLimiter.ts +92 -0
- package/src/realtimeSessions/index.ts +16 -0
- package/src/realtimeSessions/sessionAccess.ts +141 -0
- package/src/realtimeSessions/sessionConfigStamps.ts +123 -0
- package/src/realtimeSessions/subscriptionAuthorization.ts +116 -0
- package/src/realtimeSessions/verificationCore.ts +502 -0
- package/src/realtimeSessions/verificationPages.ts +149 -0
- package/src/realtimeSessions/verificationPolicy.ts +321 -0
- package/src/realtimeSessions/verificationWorkflow.ts +702 -0
- package/src/realtimeWidget/widgetGuestElevation.ts +34 -2
- package/src/resolvers/ActionResolver.ts +84 -21
- package/src/resolvers/AdhocQueryResolver.ts +105 -187
- package/src/resolvers/CacheStatsResolver.ts +89 -2
- package/src/resolvers/ClientToolRequestResolver.ts +25 -7
- package/src/resolvers/EntityRecordNameResolver.ts +9 -51
- package/src/resolvers/FetchEntityVectorsResolver.ts +97 -2
- package/src/resolvers/GetDataResolver.ts +10 -0
- package/src/resolvers/HumanHandoffResolver.ts +312 -0
- package/src/resolvers/MCPResolver.ts +8 -5
- package/src/resolvers/MeetingResolver.ts +438 -0
- package/src/resolvers/RealtimeBridgeResolver.ts +385 -19
- package/src/resolvers/RealtimeClientSessionResolver.ts +503 -344
- package/src/resolvers/RealtimeSessionEventsResolver.ts +133 -0
- package/src/resolvers/RealtimeSessionVerificationResolver.ts +174 -0
- package/src/resolvers/RemoteBrowserActionResolver.ts +11 -1
- package/src/resolvers/RunAIAgentResolver.ts +78 -11
- package/src/resolvers/RunTemplateResolver.ts +13 -12
- package/src/resolvers/SyncDataResolver.ts +6 -2
- package/src/resolvers/SyncRolesUsersResolver.ts +24 -6
- package/src/resolvers/UserAvatarResolver.ts +111 -0
- package/src/resolvers/UserResolver.ts +2 -16
- package/src/resolvers/adhocTimeout.ts +12 -0
- package/src/resolvers/agentVisionConsentAudit.ts +82 -0
- package/src/resolvers/avatarInputValidation.ts +123 -0
- package/src/resolvers/currentUserRoles.ts +32 -1
- package/src/resolvers/meetings/index.ts +4 -0
- package/src/resolvers/meetings/meetingHelpers.ts +307 -0
- package/src/resolvers/meetings/meetingMutations.ts +556 -0
- package/src/resolvers/meetings/meetingQueries.ts +172 -0
- package/src/resolvers/meetings/meetingTypes.ts +238 -0
- package/src/rest/ViewOperationsHandler.ts +8 -5
- package/src/services/TaskGraphActionRunner.ts +29 -1
- package/src/services/TaskGraphContinuationDeliverer.ts +13 -7
- package/src/services/WorkQueueHostService.ts +129 -0
- package/src/services/workQueueConfig.ts +52 -0
- package/src/sharedCache.ts +302 -0
- package/src/types.ts +12 -0
- package/dist/resolvers/adhoc-query-helpers.d.ts +0 -33
- package/dist/resolvers/adhoc-query-helpers.d.ts.map +0 -1
- package/dist/resolvers/adhoc-query-helpers.js +0 -50
- package/dist/resolvers/adhoc-query-helpers.js.map +0 -1
- package/src/__tests__/adhoc-query-helpers.test.ts +0 -50
- package/src/resolvers/adhoc-query-helpers.ts +0 -67
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdhocQueryResolver.js","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"AdhocQueryResolver.js","sourceRoot":"","sources":["../../src/resolvers/AdhocQueryResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,9 +23,36 @@ declare class CacheEntityBreakdownGQL {
|
|
|
23
23
|
declare class CacheStatsDetailGQL extends CacheStatsGQL {
|
|
24
24
|
EntityBreakdown: CacheEntityBreakdownGQL[];
|
|
25
25
|
}
|
|
26
|
+
declare class EnginePropertyCensusGQL {
|
|
27
|
+
PropertyName: string;
|
|
28
|
+
EntityName?: string;
|
|
29
|
+
DatasetName?: string;
|
|
30
|
+
RowCount: number;
|
|
31
|
+
MaxUpdatedAt: string | null;
|
|
32
|
+
IdentityHash: string | null;
|
|
33
|
+
LoadedSuccessfully: boolean;
|
|
34
|
+
PermissionDenied: boolean;
|
|
35
|
+
}
|
|
36
|
+
declare class EngineDerivedCountGQL {
|
|
37
|
+
Name: string;
|
|
38
|
+
Value: number;
|
|
39
|
+
}
|
|
40
|
+
declare class EngineStateCensusGQL {
|
|
41
|
+
EngineClass: string;
|
|
42
|
+
Loaded: boolean;
|
|
43
|
+
PermissionConstrained: boolean;
|
|
44
|
+
Properties: EnginePropertyCensusGQL[];
|
|
45
|
+
Derived: EngineDerivedCountGQL[];
|
|
46
|
+
}
|
|
26
47
|
export declare class CacheStatsResolver {
|
|
27
48
|
CacheStats(): CacheStatsGQL;
|
|
28
49
|
CacheStatsDetail(): CacheStatsDetailGQL;
|
|
50
|
+
/**
|
|
51
|
+
* What each engine in this server process holds — row counts, newest timestamps, a row-version
|
|
52
|
+
* hash, and engine-specific derived-state counts. Comparing the hashes across servers shows
|
|
53
|
+
* whether they converged; a derived count of zero next to a full array shows lost derived state.
|
|
54
|
+
*/
|
|
55
|
+
EngineStateCensus(engineClass?: string): EngineStateCensusGQL[];
|
|
29
56
|
}
|
|
30
57
|
export {};
|
|
31
58
|
//# sourceMappingURL=CacheStatsResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheStatsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/CacheStatsResolver.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"CacheStatsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/CacheStatsResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAiE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQrH,cACM,mBAAmB;IAErB,IAAI,EAAE,cAAc,CAAC;IAGrB,KAAK,EAAE,MAAM,CAAC;IAGd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,cACM,aAAa;IAEf,YAAY,EAAE,MAAM,CAAC;IAGrB,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAG9B,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,MAAM,CAAC;IAGf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,cACM,uBAAuB;IAEzB,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,cACM,mBAAoB,SAAQ,aAAa;IAE3C,eAAe,EAAE,uBAAuB,EAAE,CAAC;CAC9C;AAED,cACM,uBAAuB;IAEzB,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,kBAAkB,EAAE,OAAO,CAAC;IAG5B,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,cACM,qBAAqB;IAEvB,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,cACM,oBAAoB;IAEtB,WAAW,EAAE,MAAM,CAAC;IAGpB,MAAM,EAAE,OAAO,CAAC;IAGhB,qBAAqB,EAAE,OAAO,CAAC;IAG/B,UAAU,EAAE,uBAAuB,EAAE,CAAC;IAGtC,OAAO,EAAE,qBAAqB,EAAE,CAAC;CACpC;AA4ED,qBACa,kBAAkB;IAG3B,UAAU,IAAI,aAAa;IAO3B,gBAAgB,IAAI,mBAAmB;IAQvC;;;;OAIG;IAGH,iBAAiB,CACyC,WAAW,CAAC,EAAE,MAAM,GAC3E,oBAAoB,EAAE;CAG5B"}
|
|
@@ -7,8 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Arg, Field, Float, Int, ObjectType, Query, Resolver } from 'type-graphql';
|
|
14
|
+
import { BaseEngine, BaseEngineRegistry, LocalCacheManager } from '@memberjunction/core';
|
|
12
15
|
import { RequireSystemUser } from '../directives/index.js';
|
|
13
16
|
// ============================================================================
|
|
14
17
|
// GraphQL Object Types
|
|
@@ -97,9 +100,101 @@ __decorate([
|
|
|
97
100
|
CacheStatsDetailGQL = __decorate([
|
|
98
101
|
ObjectType()
|
|
99
102
|
], CacheStatsDetailGQL);
|
|
103
|
+
let EnginePropertyCensusGQL = class EnginePropertyCensusGQL {
|
|
104
|
+
};
|
|
105
|
+
__decorate([
|
|
106
|
+
Field(() => String),
|
|
107
|
+
__metadata("design:type", String)
|
|
108
|
+
], EnginePropertyCensusGQL.prototype, "PropertyName", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
Field(() => String, { nullable: true }),
|
|
111
|
+
__metadata("design:type", String)
|
|
112
|
+
], EnginePropertyCensusGQL.prototype, "EntityName", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
Field(() => String, { nullable: true }),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], EnginePropertyCensusGQL.prototype, "DatasetName", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
Field(() => Int),
|
|
119
|
+
__metadata("design:type", Number)
|
|
120
|
+
], EnginePropertyCensusGQL.prototype, "RowCount", void 0);
|
|
121
|
+
__decorate([
|
|
122
|
+
Field(() => String, { nullable: true }),
|
|
123
|
+
__metadata("design:type", String)
|
|
124
|
+
], EnginePropertyCensusGQL.prototype, "MaxUpdatedAt", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
Field(() => String, { nullable: true }),
|
|
127
|
+
__metadata("design:type", String)
|
|
128
|
+
], EnginePropertyCensusGQL.prototype, "IdentityHash", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
Field(() => Boolean),
|
|
131
|
+
__metadata("design:type", Boolean)
|
|
132
|
+
], EnginePropertyCensusGQL.prototype, "LoadedSuccessfully", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
Field(() => Boolean),
|
|
135
|
+
__metadata("design:type", Boolean)
|
|
136
|
+
], EnginePropertyCensusGQL.prototype, "PermissionDenied", void 0);
|
|
137
|
+
EnginePropertyCensusGQL = __decorate([
|
|
138
|
+
ObjectType()
|
|
139
|
+
], EnginePropertyCensusGQL);
|
|
140
|
+
let EngineDerivedCountGQL = class EngineDerivedCountGQL {
|
|
141
|
+
};
|
|
142
|
+
__decorate([
|
|
143
|
+
Field(() => String),
|
|
144
|
+
__metadata("design:type", String)
|
|
145
|
+
], EngineDerivedCountGQL.prototype, "Name", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
Field(() => Int),
|
|
148
|
+
__metadata("design:type", Number)
|
|
149
|
+
], EngineDerivedCountGQL.prototype, "Value", void 0);
|
|
150
|
+
EngineDerivedCountGQL = __decorate([
|
|
151
|
+
ObjectType()
|
|
152
|
+
], EngineDerivedCountGQL);
|
|
153
|
+
let EngineStateCensusGQL = class EngineStateCensusGQL {
|
|
154
|
+
};
|
|
155
|
+
__decorate([
|
|
156
|
+
Field(() => String),
|
|
157
|
+
__metadata("design:type", String)
|
|
158
|
+
], EngineStateCensusGQL.prototype, "EngineClass", void 0);
|
|
159
|
+
__decorate([
|
|
160
|
+
Field(() => Boolean),
|
|
161
|
+
__metadata("design:type", Boolean)
|
|
162
|
+
], EngineStateCensusGQL.prototype, "Loaded", void 0);
|
|
163
|
+
__decorate([
|
|
164
|
+
Field(() => Boolean),
|
|
165
|
+
__metadata("design:type", Boolean)
|
|
166
|
+
], EngineStateCensusGQL.prototype, "PermissionConstrained", void 0);
|
|
167
|
+
__decorate([
|
|
168
|
+
Field(() => [EnginePropertyCensusGQL]),
|
|
169
|
+
__metadata("design:type", Array)
|
|
170
|
+
], EngineStateCensusGQL.prototype, "Properties", void 0);
|
|
171
|
+
__decorate([
|
|
172
|
+
Field(() => [EngineDerivedCountGQL]),
|
|
173
|
+
__metadata("design:type", Array)
|
|
174
|
+
], EngineStateCensusGQL.prototype, "Derived", void 0);
|
|
175
|
+
EngineStateCensusGQL = __decorate([
|
|
176
|
+
ObjectType()
|
|
177
|
+
], EngineStateCensusGQL);
|
|
100
178
|
// ============================================================================
|
|
101
179
|
// Helpers (pure core)
|
|
102
180
|
// ============================================================================
|
|
181
|
+
function censusToGQL(census) {
|
|
182
|
+
const gql = new EngineStateCensusGQL();
|
|
183
|
+
gql.EngineClass = census.EngineClass;
|
|
184
|
+
gql.Loaded = census.Loaded;
|
|
185
|
+
gql.PermissionConstrained = census.PermissionConstrained;
|
|
186
|
+
gql.Properties = census.Properties.map(p => Object.assign(new EnginePropertyCensusGQL(), p));
|
|
187
|
+
gql.Derived = Object.entries(census.Derived).map(([Name, Value]) => Object.assign(new EngineDerivedCountGQL(), { Name, Value }));
|
|
188
|
+
return gql;
|
|
189
|
+
}
|
|
190
|
+
/** Census of every registered engine in this process, optionally narrowed to one class name. */
|
|
191
|
+
function buildEngineCensus(engineClass) {
|
|
192
|
+
return BaseEngineRegistry.Instance.GetAllEngines()
|
|
193
|
+
.filter((engine) => engine instanceof BaseEngine)
|
|
194
|
+
.filter(engine => !engineClass || engine.constructor.name === engineClass)
|
|
195
|
+
.map(engine => censusToGQL(engine.GetStateCensus()))
|
|
196
|
+
.sort((a, b) => a.EngineClass.localeCompare(b.EngineClass));
|
|
197
|
+
}
|
|
103
198
|
function toGQL(stats) {
|
|
104
199
|
const gql = new CacheStatsGQL();
|
|
105
200
|
gql.TotalEntries = stats.totalEntries;
|
|
@@ -159,6 +254,14 @@ let CacheStatsResolver = class CacheStatsResolver {
|
|
|
159
254
|
result.EntityBreakdown = buildEntityBreakdown();
|
|
160
255
|
return result;
|
|
161
256
|
}
|
|
257
|
+
/**
|
|
258
|
+
* What each engine in this server process holds — row counts, newest timestamps, a row-version
|
|
259
|
+
* hash, and engine-specific derived-state counts. Comparing the hashes across servers shows
|
|
260
|
+
* whether they converged; a derived count of zero next to a full array shows lost derived state.
|
|
261
|
+
*/
|
|
262
|
+
EngineStateCensus(engineClass) {
|
|
263
|
+
return buildEngineCensus(engineClass);
|
|
264
|
+
}
|
|
162
265
|
};
|
|
163
266
|
__decorate([
|
|
164
267
|
RequireSystemUser(),
|
|
@@ -174,6 +277,14 @@ __decorate([
|
|
|
174
277
|
__metadata("design:paramtypes", []),
|
|
175
278
|
__metadata("design:returntype", CacheStatsDetailGQL)
|
|
176
279
|
], CacheStatsResolver.prototype, "CacheStatsDetail", null);
|
|
280
|
+
__decorate([
|
|
281
|
+
RequireSystemUser(),
|
|
282
|
+
Query(() => [EngineStateCensusGQL]),
|
|
283
|
+
__param(0, Arg('EngineClass', () => String, { nullable: true })),
|
|
284
|
+
__metadata("design:type", Function),
|
|
285
|
+
__metadata("design:paramtypes", [String]),
|
|
286
|
+
__metadata("design:returntype", Array)
|
|
287
|
+
], CacheStatsResolver.prototype, "EngineStateCensus", null);
|
|
177
288
|
CacheStatsResolver = __decorate([
|
|
178
289
|
Resolver()
|
|
179
290
|
], CacheStatsResolver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheStatsResolver.js","sourceRoot":"","sources":["../../src/resolvers/CacheStatsResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CacheStatsResolver.js","sourceRoot":"","sources":["../../src/resolvers/CacheStatsResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,11 @@ export declare class ClientToolRequestResolver extends ResolverBase {
|
|
|
31
31
|
/**
|
|
32
32
|
* Client sends the result of executing a client tool back to the server.
|
|
33
33
|
* This resolves the pending Promise in ClientToolRequestManager so the
|
|
34
|
-
* agent loop can continue.
|
|
34
|
+
* agent loop can continue. `media` is an optional JSON array of images.
|
|
35
|
+
* When `media` fails validation or `result` is not valid JSON, the request
|
|
36
|
+
* resolves as a failed result.
|
|
35
37
|
*/
|
|
36
|
-
RespondToClientToolRequest(requestID: string, success: boolean, result: string | undefined, errorMessage: string | undefined, _context?: AppContext): Promise<boolean>;
|
|
38
|
+
RespondToClientToolRequest(requestID: string, success: boolean, result: string | undefined, errorMessage: string | undefined, media: string | undefined, _context?: AppContext): Promise<boolean>;
|
|
37
39
|
/**
|
|
38
40
|
* Client sends enriched tool definitions after running decorators.
|
|
39
41
|
* The server stores them per session for LLM prompt injection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientToolRequestResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ClientToolRequestResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAuD,oCAAoC,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientToolRequestResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ClientToolRequestResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAuD,oCAAoC,EAAE,MAAM,2BAA2B,CAAC;AAGtI,qBACa,6BAA6B;IAEtC,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAE9B,MAAM,EAAE,MAAM,CAAC;IAGf,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBACa,yBAA0B,SAAQ,YAAY;IACvD;;;;OAIG;IAOH,iBAAiB,CACL,YAAY,EAAE,oCAAoC,EACxC,UAAU,EAAE,MAAM,GACrC,6BAA6B;IAYhC;;;;;;OAMG;IAEG,0BAA0B,CACV,SAAS,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EACG,MAAM,EAAE,MAAM,GAAG,SAAS,EACpB,YAAY,EAAE,MAAM,GAAG,SAAS,EACvC,KAAK,EAAE,MAAM,GAAG,SAAS,EACpD,QAAQ,GAAE,UAA6B,GAC/C,OAAO,CAAC,OAAO,CAAC;IAkCnB;;;OAGG;IAEG,2BAA2B,CACX,SAAS,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACxB,QAAQ,GAAE,UAA6B,GAC/C,OAAO,CAAC,OAAO,CAAC;CAgBtB"}
|
|
@@ -24,6 +24,7 @@ import { Resolver, Subscription, Root, ObjectType, Field, Float, Mutation, Arg,
|
|
|
24
24
|
import { LogStatus, LogError } from '@memberjunction/core';
|
|
25
25
|
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
26
26
|
import { ClientToolRequestManager, CLIENT_TOOL_REQUEST_TOPIC } from '@memberjunction/ai-agents';
|
|
27
|
+
import { ParseClientToolMedia } from '@memberjunction/ai-core-plus';
|
|
27
28
|
let ClientToolRequestNotification = class ClientToolRequestNotification {
|
|
28
29
|
};
|
|
29
30
|
__decorate([
|
|
@@ -78,16 +79,27 @@ let ClientToolRequestResolver = class ClientToolRequestResolver extends Resolver
|
|
|
78
79
|
/**
|
|
79
80
|
* Client sends the result of executing a client tool back to the server.
|
|
80
81
|
* This resolves the pending Promise in ClientToolRequestManager so the
|
|
81
|
-
* agent loop can continue.
|
|
82
|
+
* agent loop can continue. `media` is an optional JSON array of images.
|
|
83
|
+
* When `media` fails validation or `result` is not valid JSON, the request
|
|
84
|
+
* resolves as a failed result.
|
|
82
85
|
*/
|
|
83
|
-
async RespondToClientToolRequest(requestID, success, result, errorMessage, _context = {}) {
|
|
86
|
+
async RespondToClientToolRequest(requestID, success, result, errorMessage, media, _context = {}) {
|
|
84
87
|
try {
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
const parsedMedia = ParseClientToolMedia(media);
|
|
89
|
+
// `=== true` narrows the union; this package compiles without strictNullChecks.
|
|
90
|
+
const found = ClientToolRequestManager.Instance.ReceiveResponse(parsedMedia.ok === true
|
|
91
|
+
? {
|
|
92
|
+
RequestID: requestID,
|
|
93
|
+
Success: success,
|
|
94
|
+
Result: result ? JSON.parse(result) : undefined,
|
|
95
|
+
ErrorMessage: errorMessage,
|
|
96
|
+
Media: parsedMedia.media.length ? parsedMedia.media : undefined
|
|
97
|
+
}
|
|
98
|
+
: {
|
|
99
|
+
RequestID: requestID,
|
|
100
|
+
Success: false,
|
|
101
|
+
ErrorMessage: `Client tool media rejected: ${parsedMedia.error}`
|
|
102
|
+
});
|
|
91
103
|
if (!found) {
|
|
92
104
|
LogError(`RespondToClientToolRequest: no pending request for ${requestID} (may have timed out)`);
|
|
93
105
|
}
|
|
@@ -96,6 +108,11 @@ let ClientToolRequestResolver = class ClientToolRequestResolver extends Resolver
|
|
|
96
108
|
catch (error) {
|
|
97
109
|
const msg = error instanceof Error ? error.message : String(error);
|
|
98
110
|
LogError(`RespondToClientToolRequest error: ${msg}`);
|
|
111
|
+
ClientToolRequestManager.Instance.ReceiveResponse({
|
|
112
|
+
RequestID: requestID,
|
|
113
|
+
Success: false,
|
|
114
|
+
ErrorMessage: `Client tool response rejected: ${msg}`
|
|
115
|
+
});
|
|
99
116
|
return false;
|
|
100
117
|
}
|
|
101
118
|
}
|
|
@@ -140,9 +157,10 @@ __decorate([
|
|
|
140
157
|
__param(1, Arg('success')),
|
|
141
158
|
__param(2, Arg('result', { nullable: true })),
|
|
142
159
|
__param(3, Arg('errorMessage', { nullable: true })),
|
|
143
|
-
__param(4,
|
|
160
|
+
__param(4, Arg('media', { nullable: true })),
|
|
161
|
+
__param(5, Ctx()),
|
|
144
162
|
__metadata("design:type", Function),
|
|
145
|
-
__metadata("design:paramtypes", [String, Boolean, String, String, Object]),
|
|
163
|
+
__metadata("design:paramtypes", [String, Boolean, String, String, String, Object]),
|
|
146
164
|
__metadata("design:returntype", Promise)
|
|
147
165
|
], ClientToolRequestResolver.prototype, "RespondToClientToolRequest", null);
|
|
148
166
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientToolRequestResolver.js","sourceRoot":"","sources":["../../src/resolvers/ClientToolRequestResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;;;;;;;;;;;;;AAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAE1G,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAwC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ClientToolRequestResolver.js","sourceRoot":"","sources":["../../src/resolvers/ClientToolRequestResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CompositeKey, DatabaseProviderBase
|
|
1
|
+
import { CompositeKey, DatabaseProviderBase } from '@memberjunction/core';
|
|
2
2
|
import { AppContext, UserPayload } from '../types.js';
|
|
3
3
|
import { CompositeKeyInputType } from '../generic/KeyInputOutputTypes.js';
|
|
4
4
|
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
@@ -17,34 +17,18 @@ export declare class EntityRecordNameResult {
|
|
|
17
17
|
* Resolves a record's display NAME from its primary key — the lookup behind every foreign-key
|
|
18
18
|
* link, breadcrumb and picker label in the UI.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* strips denied fields. Field-level security turned that latent gap into a live bypass — the
|
|
24
|
-
* form-field FK control falls through to this query precisely WHEN the joined display column is
|
|
25
|
-
* denied, so the one case the fallback exists for was the case that leaked.
|
|
20
|
+
* Entity-level read permission is checked here ({@link ResolverBase.CheckUserReadPermissions}).
|
|
21
|
+
* Field- and row-level security are applied by the provider's lookup, for the acting user passed
|
|
22
|
+
* to it: when any field the name is built from is withheld, it answers with no name.
|
|
26
23
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* A field-level denial answers `Success: false` with no name rather than throwing. Callers
|
|
32
|
-
* already treat "no name" as "show the primary key", which is the intended degradation — and it
|
|
33
|
-
* keeps this query from becoming a probe that distinguishes "restricted" from "missing".
|
|
24
|
+
* A withheld name answers `Success: false` with the same status as a record that does not exist.
|
|
25
|
+
* Callers already treat "no name" as "show the primary key", and the identical answer keeps this
|
|
26
|
+
* query from becoming a probe that distinguishes "restricted" from "missing".
|
|
34
27
|
*/
|
|
35
28
|
export declare class EntityRecordNameResolver extends ResolverBase {
|
|
36
29
|
GetEntityRecordName(EntityName: string, primaryKey: CompositeKey, { providers, userPayload }: AppContext): Promise<EntityRecordNameResult>;
|
|
37
30
|
GetEntityRecordNames(info: EntityRecordNameInput[], { providers, userPayload }: AppContext): Promise<EntityRecordNameResult[]>;
|
|
38
31
|
InnerGetEntityRecordName(md: DatabaseProviderBase, EntityName: string, primaryKey: CompositeKeyInputType, userPayload?: UserPayload): Promise<EntityRecordNameResult>;
|
|
39
|
-
/**
|
|
40
|
-
* Whether field security withholds this entity's NAME field from the user.
|
|
41
|
-
*
|
|
42
|
-
* Resolves the name field the same way the provider's own lookup does — the designated
|
|
43
|
-
* `IsNameField`, else a field literally called `Name` — so the check cannot drift from the
|
|
44
|
-
* value it is guarding. Fails OPEN only where field security does not apply at all (flag off,
|
|
45
|
-
* no user, no name field), matching every other FLS gate.
|
|
46
|
-
*/
|
|
47
|
-
protected IsNameFieldDeniedToUser(entity: EntityInfo, contextUser?: UserInfo): boolean;
|
|
48
32
|
}
|
|
49
33
|
export default EntityRecordNameResolver;
|
|
50
34
|
//# sourceMappingURL=EntityRecordNameResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRecordNameResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"EntityRecordNameResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAA0B,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,qBACa,qBAAqB;IAEhC,UAAU,EAAE,MAAM,CAAC;IAGnB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBACa,sBAAsB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,YAAY,CAAC;IAG3B,UAAU,EAAE,MAAM,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,qBACa,wBAAyB,SAAQ,YAAY;IAElD,mBAAmB,CACU,UAAU,EAAE,MAAM,EACD,UAAU,EAAE,YAAY,EACnE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,UAAU,GAC5C,OAAO,CAAC,sBAAsB,CAAC;IAQ5B,oBAAoB,CACoB,IAAI,EAAE,qBAAqB,EAAE,EAClE,EAAC,SAAS,EAAE,WAAW,EAAC,EAAE,UAAU,GAC1C,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAY9B,wBAAwB,CAC5B,EAAE,EAAE,oBAAoB,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,qBAAqB,EACjC,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,sBAAsB,CAAC;CAiBnC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { CompositeKey
|
|
13
|
+
import { CompositeKey } from '@memberjunction/core';
|
|
14
14
|
import { Arg, Ctx, Field, InputType, ObjectType, Query, Resolver } from 'type-graphql';
|
|
15
15
|
import { CompositeKeyInputType, CompositeKeyOutputType } from '../generic/KeyInputOutputTypes.js';
|
|
16
16
|
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
@@ -59,20 +59,13 @@ export { EntityRecordNameResult };
|
|
|
59
59
|
* Resolves a record's display NAME from its primary key — the lookup behind every foreign-key
|
|
60
60
|
* link, breadcrumb and picker label in the UI.
|
|
61
61
|
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* strips denied fields. Field-level security turned that latent gap into a live bypass — the
|
|
66
|
-
* form-field FK control falls through to this query precisely WHEN the joined display column is
|
|
67
|
-
* denied, so the one case the fallback exists for was the case that leaked.
|
|
62
|
+
* Entity-level read permission is checked here ({@link ResolverBase.CheckUserReadPermissions}).
|
|
63
|
+
* Field- and row-level security are applied by the provider's lookup, for the acting user passed
|
|
64
|
+
* to it: when any field the name is built from is withheld, it answers with no name.
|
|
68
65
|
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* A field-level denial answers `Success: false` with no name rather than throwing. Callers
|
|
74
|
-
* already treat "no name" as "show the primary key", which is the intended degradation — and it
|
|
75
|
-
* keeps this query from becoming a probe that distinguishes "restricted" from "missing".
|
|
66
|
+
* A withheld name answers `Success: false` with the same status as a record that does not exist.
|
|
67
|
+
* Callers already treat "no name" as "show the primary key", and the identical answer keeps this
|
|
68
|
+
* query from becoming a probe that distinguishes "restricted" from "missing".
|
|
76
69
|
*/
|
|
77
70
|
let EntityRecordNameResolver = class EntityRecordNameResolver extends ResolverBase {
|
|
78
71
|
async GetEntityRecordName(EntityName, primaryKey, { providers, userPayload }) {
|
|
@@ -96,26 +89,14 @@ let EntityRecordNameResolver = class EntityRecordNameResolver extends ResolverBa
|
|
|
96
89
|
const e = md.Entities.find((e) => e.Name === EntityName);
|
|
97
90
|
if (e) {
|
|
98
91
|
const contextUser = userPayload ? this.GetUserFromPayload(userPayload) : undefined;
|
|
99
|
-
|
|
100
|
-
LogDebug(`[FieldSecurity] Suppressed GetEntityRecordName for '${EntityName}': ` +
|
|
101
|
-
`the name field is not readable by this user`);
|
|
102
|
-
return {
|
|
103
|
-
Success: false,
|
|
104
|
-
Status: `Name for record, or record ${pk.ToString()} itself not found, could be an access issue`,
|
|
105
|
-
CompositeKey: pk,
|
|
106
|
-
EntityName,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
// Pass the acting user through: the provider signature accepts it, and omitting it ran the
|
|
110
|
-
// underlying lookup with no identity at all — so row-level security had nothing to filter on
|
|
111
|
-
// either. The field-level gate above is the column half; this is the row half.
|
|
92
|
+
// The acting user is what field- and row-level security are applied for.
|
|
112
93
|
const recordName = await md.GetEntityRecordName(e.Name, pk, contextUser);
|
|
113
94
|
if (recordName)
|
|
114
95
|
return { Success: true, Status: 'OK', CompositeKey: pk, RecordName: recordName, EntityName };
|
|
115
96
|
else
|
|
116
97
|
return {
|
|
117
98
|
Success: false,
|
|
118
|
-
Status: `Name for record, or record ${pk.ToString()} itself not found, could be an access issue
|
|
99
|
+
Status: `Name for record, or record ${pk.ToString()} itself not found, could be an access issue`,
|
|
119
100
|
CompositeKey: pk,
|
|
120
101
|
EntityName,
|
|
121
102
|
};
|
|
@@ -123,25 +104,6 @@ let EntityRecordNameResolver = class EntityRecordNameResolver extends ResolverBa
|
|
|
123
104
|
else
|
|
124
105
|
return { Success: false, Status: `Entity ${EntityName} not found`, CompositeKey: pk, EntityName };
|
|
125
106
|
}
|
|
126
|
-
/**
|
|
127
|
-
* Whether field security withholds this entity's NAME field from the user.
|
|
128
|
-
*
|
|
129
|
-
* Resolves the name field the same way the provider's own lookup does — the designated
|
|
130
|
-
* `IsNameField`, else a field literally called `Name` — so the check cannot drift from the
|
|
131
|
-
* value it is guarding. Fails OPEN only where field security does not apply at all (flag off,
|
|
132
|
-
* no user, no name field), matching every other FLS gate.
|
|
133
|
-
*/
|
|
134
|
-
IsNameFieldDeniedToUser(entity, contextUser) {
|
|
135
|
-
if (!entity?.EnableFieldLevelSecurity || !contextUser) {
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
const nameField = entity.Fields?.find(f => f.IsNameField) ??
|
|
139
|
-
entity.Fields?.find(f => f.Name?.trim().toLowerCase() === 'name');
|
|
140
|
-
if (!nameField) {
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
return entity.GetDeniedReadFields(contextUser).has(nameField.Name.trim().toLowerCase());
|
|
144
|
-
}
|
|
145
107
|
};
|
|
146
108
|
__decorate([
|
|
147
109
|
Query(() => EntityRecordNameResult),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityRecordNameResolver.js","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"EntityRecordNameResolver.js","sourceRoot":"","sources":["../../src/resolvers/EntityRecordNameResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export declare class FetchEntityVectorsResult {
|
|
|
13
13
|
ErrorMessage?: string;
|
|
14
14
|
}
|
|
15
15
|
export declare class FetchEntityVectorsResolver extends ResolverBase {
|
|
16
|
-
FetchEntityVectors(entityDocumentID: string, maxRecords: number | undefined, filter: string | undefined, { userPayload }?: AppContext): Promise<FetchEntityVectorsResult>;
|
|
16
|
+
FetchEntityVectors(entityDocumentID: string, maxRecords: number | undefined, filter: string | undefined, { userPayload, providers }?: AppContext): Promise<FetchEntityVectorsResult>;
|
|
17
17
|
/** Load EntityDocument by ID */
|
|
18
18
|
private loadEntityDocument;
|
|
19
19
|
/**
|
|
@@ -24,6 +24,17 @@ export declare class FetchEntityVectorsResolver extends ResolverBase {
|
|
|
24
24
|
private resolveVectorIndex;
|
|
25
25
|
/** Create a VectorDBBase provider instance for a given VectorIndex */
|
|
26
26
|
private createVectorDBInstance;
|
|
27
|
+
/**
|
|
28
|
+
* Load the vectors an EntityDocument stored in MJ (`MJ: Entity Record Documents.VectorJSON`),
|
|
29
|
+
* restricted to the entity records that pass `filter`. Each item's metadata carries the entity
|
|
30
|
+
* name, the record ID and the record's name fields, which is what the cluster view labels from.
|
|
31
|
+
*/
|
|
32
|
+
private fetchStoredVectors;
|
|
33
|
+
/**
|
|
34
|
+
* Map each record that passes `filter` to its name-field values, keyed by the same compact
|
|
35
|
+
* record-ID form the vector sync writes to `MJ: Entity Record Documents.RecordID` (lower-cased).
|
|
36
|
+
*/
|
|
37
|
+
private loadRecordLabels;
|
|
27
38
|
private errorResult;
|
|
28
39
|
}
|
|
29
40
|
//# sourceMappingURL=FetchEntityVectorsResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FetchEntityVectorsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"FetchEntityVectorsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAS1D,qBACa,gBAAgB;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,MAAM,EAAE,MAAM,EAAE,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,qBACa,0BAA2B,SAAQ,YAAY;IAGlD,kBAAkB,CACK,gBAAgB,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,EACtD,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,UAA6B,GACjE,OAAO,CAAC,wBAAwB,CAAC;IAiGpC,gCAAgC;YAClB,kBAAkB;IAiBhC;;;;OAIG;YACW,kBAAkB;IAsChC,sEAAsE;YACxD,sBAAsB;IA4BpC;;;;OAIG;YACW,kBAAkB;IAuChC;;;OAGG;YACW,gBAAgB;IAmC9B,OAAO,CAAC,WAAW;CAStB"}
|