@carlonicora/nextjs-jsonapi 1.113.0 → 1.115.0
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/dist/{AssistantInterface-B1c8FhGA.d.mts → AssistantInterface-B56qznuH.d.mts} +2 -0
- package/dist/{AssistantInterface-BBUHxOCd.d.ts → AssistantInterface-CHiJIYDY.d.ts} +2 -0
- package/dist/{AssistantMessageInterface-DrgHDjZ5.d.mts → AssistantMessageInterface-BuUZFkE5.d.mts} +16 -1
- package/dist/{AssistantMessageInterface-BNzf1etU.d.ts → AssistantMessageInterface-CQwh5tEb.d.ts} +16 -1
- package/dist/{BlockNoteEditor-DOAPXS7S.js → BlockNoteEditor-V74ICZY3.js} +19 -19
- package/dist/{BlockNoteEditor-DOAPXS7S.js.map → BlockNoteEditor-V74ICZY3.js.map} +1 -1
- package/dist/{BlockNoteEditor-F3HSL4LX.mjs → BlockNoteEditor-Z3EKI3C6.mjs} +4 -4
- package/dist/billing/index.js +346 -346
- package/dist/billing/index.mjs +3 -3
- package/dist/{chunk-6XWW67F2.js → chunk-3MUBMSDD.js} +7 -7
- package/dist/{chunk-6XWW67F2.js.map → chunk-3MUBMSDD.js.map} +1 -1
- package/dist/{chunk-UBFVV2DA.js → chunk-6LSGIJ5W.js} +881 -826
- package/dist/chunk-6LSGIJ5W.js.map +1 -0
- package/dist/{chunk-CI36BXIG.mjs → chunk-BKKVLD42.mjs} +75 -20
- package/dist/chunk-BKKVLD42.mjs.map +1 -0
- package/dist/{chunk-U2HR57MY.js → chunk-J3DFHESB.js} +79 -28
- package/dist/chunk-J3DFHESB.js.map +1 -0
- package/dist/{chunk-CWVYU4YZ.mjs → chunk-SJRSR3AF.mjs} +2 -2
- package/dist/{chunk-ZYPNVEHB.mjs → chunk-UBBTQUFB.mjs} +56 -5
- package/dist/chunk-UBBTQUFB.mjs.map +1 -0
- package/dist/client/index.js +4 -4
- package/dist/client/index.mjs +3 -3
- package/dist/components/index.d.mts +24 -7
- package/dist/components/index.d.ts +24 -7
- package/dist/components/index.js +4 -4
- package/dist/components/index.mjs +3 -3
- package/dist/contexts/index.d.mts +7 -2
- package/dist/contexts/index.d.ts +7 -2
- package/dist/contexts/index.js +4 -4
- package/dist/contexts/index.mjs +3 -3
- package/dist/core/index.d.mts +28 -6
- package/dist/core/index.d.ts +28 -6
- package/dist/core/index.js +2 -2
- package/dist/core/index.mjs +1 -1
- package/dist/features/help/index.js +36 -36
- package/dist/features/help/index.mjs +3 -3
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/index.mjs +2 -2
- package/dist/{s3.service-0BTClOYO.d.mts → s3.service-CAL5dhGG.d.mts} +3 -0
- package/dist/{s3.service-CT27Fm1s.d.ts → s3.service-COLYvcW2.d.ts} +3 -0
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +3 -3
- package/dist/server/index.mjs +1 -1
- package/package.json +1 -1
- package/src/core/abstracts/AbstractService.ts +6 -3
- package/src/features/assistant/components/containers/AssistantContainer.tsx +18 -2
- package/src/features/assistant/components/parts/AssistantEmptyState.tsx +22 -1
- package/src/features/assistant/components/parts/AssistantThread.tsx +12 -1
- package/src/features/assistant/contexts/AssistantContext.tsx +42 -9
- package/src/features/assistant/contexts/__tests__/AssistantContext.spec.tsx +94 -3
- package/src/features/assistant/data/Assistant.ts +6 -0
- package/src/features/assistant/data/AssistantInterface.ts +2 -0
- package/src/features/assistant/data/AssistantService.ts +38 -0
- package/src/features/assistant/data/__tests__/Assistant.spec.ts +30 -0
- package/src/features/assistant-message/AssistantMessageModule.ts +2 -0
- package/src/features/assistant-message/components/MessageItem.tsx +26 -4
- package/src/features/assistant-message/components/MessageList.tsx +4 -2
- package/src/features/assistant-message/data/AssistantMessage.ts +21 -1
- package/src/features/assistant-message/data/AssistantMessageInterface.ts +16 -0
- package/dist/chunk-CI36BXIG.mjs.map +0 -1
- package/dist/chunk-U2HR57MY.js.map +0 -1
- package/dist/chunk-UBFVV2DA.js.map +0 -1
- package/dist/chunk-ZYPNVEHB.mjs.map +0 -1
- /package/dist/{BlockNoteEditor-F3HSL4LX.mjs.map → BlockNoteEditor-Z3EKI3C6.mjs.map} +0 -0
- /package/dist/{chunk-CWVYU4YZ.mjs.map → chunk-SJRSR3AF.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunk3MUBMSDDjs = require('./chunk-3MUBMSDD.js');
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -199,7 +199,7 @@ var _chunk6XWW67F2js = require('./chunk-6XWW67F2.js');
|
|
|
199
199
|
|
|
200
200
|
|
|
201
201
|
|
|
202
|
-
var
|
|
202
|
+
var _chunkJ3DFHESBjs = require('./chunk-J3DFHESB.js');
|
|
203
203
|
require('./chunk-LXKSUWAV.js');
|
|
204
204
|
require('./chunk-IBS6NI7D.js');
|
|
205
205
|
|
|
@@ -423,5 +423,5 @@ require('./chunk-7QVYU63E.js');
|
|
|
423
423
|
|
|
424
424
|
|
|
425
425
|
|
|
426
|
-
exports.ACTION_TYPES = _chunk6XWW67F2js.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkU2HR57MYjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkU2HR57MYjs.AbstractApiData; exports.AbstractService = _chunkU2HR57MYjs.AbstractService; exports.Action = _chunkU2HR57MYjs.Action; exports.Assistant = _chunkU2HR57MYjs.Assistant; exports.AssistantMessage = _chunkU2HR57MYjs.AssistantMessage; exports.AssistantMessageModule = _chunkU2HR57MYjs.AssistantMessageModule; exports.AssistantMessageService = _chunkU2HR57MYjs.AssistantMessageService; exports.AssistantModule = _chunkU2HR57MYjs.AssistantModule; exports.AssistantService = _chunkU2HR57MYjs.AssistantService; exports.AuditLog = _chunkU2HR57MYjs.AuditLog; exports.AuditLogModule = _chunkU2HR57MYjs.AuditLogModule; exports.AuditLogService = _chunkU2HR57MYjs.AuditLogService; exports.Auth = _chunkU2HR57MYjs.Auth; exports.AuthComponent = _chunkU2HR57MYjs.AuthComponent; exports.AuthModule = _chunkU2HR57MYjs.AuthModule; exports.AuthService = _chunkU2HR57MYjs.AuthService; exports.AuthorModule = _chunkU2HR57MYjs.AuthorModule; exports.BackupCodeVerify = _chunkU2HR57MYjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkU2HR57MYjs.BackupCodeVerifyModule; exports.Billing = _chunkU2HR57MYjs.Billing; exports.BillingModule = _chunkU2HR57MYjs.BillingModule; exports.BillingService = _chunkU2HR57MYjs.BillingService; exports.BlockNoteDiffUtil = _chunkU2HR57MYjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkU2HR57MYjs.BlockNoteWordDiffRendererUtil; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunk6XWW67F2js.COMPANY_ADMINISTRATOR_ROLE_ID; exports.Chunk = _chunkU2HR57MYjs.Chunk; exports.ChunkModule = _chunkU2HR57MYjs.ChunkModule; exports.ClientAbstractService = _chunkU2HR57MYjs.ClientAbstractService; exports.ClientHttpMethod = _chunkU2HR57MYjs.ClientHttpMethod; exports.Company = _chunkU2HR57MYjs.Company; exports.CompanyFields = _chunkU2HR57MYjs.CompanyFields; exports.CompanyModule = _chunkU2HR57MYjs.CompanyModule; exports.CompanyService = _chunkU2HR57MYjs.CompanyService; exports.Content = _chunkU2HR57MYjs.Content; exports.ContentFields = _chunkU2HR57MYjs.ContentFields; exports.ContentModule = _chunkU2HR57MYjs.ContentModule; exports.ContentService = _chunkU2HR57MYjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkU2HR57MYjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkJ5LROFGLjs.DataClassRegistry; exports.DataClassRegistry = _chunkJ5LROFGLjs.DataClassRegistry; exports.EndpointCreator = _chunkU2HR57MYjs.EndpointCreator; exports.Feature = _chunkU2HR57MYjs.Feature; exports.FeatureModule = _chunkU2HR57MYjs.FeatureModule; exports.FeatureService = _chunkU2HR57MYjs.FeatureService; exports.HowTo = _chunkU2HR57MYjs.HowTo; exports.HowToFields = _chunkU2HR57MYjs.HowToFields; exports.HowToModule = _chunkU2HR57MYjs.HowToModule; exports.HowToService = _chunkU2HR57MYjs.HowToService; exports.HttpMethod = _chunkU2HR57MYjs.HttpMethod; exports.InvoiceStatus = _chunkU2HR57MYjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkJ5LROFGLjs.JsonApiDataFactory; exports.Module = _chunkU2HR57MYjs.Module; exports.ModuleModule = _chunkU2HR57MYjs.ModuleModule; exports.ModulePaths = _chunkU2HR57MYjs.ModulePaths; exports.ModulePathsModule = _chunkU2HR57MYjs.ModulePathsModule; exports.ModuleRegistrar = _chunkU2HR57MYjs.ModuleRegistrar; exports.ModuleRegistry = _chunkU2HR57MYjs.ModuleRegistry; exports.Modules = _chunkU2HR57MYjs.Modules; exports.Notification = _chunkU2HR57MYjs.Notification; exports.NotificationFields = _chunkU2HR57MYjs.NotificationFields; exports.NotificationModule = _chunkU2HR57MYjs.NotificationModule; exports.NotificationService = _chunkU2HR57MYjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkU2HR57MYjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkU2HR57MYjs.OAuthClient; exports.OAuthModule = _chunkU2HR57MYjs.OAuthModule; exports.OAuthService = _chunkU2HR57MYjs.OAuthService; exports.Passkey = _chunkU2HR57MYjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkU2HR57MYjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkU2HR57MYjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkU2HR57MYjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkU2HR57MYjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkU2HR57MYjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkU2HR57MYjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkU2HR57MYjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkU2HR57MYjs.PasskeyRename; exports.PasskeyRenameModule = _chunkU2HR57MYjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkU2HR57MYjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkU2HR57MYjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkU2HR57MYjs.PaymentMethod; exports.PermissionMapping = _chunkU2HR57MYjs.PermissionMapping; exports.PermissionMappingModule = _chunkU2HR57MYjs.PermissionMappingModule; exports.Push = _chunkU2HR57MYjs.Push; exports.PushModule = _chunkU2HR57MYjs.PushModule; exports.PushService = _chunkU2HR57MYjs.PushService; exports.RbacMatrixModel = _chunkU2HR57MYjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkU2HR57MYjs.RbacMatrixModule; exports.RbacService = _chunk6XWW67F2js.RbacService; exports.ReferralModule = _chunkU2HR57MYjs.ReferralModule; exports.ReferralService = _chunkU2HR57MYjs.ReferralService; exports.ReferralStats = _chunkU2HR57MYjs.ReferralStats; exports.ReferralStatsModule = _chunkU2HR57MYjs.ReferralStatsModule; exports.RehydrationFactory = _chunkU2HR57MYjs.RehydrationFactory; exports.Role = _chunkU2HR57MYjs.Role; exports.RoleFields = _chunkU2HR57MYjs.RoleFields; exports.RoleModule = _chunkU2HR57MYjs.RoleModule; exports.RoleService = _chunkU2HR57MYjs.RoleService; exports.S3 = _chunkU2HR57MYjs.S3; exports.S3Module = _chunkU2HR57MYjs.S3Module; exports.S3Service = _chunkU2HR57MYjs.S3Service; exports.StripeCustomer = _chunkU2HR57MYjs.StripeCustomer; exports.StripeCustomerModule = _chunkU2HR57MYjs.StripeCustomerModule; exports.StripeCustomerService = _chunkU2HR57MYjs.StripeCustomerService; exports.StripeInvoice = _chunkU2HR57MYjs.StripeInvoice; exports.StripeInvoiceModule = _chunkU2HR57MYjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkU2HR57MYjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkU2HR57MYjs.StripePaymentMethodModule; exports.StripePrice = _chunkU2HR57MYjs.StripePrice; exports.StripePriceModule = _chunkU2HR57MYjs.StripePriceModule; exports.StripePriceService = _chunkU2HR57MYjs.StripePriceService; exports.StripeProduct = _chunkU2HR57MYjs.StripeProduct; exports.StripeProductModule = _chunkU2HR57MYjs.StripeProductModule; exports.StripeProductService = _chunkU2HR57MYjs.StripeProductService; exports.StripePromotionCode = _chunkU2HR57MYjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkU2HR57MYjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkU2HR57MYjs.StripePromotionCodeService; exports.StripeSubscription = _chunkU2HR57MYjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkU2HR57MYjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkU2HR57MYjs.StripeSubscriptionService; exports.StripeUsage = _chunkU2HR57MYjs.StripeUsage; exports.StripeUsageModule = _chunkU2HR57MYjs.StripeUsageModule; exports.StripeUsageService = _chunkU2HR57MYjs.StripeUsageService; exports.SubscriptionStatus = _chunkU2HR57MYjs.SubscriptionStatus; exports.TableOptions = _chunkU2HR57MYjs.TableOptions; exports.TotpAuthenticator = _chunkU2HR57MYjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkU2HR57MYjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkU2HR57MYjs.TotpSetup; exports.TotpSetupModule = _chunkU2HR57MYjs.TotpSetupModule; exports.TotpVerify = _chunkU2HR57MYjs.TotpVerify; exports.TotpVerifyLogin = _chunkU2HR57MYjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkU2HR57MYjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkU2HR57MYjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkU2HR57MYjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkU2HR57MYjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkU2HR57MYjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkU2HR57MYjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkU2HR57MYjs.TwoFactorService; exports.TwoFactorStatus = _chunkU2HR57MYjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkU2HR57MYjs.TwoFactorStatusModule; exports.User = _chunkU2HR57MYjs.User; exports.UserFields = _chunkU2HR57MYjs.UserFields; exports.UserModule = _chunkU2HR57MYjs.UserModule; exports.UserService = _chunkU2HR57MYjs.UserService; exports.Waitlist = _chunkU2HR57MYjs.Waitlist; exports.WaitlistModule = _chunkU2HR57MYjs.WaitlistModule; exports.WaitlistService = _chunkU2HR57MYjs.WaitlistService; exports.WaitlistStats = _chunkU2HR57MYjs.WaitlistStats; exports.WaitlistStatsModule = _chunkU2HR57MYjs.WaitlistStatsModule; exports.checkPermissions = _chunkU2HR57MYjs.checkPermissions; exports.checkPermissionsFromServer = _chunkU2HR57MYjs.checkPermissionsFromServer; exports.clearLastApiTotal = _chunkU2HR57MYjs.clearLastApiTotal; exports.cn = _chunkU2HR57MYjs.cn; exports.composeRefs = _chunkU2HR57MYjs.composeRefs; exports.configureAuth = _chunkU2HR57MYjs.configureAuth; exports.configureI18n = _chunk6XWW67F2js.configureI18n; exports.configureJsonApi = _chunk6XWW67F2js.configureJsonApi; exports.configureLogin = _chunk6XWW67F2js.configureLogin; exports.configureReferral = _chunk6XWW67F2js.configureReferral; exports.configureRoles = _chunk6XWW67F2js.configureRoles; exports.configureWaitlist = _chunk6XWW67F2js.configureWaitlist; exports.createJsonApiInclusion = _chunkU2HR57MYjs.createJsonApiInclusion; exports.dismissToast = _chunkU2HR57MYjs.dismissToast; exports.entityObjectSchema = _chunkU2HR57MYjs.entityObjectSchema; exports.exists = _chunkU2HR57MYjs.exists; exports.formatDate = _chunkU2HR57MYjs.formatDate; exports.formatLocalDate = _chunkU2HR57MYjs.formatLocalDate; exports.getApiUrl = _chunk6XWW67F2js.getApiUrl; exports.getAppUrl = _chunk6XWW67F2js.getAppUrl; exports.getBootstrapper = _chunkJ5LROFGLjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkU2HR57MYjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkU2HR57MYjs.getGlobalErrorHandler; exports.getIcon = _chunkU2HR57MYjs.getIcon; exports.getIconByModule = _chunkU2HR57MYjs.getIconByModule; exports.getIconByModuleName = _chunkU2HR57MYjs.getIconByModuleName; exports.getInitials = _chunkU2HR57MYjs.getInitials; exports.getLastApiTotal = _chunkU2HR57MYjs.getLastApiTotal; exports.getLucideIcon = _chunkU2HR57MYjs.getLucideIcon; exports.getLucideIconByModule = _chunkU2HR57MYjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkU2HR57MYjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunk6XWW67F2js.getPublicApiUrl; exports.getReferralConfig = _chunk6XWW67F2js.getReferralConfig; exports.getRoleId = _chunk6XWW67F2js.getRoleId; exports.getStripePublishableKey = _chunk6XWW67F2js.getStripePublishableKey; exports.getTableComponents = _chunkU2HR57MYjs.getTableComponents; exports.getTableOptions = _chunkU2HR57MYjs.getTableOptions; exports.getTokenHandler = _chunkU2HR57MYjs.getTokenHandler; exports.getTrackablePages = _chunk6XWW67F2js.getTrackablePages; exports.getValueFromPath = _chunkU2HR57MYjs.getValueFromPath; exports.getWaitlistConfig = _chunk6XWW67F2js.getWaitlistConfig; exports.hasBootstrapper = _chunkJ5LROFGLjs.hasBootstrapper; exports.isReferralEnabled = _chunk6XWW67F2js.isReferralEnabled; exports.isRolesConfigured = _chunk6XWW67F2js.isRolesConfigured; exports.rehydrate = _chunkU2HR57MYjs.rehydrate; exports.rehydrateList = _chunkU2HR57MYjs.rehydrateList; exports.resetBootstrapStore = _chunkJ5LROFGLjs.resetBootstrapStore; exports.setBootstrapper = _chunkJ5LROFGLjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkU2HR57MYjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkU2HR57MYjs.setGlobalErrorHandler; exports.showCustomToast = _chunkU2HR57MYjs.showCustomToast; exports.showError = _chunkU2HR57MYjs.showError; exports.showToast = _chunkU2HR57MYjs.showToast; exports.translateData = _chunkJ5LROFGLjs.translateData; exports.translateResponse = _chunkJ5LROFGLjs.translateResponse; exports.tryBootstrap = _chunkJ5LROFGLjs.tryBootstrap; exports.useComposedRefs = _chunkU2HR57MYjs.useComposedRefs; exports.useIsMobile = _chunkU2HR57MYjs.useIsMobile; exports.userObjectSchema = _chunkU2HR57MYjs.userObjectSchema;
|
|
426
|
+
exports.ACTION_TYPES = _chunk3MUBMSDDjs.ACTION_TYPES; exports.AVAILABLE_OAUTH_SCOPES = _chunkJ3DFHESBjs.AVAILABLE_OAUTH_SCOPES; exports.AbstractApiData = _chunkJ3DFHESBjs.AbstractApiData; exports.AbstractService = _chunkJ3DFHESBjs.AbstractService; exports.Action = _chunkJ3DFHESBjs.Action; exports.Assistant = _chunkJ3DFHESBjs.Assistant; exports.AssistantMessage = _chunkJ3DFHESBjs.AssistantMessage; exports.AssistantMessageModule = _chunkJ3DFHESBjs.AssistantMessageModule; exports.AssistantMessageService = _chunkJ3DFHESBjs.AssistantMessageService; exports.AssistantModule = _chunkJ3DFHESBjs.AssistantModule; exports.AssistantService = _chunkJ3DFHESBjs.AssistantService; exports.AuditLog = _chunkJ3DFHESBjs.AuditLog; exports.AuditLogModule = _chunkJ3DFHESBjs.AuditLogModule; exports.AuditLogService = _chunkJ3DFHESBjs.AuditLogService; exports.Auth = _chunkJ3DFHESBjs.Auth; exports.AuthComponent = _chunkJ3DFHESBjs.AuthComponent; exports.AuthModule = _chunkJ3DFHESBjs.AuthModule; exports.AuthService = _chunkJ3DFHESBjs.AuthService; exports.AuthorModule = _chunkJ3DFHESBjs.AuthorModule; exports.BackupCodeVerify = _chunkJ3DFHESBjs.BackupCodeVerify; exports.BackupCodeVerifyModule = _chunkJ3DFHESBjs.BackupCodeVerifyModule; exports.Billing = _chunkJ3DFHESBjs.Billing; exports.BillingModule = _chunkJ3DFHESBjs.BillingModule; exports.BillingService = _chunkJ3DFHESBjs.BillingService; exports.BlockNoteDiffUtil = _chunkJ3DFHESBjs.BlockNoteDiffUtil; exports.BlockNoteWordDiffRendererUtil = _chunkJ3DFHESBjs.BlockNoteWordDiffRendererUtil; exports.COMPANY_ADMINISTRATOR_ROLE_ID = _chunk3MUBMSDDjs.COMPANY_ADMINISTRATOR_ROLE_ID; exports.Chunk = _chunkJ3DFHESBjs.Chunk; exports.ChunkModule = _chunkJ3DFHESBjs.ChunkModule; exports.ClientAbstractService = _chunkJ3DFHESBjs.ClientAbstractService; exports.ClientHttpMethod = _chunkJ3DFHESBjs.ClientHttpMethod; exports.Company = _chunkJ3DFHESBjs.Company; exports.CompanyFields = _chunkJ3DFHESBjs.CompanyFields; exports.CompanyModule = _chunkJ3DFHESBjs.CompanyModule; exports.CompanyService = _chunkJ3DFHESBjs.CompanyService; exports.Content = _chunkJ3DFHESBjs.Content; exports.ContentFields = _chunkJ3DFHESBjs.ContentFields; exports.ContentModule = _chunkJ3DFHESBjs.ContentModule; exports.ContentService = _chunkJ3DFHESBjs.ContentService; exports.DEFAULT_GRANT_TYPES = _chunkJ3DFHESBjs.DEFAULT_GRANT_TYPES; exports.DataClass = _chunkJ5LROFGLjs.DataClassRegistry; exports.DataClassRegistry = _chunkJ5LROFGLjs.DataClassRegistry; exports.EndpointCreator = _chunkJ3DFHESBjs.EndpointCreator; exports.Feature = _chunkJ3DFHESBjs.Feature; exports.FeatureModule = _chunkJ3DFHESBjs.FeatureModule; exports.FeatureService = _chunkJ3DFHESBjs.FeatureService; exports.HowTo = _chunkJ3DFHESBjs.HowTo; exports.HowToFields = _chunkJ3DFHESBjs.HowToFields; exports.HowToModule = _chunkJ3DFHESBjs.HowToModule; exports.HowToService = _chunkJ3DFHESBjs.HowToService; exports.HttpMethod = _chunkJ3DFHESBjs.HttpMethod; exports.InvoiceStatus = _chunkJ3DFHESBjs.InvoiceStatus; exports.JsonApiDataFactory = _chunkJ5LROFGLjs.JsonApiDataFactory; exports.Module = _chunkJ3DFHESBjs.Module; exports.ModuleModule = _chunkJ3DFHESBjs.ModuleModule; exports.ModulePaths = _chunkJ3DFHESBjs.ModulePaths; exports.ModulePathsModule = _chunkJ3DFHESBjs.ModulePathsModule; exports.ModuleRegistrar = _chunkJ3DFHESBjs.ModuleRegistrar; exports.ModuleRegistry = _chunkJ3DFHESBjs.ModuleRegistry; exports.Modules = _chunkJ3DFHESBjs.Modules; exports.Notification = _chunkJ3DFHESBjs.Notification; exports.NotificationFields = _chunkJ3DFHESBjs.NotificationFields; exports.NotificationModule = _chunkJ3DFHESBjs.NotificationModule; exports.NotificationService = _chunkJ3DFHESBjs.NotificationService; exports.OAUTH_SCOPE_DISPLAY = _chunkJ3DFHESBjs.OAUTH_SCOPE_DISPLAY; exports.OAuthClient = _chunkJ3DFHESBjs.OAuthClient; exports.OAuthModule = _chunkJ3DFHESBjs.OAuthModule; exports.OAuthService = _chunkJ3DFHESBjs.OAuthService; exports.Passkey = _chunkJ3DFHESBjs.Passkey; exports.PasskeyAuthenticationOptions = _chunkJ3DFHESBjs.PasskeyAuthenticationOptions; exports.PasskeyAuthenticationOptionsModule = _chunkJ3DFHESBjs.PasskeyAuthenticationOptionsModule; exports.PasskeyModule = _chunkJ3DFHESBjs.PasskeyModule; exports.PasskeyRegistrationOptions = _chunkJ3DFHESBjs.PasskeyRegistrationOptions; exports.PasskeyRegistrationOptionsModule = _chunkJ3DFHESBjs.PasskeyRegistrationOptionsModule; exports.PasskeyRegistrationVerify = _chunkJ3DFHESBjs.PasskeyRegistrationVerify; exports.PasskeyRegistrationVerifyModule = _chunkJ3DFHESBjs.PasskeyRegistrationVerifyModule; exports.PasskeyRename = _chunkJ3DFHESBjs.PasskeyRename; exports.PasskeyRenameModule = _chunkJ3DFHESBjs.PasskeyRenameModule; exports.PasskeyVerifyLogin = _chunkJ3DFHESBjs.PasskeyVerifyLogin; exports.PasskeyVerifyLoginModule = _chunkJ3DFHESBjs.PasskeyVerifyLoginModule; exports.PaymentMethod = _chunkJ3DFHESBjs.PaymentMethod; exports.PermissionMapping = _chunkJ3DFHESBjs.PermissionMapping; exports.PermissionMappingModule = _chunkJ3DFHESBjs.PermissionMappingModule; exports.Push = _chunkJ3DFHESBjs.Push; exports.PushModule = _chunkJ3DFHESBjs.PushModule; exports.PushService = _chunkJ3DFHESBjs.PushService; exports.RbacMatrixModel = _chunkJ3DFHESBjs.RbacMatrixModel; exports.RbacMatrixModule = _chunkJ3DFHESBjs.RbacMatrixModule; exports.RbacService = _chunk3MUBMSDDjs.RbacService; exports.ReferralModule = _chunkJ3DFHESBjs.ReferralModule; exports.ReferralService = _chunkJ3DFHESBjs.ReferralService; exports.ReferralStats = _chunkJ3DFHESBjs.ReferralStats; exports.ReferralStatsModule = _chunkJ3DFHESBjs.ReferralStatsModule; exports.RehydrationFactory = _chunkJ3DFHESBjs.RehydrationFactory; exports.Role = _chunkJ3DFHESBjs.Role; exports.RoleFields = _chunkJ3DFHESBjs.RoleFields; exports.RoleModule = _chunkJ3DFHESBjs.RoleModule; exports.RoleService = _chunkJ3DFHESBjs.RoleService; exports.S3 = _chunkJ3DFHESBjs.S3; exports.S3Module = _chunkJ3DFHESBjs.S3Module; exports.S3Service = _chunkJ3DFHESBjs.S3Service; exports.StripeCustomer = _chunkJ3DFHESBjs.StripeCustomer; exports.StripeCustomerModule = _chunkJ3DFHESBjs.StripeCustomerModule; exports.StripeCustomerService = _chunkJ3DFHESBjs.StripeCustomerService; exports.StripeInvoice = _chunkJ3DFHESBjs.StripeInvoice; exports.StripeInvoiceModule = _chunkJ3DFHESBjs.StripeInvoiceModule; exports.StripeInvoiceService = _chunkJ3DFHESBjs.StripeInvoiceService; exports.StripePaymentMethodModule = _chunkJ3DFHESBjs.StripePaymentMethodModule; exports.StripePrice = _chunkJ3DFHESBjs.StripePrice; exports.StripePriceModule = _chunkJ3DFHESBjs.StripePriceModule; exports.StripePriceService = _chunkJ3DFHESBjs.StripePriceService; exports.StripeProduct = _chunkJ3DFHESBjs.StripeProduct; exports.StripeProductModule = _chunkJ3DFHESBjs.StripeProductModule; exports.StripeProductService = _chunkJ3DFHESBjs.StripeProductService; exports.StripePromotionCode = _chunkJ3DFHESBjs.StripePromotionCode; exports.StripePromotionCodeModule = _chunkJ3DFHESBjs.StripePromotionCodeModule; exports.StripePromotionCodeService = _chunkJ3DFHESBjs.StripePromotionCodeService; exports.StripeSubscription = _chunkJ3DFHESBjs.StripeSubscription; exports.StripeSubscriptionModule = _chunkJ3DFHESBjs.StripeSubscriptionModule; exports.StripeSubscriptionService = _chunkJ3DFHESBjs.StripeSubscriptionService; exports.StripeUsage = _chunkJ3DFHESBjs.StripeUsage; exports.StripeUsageModule = _chunkJ3DFHESBjs.StripeUsageModule; exports.StripeUsageService = _chunkJ3DFHESBjs.StripeUsageService; exports.SubscriptionStatus = _chunkJ3DFHESBjs.SubscriptionStatus; exports.TableOptions = _chunkJ3DFHESBjs.TableOptions; exports.TotpAuthenticator = _chunkJ3DFHESBjs.TotpAuthenticator; exports.TotpAuthenticatorModule = _chunkJ3DFHESBjs.TotpAuthenticatorModule; exports.TotpSetup = _chunkJ3DFHESBjs.TotpSetup; exports.TotpSetupModule = _chunkJ3DFHESBjs.TotpSetupModule; exports.TotpVerify = _chunkJ3DFHESBjs.TotpVerify; exports.TotpVerifyLogin = _chunkJ3DFHESBjs.TotpVerifyLogin; exports.TotpVerifyLoginModule = _chunkJ3DFHESBjs.TotpVerifyLoginModule; exports.TotpVerifyModule = _chunkJ3DFHESBjs.TotpVerifyModule; exports.TwoFactorChallenge = _chunkJ3DFHESBjs.TwoFactorChallenge; exports.TwoFactorChallengeModule = _chunkJ3DFHESBjs.TwoFactorChallengeModule; exports.TwoFactorEnable = _chunkJ3DFHESBjs.TwoFactorEnable; exports.TwoFactorEnableModule = _chunkJ3DFHESBjs.TwoFactorEnableModule; exports.TwoFactorService = _chunkJ3DFHESBjs.TwoFactorService; exports.TwoFactorStatus = _chunkJ3DFHESBjs.TwoFactorStatus; exports.TwoFactorStatusModule = _chunkJ3DFHESBjs.TwoFactorStatusModule; exports.User = _chunkJ3DFHESBjs.User; exports.UserFields = _chunkJ3DFHESBjs.UserFields; exports.UserModule = _chunkJ3DFHESBjs.UserModule; exports.UserService = _chunkJ3DFHESBjs.UserService; exports.Waitlist = _chunkJ3DFHESBjs.Waitlist; exports.WaitlistModule = _chunkJ3DFHESBjs.WaitlistModule; exports.WaitlistService = _chunkJ3DFHESBjs.WaitlistService; exports.WaitlistStats = _chunkJ3DFHESBjs.WaitlistStats; exports.WaitlistStatsModule = _chunkJ3DFHESBjs.WaitlistStatsModule; exports.checkPermissions = _chunkJ3DFHESBjs.checkPermissions; exports.checkPermissionsFromServer = _chunkJ3DFHESBjs.checkPermissionsFromServer; exports.clearLastApiTotal = _chunkJ3DFHESBjs.clearLastApiTotal; exports.cn = _chunkJ3DFHESBjs.cn; exports.composeRefs = _chunkJ3DFHESBjs.composeRefs; exports.configureAuth = _chunkJ3DFHESBjs.configureAuth; exports.configureI18n = _chunk3MUBMSDDjs.configureI18n; exports.configureJsonApi = _chunk3MUBMSDDjs.configureJsonApi; exports.configureLogin = _chunk3MUBMSDDjs.configureLogin; exports.configureReferral = _chunk3MUBMSDDjs.configureReferral; exports.configureRoles = _chunk3MUBMSDDjs.configureRoles; exports.configureWaitlist = _chunk3MUBMSDDjs.configureWaitlist; exports.createJsonApiInclusion = _chunkJ3DFHESBjs.createJsonApiInclusion; exports.dismissToast = _chunkJ3DFHESBjs.dismissToast; exports.entityObjectSchema = _chunkJ3DFHESBjs.entityObjectSchema; exports.exists = _chunkJ3DFHESBjs.exists; exports.formatDate = _chunkJ3DFHESBjs.formatDate; exports.formatLocalDate = _chunkJ3DFHESBjs.formatLocalDate; exports.getApiUrl = _chunk3MUBMSDDjs.getApiUrl; exports.getAppUrl = _chunk3MUBMSDDjs.getAppUrl; exports.getBootstrapper = _chunkJ5LROFGLjs.getBootstrapper; exports.getClientGlobalErrorHandler = _chunkJ3DFHESBjs.getClientGlobalErrorHandler; exports.getGlobalErrorHandler = _chunkJ3DFHESBjs.getGlobalErrorHandler; exports.getIcon = _chunkJ3DFHESBjs.getIcon; exports.getIconByModule = _chunkJ3DFHESBjs.getIconByModule; exports.getIconByModuleName = _chunkJ3DFHESBjs.getIconByModuleName; exports.getInitials = _chunkJ3DFHESBjs.getInitials; exports.getLastApiTotal = _chunkJ3DFHESBjs.getLastApiTotal; exports.getLucideIcon = _chunkJ3DFHESBjs.getLucideIcon; exports.getLucideIconByModule = _chunkJ3DFHESBjs.getLucideIconByModule; exports.getLucideIconByModuleName = _chunkJ3DFHESBjs.getLucideIconByModuleName; exports.getPublicApiUrl = _chunk3MUBMSDDjs.getPublicApiUrl; exports.getReferralConfig = _chunk3MUBMSDDjs.getReferralConfig; exports.getRoleId = _chunk3MUBMSDDjs.getRoleId; exports.getStripePublishableKey = _chunk3MUBMSDDjs.getStripePublishableKey; exports.getTableComponents = _chunkJ3DFHESBjs.getTableComponents; exports.getTableOptions = _chunkJ3DFHESBjs.getTableOptions; exports.getTokenHandler = _chunkJ3DFHESBjs.getTokenHandler; exports.getTrackablePages = _chunk3MUBMSDDjs.getTrackablePages; exports.getValueFromPath = _chunkJ3DFHESBjs.getValueFromPath; exports.getWaitlistConfig = _chunk3MUBMSDDjs.getWaitlistConfig; exports.hasBootstrapper = _chunkJ5LROFGLjs.hasBootstrapper; exports.isReferralEnabled = _chunk3MUBMSDDjs.isReferralEnabled; exports.isRolesConfigured = _chunk3MUBMSDDjs.isRolesConfigured; exports.rehydrate = _chunkJ3DFHESBjs.rehydrate; exports.rehydrateList = _chunkJ3DFHESBjs.rehydrateList; exports.resetBootstrapStore = _chunkJ5LROFGLjs.resetBootstrapStore; exports.setBootstrapper = _chunkJ5LROFGLjs.setBootstrapper; exports.setClientGlobalErrorHandler = _chunkJ3DFHESBjs.setClientGlobalErrorHandler; exports.setGlobalErrorHandler = _chunkJ3DFHESBjs.setGlobalErrorHandler; exports.showCustomToast = _chunkJ3DFHESBjs.showCustomToast; exports.showError = _chunkJ3DFHESBjs.showError; exports.showToast = _chunkJ3DFHESBjs.showToast; exports.translateData = _chunkJ5LROFGLjs.translateData; exports.translateResponse = _chunkJ5LROFGLjs.translateResponse; exports.tryBootstrap = _chunkJ5LROFGLjs.tryBootstrap; exports.useComposedRefs = _chunkJ3DFHESBjs.useComposedRefs; exports.useIsMobile = _chunkJ3DFHESBjs.useIsMobile; exports.userObjectSchema = _chunkJ3DFHESBjs.userObjectSchema;
|
|
427
427
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
getWaitlistConfig,
|
|
19
19
|
isReferralEnabled,
|
|
20
20
|
isRolesConfigured
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-SJRSR3AF.mjs";
|
|
22
22
|
import {
|
|
23
23
|
AVAILABLE_OAUTH_SCOPES,
|
|
24
24
|
AbstractApiData,
|
|
@@ -199,7 +199,7 @@ import {
|
|
|
199
199
|
useComposedRefs,
|
|
200
200
|
useIsMobile,
|
|
201
201
|
userObjectSchema
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-UBBTQUFB.mjs";
|
|
203
203
|
import "./chunk-AUXK7QSA.mjs";
|
|
204
204
|
import "./chunk-C7C7VY4F.mjs";
|
|
205
205
|
import {
|
|
@@ -83,6 +83,7 @@ declare abstract class AbstractService {
|
|
|
83
83
|
[key: string]: File | Blob;
|
|
84
84
|
} | File | Blob;
|
|
85
85
|
token?: string;
|
|
86
|
+
suppressGlobalError?: boolean;
|
|
86
87
|
}): Promise<T>;
|
|
87
88
|
/**
|
|
88
89
|
* Make an API call and return both data and meta from the response.
|
|
@@ -98,6 +99,7 @@ declare abstract class AbstractService {
|
|
|
98
99
|
files?: {
|
|
99
100
|
[key: string]: File | Blob;
|
|
100
101
|
} | File | Blob;
|
|
102
|
+
suppressGlobalError?: boolean;
|
|
101
103
|
}): Promise<{
|
|
102
104
|
data: T;
|
|
103
105
|
meta?: Record<string, any>;
|
|
@@ -110,6 +112,7 @@ declare abstract class AbstractService {
|
|
|
110
112
|
method: HttpMethod;
|
|
111
113
|
endpoint: string;
|
|
112
114
|
companyId?: string;
|
|
115
|
+
suppressGlobalError?: boolean;
|
|
113
116
|
}): Promise<any>;
|
|
114
117
|
}
|
|
115
118
|
|
|
@@ -83,6 +83,7 @@ declare abstract class AbstractService {
|
|
|
83
83
|
[key: string]: File | Blob;
|
|
84
84
|
} | File | Blob;
|
|
85
85
|
token?: string;
|
|
86
|
+
suppressGlobalError?: boolean;
|
|
86
87
|
}): Promise<T>;
|
|
87
88
|
/**
|
|
88
89
|
* Make an API call and return both data and meta from the response.
|
|
@@ -98,6 +99,7 @@ declare abstract class AbstractService {
|
|
|
98
99
|
files?: {
|
|
99
100
|
[key: string]: File | Blob;
|
|
100
101
|
} | File | Blob;
|
|
102
|
+
suppressGlobalError?: boolean;
|
|
101
103
|
}): Promise<{
|
|
102
104
|
data: T;
|
|
103
105
|
meta?: Record<string, any>;
|
|
@@ -110,6 +112,7 @@ declare abstract class AbstractService {
|
|
|
110
112
|
method: HttpMethod;
|
|
111
113
|
endpoint: string;
|
|
112
114
|
companyId?: string;
|
|
115
|
+
suppressGlobalError?: boolean;
|
|
113
116
|
}): Promise<any>;
|
|
114
117
|
}
|
|
115
118
|
|
package/dist/server/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import { A as ApiData } from '../ApiData-DPKNfY-9.mjs';
|
|
|
2
2
|
import { M as ModuleWithPermissions, A as Action } from '../types-CQSjy7et.mjs';
|
|
3
3
|
import { A as ApiRequestDataTypeInterface } from '../ApiRequestDataTypeInterface-CYEcRUrh.mjs';
|
|
4
4
|
import { A as ApiResponseInterface } from '../ApiResponseInterface-rsXRL_Hn.mjs';
|
|
5
|
-
export { A as ServerAuthService, C as ServerCompanyService, a as ServerContentService, F as ServerFeatureService, N as ServerNotificationService, P as ServerPushService, R as ServerRoleService, S as ServerS3Service, U as ServerUserService } from '../s3.service-
|
|
5
|
+
export { A as ServerAuthService, C as ServerCompanyService, a as ServerContentService, F as ServerFeatureService, N as ServerNotificationService, P as ServerPushService, R as ServerRoleService, S as ServerS3Service, U as ServerUserService } from '../s3.service-CAL5dhGG.mjs';
|
|
6
6
|
import 'lucide-react';
|
|
7
7
|
import '../ApiDataInterface-BcZeXy5X.mjs';
|
|
8
8
|
import '../feature.interface-CXb1-vNq.mjs';
|
package/dist/server/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { A as ApiData } from '../ApiData-DPKNfY-9.js';
|
|
|
2
2
|
import { M as ModuleWithPermissions, A as Action } from '../types-DHOxe8rc.js';
|
|
3
3
|
import { A as ApiRequestDataTypeInterface } from '../ApiRequestDataTypeInterface-CYEcRUrh.js';
|
|
4
4
|
import { A as ApiResponseInterface } from '../ApiResponseInterface-CWLvSCvS.js';
|
|
5
|
-
export { A as ServerAuthService, C as ServerCompanyService, a as ServerContentService, F as ServerFeatureService, N as ServerNotificationService, P as ServerPushService, R as ServerRoleService, S as ServerS3Service, U as ServerUserService } from '../s3.service-
|
|
5
|
+
export { A as ServerAuthService, C as ServerCompanyService, a as ServerContentService, F as ServerFeatureService, N as ServerNotificationService, P as ServerPushService, R as ServerRoleService, S as ServerS3Service, U as ServerUserService } from '../s3.service-COLYvcW2.js';
|
|
6
6
|
import 'lucide-react';
|
|
7
7
|
import '../ApiDataInterface-BcZeXy5X.js';
|
|
8
8
|
import '../feature.interface-BO25VLlx.js';
|
package/dist/server/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var _chunkIOLU4ASDjs = require('../chunk-IOLU4ASD.js');
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunkJ3DFHESBjs = require('../chunk-J3DFHESB.js');
|
|
19
19
|
require('../chunk-LXKSUWAV.js');
|
|
20
20
|
require('../chunk-IBS6NI7D.js');
|
|
21
21
|
|
|
@@ -86,7 +86,7 @@ var ServerSession = class {
|
|
|
86
86
|
if (!rawModules) return false;
|
|
87
87
|
const modules = JSON.parse(_pako2.default.ungzip(Buffer.from(rawModules, "base64"), { to: "string" }));
|
|
88
88
|
const selectedModule = modules.find((module) => module.id === params.module.moduleId);
|
|
89
|
-
return
|
|
89
|
+
return _chunkJ3DFHESBjs.checkPermissionsFromServer.call(void 0, {
|
|
90
90
|
module: params.module,
|
|
91
91
|
action: params.action,
|
|
92
92
|
data: params.data,
|
|
@@ -296,5 +296,5 @@ _chunk7QVYU63Ejs.__name.call(void 0, ServerJsonApiDelete, "ServerJsonApiDelete")
|
|
|
296
296
|
|
|
297
297
|
|
|
298
298
|
|
|
299
|
-
exports.ServerAuthService =
|
|
299
|
+
exports.ServerAuthService = _chunkJ3DFHESBjs.AuthService; exports.ServerCompanyService = _chunkJ3DFHESBjs.CompanyService; exports.ServerContentService = _chunkJ3DFHESBjs.ContentService; exports.ServerFeatureService = _chunkJ3DFHESBjs.FeatureService; exports.ServerJsonApiDelete = ServerJsonApiDelete; exports.ServerJsonApiGet = ServerJsonApiGet; exports.ServerJsonApiPatch = ServerJsonApiPatch; exports.ServerJsonApiPost = ServerJsonApiPost; exports.ServerJsonApiPut = ServerJsonApiPut; exports.ServerNotificationService = _chunkJ3DFHESBjs.NotificationService; exports.ServerPushService = _chunkJ3DFHESBjs.PushService; exports.ServerRoleService = _chunkJ3DFHESBjs.RoleService; exports.ServerS3Service = _chunkJ3DFHESBjs.S3Service; exports.ServerSession = ServerSession; exports.ServerUserService = _chunkJ3DFHESBjs.UserService; exports.configureServerJsonApi = configureServerJsonApi; exports.getServerApiUrl = getServerApiUrl; exports.getServerAppUrl = getServerAppUrl; exports.getServerToken = _chunkYUO55Q5Ajs.getServerToken; exports.getServerTrackablePages = getServerTrackablePages; exports.invalidateCacheTag = invalidateCacheTag; exports.invalidateCacheTags = invalidateCacheTags; exports.serverRequest = _chunkIOLU4ASDjs.serverRequest;
|
|
300
300
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -146,6 +146,7 @@ export abstract class AbstractService {
|
|
|
146
146
|
responseType?: ApiRequestDataTypeInterface;
|
|
147
147
|
files?: { [key: string]: File | Blob } | File | Blob;
|
|
148
148
|
token?: string;
|
|
149
|
+
suppressGlobalError?: boolean;
|
|
149
150
|
}): Promise<T> {
|
|
150
151
|
// Dynamic import to avoid bundling issues
|
|
151
152
|
const { JsonApiGet, JsonApiPost, JsonApiPut, JsonApiPatch, JsonApiDelete } =
|
|
@@ -222,7 +223,7 @@ export abstract class AbstractService {
|
|
|
222
223
|
}
|
|
223
224
|
|
|
224
225
|
if (!apiResponse.ok) {
|
|
225
|
-
if (globalErrorHandler && typeof window !== "undefined") {
|
|
226
|
+
if (globalErrorHandler && typeof window !== "undefined" && !params.suppressGlobalError) {
|
|
226
227
|
globalErrorHandler(apiResponse.response, apiResponse.error);
|
|
227
228
|
return undefined as any;
|
|
228
229
|
} else {
|
|
@@ -257,6 +258,7 @@ export abstract class AbstractService {
|
|
|
257
258
|
overridesJsonApiCreation?: boolean;
|
|
258
259
|
responseType?: ApiRequestDataTypeInterface;
|
|
259
260
|
files?: { [key: string]: File | Blob } | File | Blob;
|
|
261
|
+
suppressGlobalError?: boolean;
|
|
260
262
|
}): Promise<{ data: T; meta?: Record<string, any> }> {
|
|
261
263
|
// Dynamic import to avoid bundling issues
|
|
262
264
|
const { JsonApiGet, JsonApiPost, JsonApiPut, JsonApiPatch, JsonApiDelete } =
|
|
@@ -332,7 +334,7 @@ export abstract class AbstractService {
|
|
|
332
334
|
}
|
|
333
335
|
|
|
334
336
|
if (!apiResponse.ok) {
|
|
335
|
-
if (globalErrorHandler && typeof window !== "undefined") {
|
|
337
|
+
if (globalErrorHandler && typeof window !== "undefined" && !params.suppressGlobalError) {
|
|
336
338
|
globalErrorHandler(apiResponse.response, apiResponse.error);
|
|
337
339
|
return { data: undefined as any, meta: undefined };
|
|
338
340
|
} else {
|
|
@@ -357,6 +359,7 @@ export abstract class AbstractService {
|
|
|
357
359
|
method: HttpMethod;
|
|
358
360
|
endpoint: string;
|
|
359
361
|
companyId?: string;
|
|
362
|
+
suppressGlobalError?: boolean;
|
|
360
363
|
}): Promise<any> {
|
|
361
364
|
const { JsonApiGet } = await import("../../unified/JsonApiRequest");
|
|
362
365
|
|
|
@@ -378,7 +381,7 @@ export abstract class AbstractService {
|
|
|
378
381
|
});
|
|
379
382
|
|
|
380
383
|
if (!apiResponse.ok) {
|
|
381
|
-
if (globalErrorHandler && typeof window !== "undefined") {
|
|
384
|
+
if (globalErrorHandler && typeof window !== "undefined" && !params.suppressGlobalError) {
|
|
382
385
|
globalErrorHandler(apiResponse.response, apiResponse.error);
|
|
383
386
|
return undefined as any;
|
|
384
387
|
} else {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { RoundPageContainer } from "../../../../components/containers/RoundPageContainer";
|
|
4
4
|
import { Modules } from "../../../../core";
|
|
5
|
+
import type { ApprovalActionRenderer } from "../../../assistant-message/components/MessageItem";
|
|
5
6
|
import { useAssistantContext } from "../../contexts/AssistantContext";
|
|
6
7
|
import { AssistantSidebar } from "../parts/AssistantSidebar";
|
|
7
8
|
import { AssistantEmptyState } from "../parts/AssistantEmptyState";
|
|
@@ -9,7 +10,17 @@ import { AssistantThreadHeader } from "../parts/AssistantThreadHeader";
|
|
|
9
10
|
import { AssistantThread } from "../parts/AssistantThread";
|
|
10
11
|
import { AssistantComposer } from "../parts/AssistantComposer";
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
interface Props {
|
|
14
|
+
/**
|
|
15
|
+
* Optional renderer for `approval-request` messages (operator engine). The
|
|
16
|
+
* approval card component lives in the consuming app, which registers the
|
|
17
|
+
* AssistantAction module; without this prop those messages fall back to the
|
|
18
|
+
* plain markdown bubble.
|
|
19
|
+
*/
|
|
20
|
+
renderApprovalAction?: ApprovalActionRenderer;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function AssistantContainer({ renderApprovalAction }: Props = {}) {
|
|
13
24
|
const ctx = useAssistantContext();
|
|
14
25
|
const showThread = !!ctx.assistant || ctx.sending || ctx.messages.length > 0;
|
|
15
26
|
|
|
@@ -24,7 +35,11 @@ export function AssistantContainer() {
|
|
|
24
35
|
/>
|
|
25
36
|
<main className="flex flex-1 flex-col">
|
|
26
37
|
{!showThread ? (
|
|
27
|
-
<AssistantEmptyState
|
|
38
|
+
<AssistantEmptyState
|
|
39
|
+
onSend={ctx.sendMessage}
|
|
40
|
+
operatorMode={ctx.operatorMode}
|
|
41
|
+
onOperatorModeChange={ctx.setOperatorMode}
|
|
42
|
+
/>
|
|
28
43
|
) : (
|
|
29
44
|
<>
|
|
30
45
|
{ctx.assistant ? (
|
|
@@ -45,6 +60,7 @@ export function AssistantContainer() {
|
|
|
45
60
|
onSelectFollowUp={ctx.sendMessage}
|
|
46
61
|
failedMessageIds={ctx.failedMessageIds}
|
|
47
62
|
onRetry={ctx.retrySend}
|
|
63
|
+
renderApprovalAction={renderApprovalAction}
|
|
48
64
|
/>
|
|
49
65
|
<AssistantComposer onSend={ctx.sendMessage} disabled={ctx.sending} />
|
|
50
66
|
</>
|
|
@@ -3,15 +3,23 @@
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { useTranslations } from "next-intl";
|
|
5
5
|
import { Sparkles } from "lucide-react";
|
|
6
|
+
import { Label, Switch } from "../../../../shadcnui";
|
|
6
7
|
import { AssistantComposer } from "./AssistantComposer";
|
|
7
8
|
|
|
8
9
|
interface Props {
|
|
9
10
|
onSend: (content: string) => Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Operator engine toggle (durable, approval-gated runs). Rendered only when
|
|
13
|
+
* `onOperatorModeChange` is provided; the default (responder) flow stays
|
|
14
|
+
* unchanged otherwise.
|
|
15
|
+
*/
|
|
16
|
+
operatorMode?: boolean;
|
|
17
|
+
onOperatorModeChange?: (value: boolean) => void;
|
|
10
18
|
}
|
|
11
19
|
|
|
12
20
|
const STARTER_KEYS = ["a", "b", "c", "d"] as const;
|
|
13
21
|
|
|
14
|
-
export function AssistantEmptyState({ onSend }: Props) {
|
|
22
|
+
export function AssistantEmptyState({ onSend, operatorMode = false, onOperatorModeChange }: Props) {
|
|
15
23
|
const t = useTranslations();
|
|
16
24
|
const [draft, setDraft] = useState("");
|
|
17
25
|
|
|
@@ -26,6 +34,19 @@ export function AssistantEmptyState({ onSend }: Props) {
|
|
|
26
34
|
<p className="text-muted-foreground mt-1 text-sm">{t("features.assistant.empty_state.subtitle")}</p>
|
|
27
35
|
</div>
|
|
28
36
|
<AssistantComposer value={draft} onValueChange={setDraft} onSend={onSend} />
|
|
37
|
+
{onOperatorModeChange && (
|
|
38
|
+
<div className="flex items-center justify-end gap-2">
|
|
39
|
+
<Switch
|
|
40
|
+
id="assistant-operator-mode"
|
|
41
|
+
size="sm"
|
|
42
|
+
checked={operatorMode}
|
|
43
|
+
onCheckedChange={(checked) => onOperatorModeChange(checked === true)}
|
|
44
|
+
/>
|
|
45
|
+
<Label htmlFor="assistant-operator-mode" className="text-muted-foreground text-xs">
|
|
46
|
+
{t("features.assistant.operator_mode")}
|
|
47
|
+
</Label>
|
|
48
|
+
</div>
|
|
49
|
+
)}
|
|
29
50
|
<div className="grid grid-cols-2 gap-2">
|
|
30
51
|
{STARTER_KEYS.map((k) => {
|
|
31
52
|
const text = t(`features.assistant.starters.${k}`);
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useEffect, useRef } from "react";
|
|
4
4
|
import type { AssistantMessageInterface } from "../../../assistant-message/data/AssistantMessageInterface";
|
|
5
5
|
import { MessageList } from "../../../assistant-message/components/MessageList";
|
|
6
|
+
import type { ApprovalActionRenderer } from "../../../assistant-message/components/MessageItem";
|
|
6
7
|
import { AssistantStatusLine } from "./AssistantStatusLine";
|
|
7
8
|
|
|
8
9
|
interface Props {
|
|
@@ -12,9 +13,18 @@ interface Props {
|
|
|
12
13
|
onSelectFollowUp: (q: string) => void;
|
|
13
14
|
failedMessageIds?: Set<string>;
|
|
14
15
|
onRetry?: (tempId: string) => void;
|
|
16
|
+
renderApprovalAction?: ApprovalActionRenderer;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
export function AssistantThread({
|
|
19
|
+
export function AssistantThread({
|
|
20
|
+
messages,
|
|
21
|
+
sending,
|
|
22
|
+
status,
|
|
23
|
+
onSelectFollowUp,
|
|
24
|
+
failedMessageIds,
|
|
25
|
+
onRetry,
|
|
26
|
+
renderApprovalAction,
|
|
27
|
+
}: Props) {
|
|
18
28
|
const endRef = useRef<HTMLDivElement>(null);
|
|
19
29
|
|
|
20
30
|
useEffect(() => {
|
|
@@ -28,6 +38,7 @@ export function AssistantThread({ messages, sending, status, onSelectFollowUp, f
|
|
|
28
38
|
onSelectFollowUp={onSelectFollowUp}
|
|
29
39
|
failedMessageIds={failedMessageIds}
|
|
30
40
|
onRetry={onRetry}
|
|
41
|
+
renderApprovalAction={renderApprovalAction}
|
|
31
42
|
/>
|
|
32
43
|
{sending && <AssistantStatusLine status={status} />}
|
|
33
44
|
<div ref={endRef} />
|
|
@@ -26,6 +26,11 @@ interface AssistantContextValue {
|
|
|
26
26
|
startNew(): void;
|
|
27
27
|
renameThread(id: string, title: string): Promise<void>;
|
|
28
28
|
deleteThread(id: string): Promise<void>;
|
|
29
|
+
/** When true, create/append route to the operator-engine endpoints. */
|
|
30
|
+
operatorMode: boolean;
|
|
31
|
+
setOperatorMode(value: boolean): void;
|
|
32
|
+
/** Appends a message returned outside the send flow (e.g. an approve/deny resume). */
|
|
33
|
+
appendResolvedMessage(message: AssistantMessageInterface): void;
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
const AssistantContext = createContext<AssistantContextValue | undefined>(undefined);
|
|
@@ -77,6 +82,12 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
77
82
|
const [sending, setSending] = useState<boolean>(false);
|
|
78
83
|
const [status, setStatus] = useState<string | undefined>(undefined);
|
|
79
84
|
const [failedMessageIds, setFailedMessageIds] = useState<Set<string>>(() => new Set());
|
|
85
|
+
// The engine is persisted on the Assistant resource: an existing operator
|
|
86
|
+
// thread must keep routing to the operator endpoints after a reload, so the
|
|
87
|
+
// initial mode is derived from the hydrated thread instead of defaulting off.
|
|
88
|
+
const [operatorMode, setOperatorMode] = useState<boolean>(
|
|
89
|
+
() => dehydratedAssistant?.jsonApi?.attributes?.engine === "operator",
|
|
90
|
+
);
|
|
80
91
|
const { socket } = useSocketContext();
|
|
81
92
|
|
|
82
93
|
const sendMessage = useCallback(
|
|
@@ -101,11 +112,14 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
101
112
|
|
|
102
113
|
try {
|
|
103
114
|
if (!assistant) {
|
|
104
|
-
const
|
|
115
|
+
const input = {
|
|
105
116
|
firstMessage: trimmed,
|
|
106
117
|
howToMode: opts?.howToMode,
|
|
107
118
|
limitToHowToId: opts?.limitToHowToId,
|
|
108
|
-
}
|
|
119
|
+
};
|
|
120
|
+
const created = operatorMode
|
|
121
|
+
? await AssistantService.createOperator(input)
|
|
122
|
+
: await AssistantService.create(input);
|
|
109
123
|
const msgs = await AssistantMessageService.findByAssistant({ assistantId: created.id });
|
|
110
124
|
setAssistant(created);
|
|
111
125
|
setMessages(msgs);
|
|
@@ -114,12 +128,17 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
114
128
|
window.history.replaceState(null, "", `/assistants/${created.id}`);
|
|
115
129
|
}
|
|
116
130
|
} else {
|
|
117
|
-
const result =
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
const result = operatorMode
|
|
132
|
+
? await AssistantService.appendMessageOperator({
|
|
133
|
+
assistantId: assistant.id,
|
|
134
|
+
content: trimmed,
|
|
135
|
+
})
|
|
136
|
+
: await AssistantService.appendMessage({
|
|
137
|
+
assistantId: assistant.id,
|
|
138
|
+
content: trimmed,
|
|
139
|
+
howToMode: opts?.howToMode,
|
|
140
|
+
limitToHowToId: opts?.limitToHowToId,
|
|
141
|
+
});
|
|
123
142
|
setMessages((prev) => [...stripOptimistic(prev), ...result]);
|
|
124
143
|
}
|
|
125
144
|
} catch {
|
|
@@ -134,9 +153,13 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
134
153
|
setStatus(undefined);
|
|
135
154
|
}
|
|
136
155
|
},
|
|
137
|
-
[assistant, messages, socket],
|
|
156
|
+
[assistant, messages, socket, operatorMode],
|
|
138
157
|
);
|
|
139
158
|
|
|
159
|
+
const appendResolvedMessage = useCallback((message: AssistantMessageInterface) => {
|
|
160
|
+
setMessages((prev) => (prev.some((m) => m.id === message.id) ? prev : [...prev, message]));
|
|
161
|
+
}, []);
|
|
162
|
+
|
|
140
163
|
const retrySend = useCallback(
|
|
141
164
|
async (tempId: string) => {
|
|
142
165
|
const failed = messages.find((m) => m.id === tempId);
|
|
@@ -163,6 +186,10 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
163
186
|
]);
|
|
164
187
|
setAssistant(target);
|
|
165
188
|
setMessages(msgs);
|
|
189
|
+
// Route follow-up sends by the thread's persisted engine: operator
|
|
190
|
+
// threads stay on the operator endpoints, everything else (engine
|
|
191
|
+
// absent) keeps the default responder flow.
|
|
192
|
+
setOperatorMode(target.engine === "operator");
|
|
166
193
|
if (manageUrl && typeof window !== "undefined") {
|
|
167
194
|
window.history.replaceState(null, "", `/assistants/${id}`);
|
|
168
195
|
}
|
|
@@ -180,6 +207,7 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
180
207
|
setAssistant(undefined);
|
|
181
208
|
setMessages([]);
|
|
182
209
|
setFailedMessageIds(new Set());
|
|
210
|
+
setOperatorMode(false);
|
|
183
211
|
if (manageUrl && typeof window !== "undefined") {
|
|
184
212
|
window.history.replaceState(null, "", "/assistants");
|
|
185
213
|
}
|
|
@@ -228,6 +256,9 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
228
256
|
startNew,
|
|
229
257
|
renameThread,
|
|
230
258
|
deleteThread,
|
|
259
|
+
operatorMode,
|
|
260
|
+
setOperatorMode,
|
|
261
|
+
appendResolvedMessage,
|
|
231
262
|
}),
|
|
232
263
|
[
|
|
233
264
|
assistant,
|
|
@@ -243,6 +274,8 @@ export function AssistantProvider({ children, dehydratedAssistant, dehydratedMes
|
|
|
243
274
|
startNew,
|
|
244
275
|
renameThread,
|
|
245
276
|
deleteThread,
|
|
277
|
+
operatorMode,
|
|
278
|
+
appendResolvedMessage,
|
|
246
279
|
],
|
|
247
280
|
);
|
|
248
281
|
|
|
@@ -18,22 +18,32 @@ function wrapper({ children }: { children: React.ReactNode }) {
|
|
|
18
18
|
return <AssistantProvider>{children}</AssistantProvider>;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
function buildAssistantStub({ id, title = "Stub" }: { id: string; title?: string }) {
|
|
22
|
-
return {
|
|
21
|
+
function buildAssistantStub({ id, title = "Stub", engine }: { id: string; title?: string; engine?: string }) {
|
|
22
|
+
return {
|
|
23
|
+
id,
|
|
24
|
+
title,
|
|
25
|
+
engine,
|
|
26
|
+
messageCount: 0,
|
|
27
|
+
type: "assistants",
|
|
28
|
+
createdAt: new Date(),
|
|
29
|
+
updatedAt: new Date(),
|
|
30
|
+
} as any;
|
|
23
31
|
}
|
|
24
32
|
|
|
25
33
|
function buildAssistantDehydrated({
|
|
26
34
|
id,
|
|
27
35
|
title = "Stub",
|
|
36
|
+
engine,
|
|
28
37
|
}: {
|
|
29
38
|
id: string;
|
|
30
39
|
title?: string;
|
|
40
|
+
engine?: string;
|
|
31
41
|
}): JsonApiHydratedDataInterface {
|
|
32
42
|
return {
|
|
33
43
|
jsonApi: {
|
|
34
44
|
type: "assistants",
|
|
35
45
|
id,
|
|
36
|
-
attributes: { title, messageCount: 0 },
|
|
46
|
+
attributes: { title, messageCount: 0, ...(engine !== undefined ? { engine } : {}) },
|
|
37
47
|
},
|
|
38
48
|
included: [],
|
|
39
49
|
};
|
|
@@ -123,6 +133,87 @@ describe("AssistantContext", () => {
|
|
|
123
133
|
expect(replaceState).toHaveBeenCalledWith(null, "", "/assistants/a-3");
|
|
124
134
|
});
|
|
125
135
|
|
|
136
|
+
it("selectThread on an operator thread enables operatorMode and routes follow-ups to the operator endpoint", async () => {
|
|
137
|
+
const target = buildAssistantStub({ id: "a-op", title: "Operator", engine: "operator" });
|
|
138
|
+
AssistantService.findOne = vi.fn().mockResolvedValue(target);
|
|
139
|
+
AssistantMessageService.findByAssistant = vi.fn().mockResolvedValue([]);
|
|
140
|
+
AssistantService.appendMessage = vi.fn().mockResolvedValue([]);
|
|
141
|
+
AssistantService.appendMessageOperator = vi.fn().mockResolvedValue([]);
|
|
142
|
+
vi.spyOn(window.history, "replaceState").mockImplementation(() => {});
|
|
143
|
+
|
|
144
|
+
const { result } = renderHook(() => useAssistantContext(), {
|
|
145
|
+
wrapper: ({ children }) => <AssistantProvider>{children}</AssistantProvider>,
|
|
146
|
+
});
|
|
147
|
+
await act(async () => {
|
|
148
|
+
await result.current.selectThread("a-op");
|
|
149
|
+
});
|
|
150
|
+
expect(result.current.operatorMode).toBe(true);
|
|
151
|
+
|
|
152
|
+
await act(async () => {
|
|
153
|
+
await result.current.sendMessage("continue");
|
|
154
|
+
});
|
|
155
|
+
expect(AssistantService.appendMessageOperator).toHaveBeenCalledWith({ assistantId: "a-op", content: "continue" });
|
|
156
|
+
expect(AssistantService.appendMessage).not.toHaveBeenCalled();
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it("selectThread on a responder thread (engine absent) resets operatorMode and keeps the responder endpoint", async () => {
|
|
160
|
+
const operatorThread = buildAssistantStub({ id: "a-op", engine: "operator" });
|
|
161
|
+
const responderThread = buildAssistantStub({ id: "a-resp" });
|
|
162
|
+
AssistantService.findOne = vi.fn().mockResolvedValueOnce(operatorThread).mockResolvedValueOnce(responderThread);
|
|
163
|
+
AssistantMessageService.findByAssistant = vi.fn().mockResolvedValue([]);
|
|
164
|
+
AssistantService.appendMessage = vi.fn().mockResolvedValue([]);
|
|
165
|
+
AssistantService.appendMessageOperator = vi.fn().mockResolvedValue([]);
|
|
166
|
+
vi.spyOn(window.history, "replaceState").mockImplementation(() => {});
|
|
167
|
+
|
|
168
|
+
const { result } = renderHook(() => useAssistantContext(), {
|
|
169
|
+
wrapper: ({ children }) => <AssistantProvider>{children}</AssistantProvider>,
|
|
170
|
+
});
|
|
171
|
+
await act(async () => {
|
|
172
|
+
await result.current.selectThread("a-op");
|
|
173
|
+
});
|
|
174
|
+
expect(result.current.operatorMode).toBe(true);
|
|
175
|
+
await act(async () => {
|
|
176
|
+
await result.current.selectThread("a-resp");
|
|
177
|
+
});
|
|
178
|
+
expect(result.current.operatorMode).toBe(false);
|
|
179
|
+
|
|
180
|
+
await act(async () => {
|
|
181
|
+
await result.current.sendMessage("hello");
|
|
182
|
+
});
|
|
183
|
+
expect(AssistantService.appendMessage).toHaveBeenCalledWith(
|
|
184
|
+
expect.objectContaining({ assistantId: "a-resp", content: "hello" }),
|
|
185
|
+
);
|
|
186
|
+
expect(AssistantService.appendMessageOperator).not.toHaveBeenCalled();
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
it("hydrating an operator thread (reload) initialises operatorMode and routes sends to the operator endpoint", async () => {
|
|
190
|
+
const existing = buildAssistantDehydrated({ id: "a-op", title: "Operator", engine: "operator" });
|
|
191
|
+
AssistantService.appendMessage = vi.fn().mockResolvedValue([]);
|
|
192
|
+
AssistantService.appendMessageOperator = vi.fn().mockResolvedValue([]);
|
|
193
|
+
|
|
194
|
+
const { result } = renderHook(() => useAssistantContext(), {
|
|
195
|
+
wrapper: ({ children }) => <AssistantProvider dehydratedAssistant={existing}>{children}</AssistantProvider>,
|
|
196
|
+
});
|
|
197
|
+
expect(result.current.operatorMode).toBe(true);
|
|
198
|
+
|
|
199
|
+
await act(async () => {
|
|
200
|
+
await result.current.sendMessage("after reload");
|
|
201
|
+
});
|
|
202
|
+
expect(AssistantService.appendMessageOperator).toHaveBeenCalledWith({
|
|
203
|
+
assistantId: "a-op",
|
|
204
|
+
content: "after reload",
|
|
205
|
+
});
|
|
206
|
+
expect(AssistantService.appendMessage).not.toHaveBeenCalled();
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
it("hydrating a responder thread (engine absent) keeps operatorMode off", () => {
|
|
210
|
+
const existing = buildAssistantDehydrated({ id: "a-resp", title: "Responder" });
|
|
211
|
+
const { result } = renderHook(() => useAssistantContext(), {
|
|
212
|
+
wrapper: ({ children }) => <AssistantProvider dehydratedAssistant={existing}>{children}</AssistantProvider>,
|
|
213
|
+
});
|
|
214
|
+
expect(result.current.operatorMode).toBe(false);
|
|
215
|
+
});
|
|
216
|
+
|
|
126
217
|
it("renameThread calls the service + updates active assistant title", async () => {
|
|
127
218
|
AssistantService.rename = vi.fn().mockResolvedValue(undefined);
|
|
128
219
|
const active = buildAssistantDehydrated({ id: "a-1", title: "Old" });
|