@iblai/iblai-js 2.31.0 → 2.32.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/data-layer/playwright/chat-privacy-helpers.d.ts +9 -9
- package/dist/playwright/index.cjs +15 -15
- package/dist/playwright/index.cjs.map +1 -1
- package/dist/playwright/index.d.ts +9 -9
- package/dist/playwright/index.esm.js +15 -15
- package/dist/playwright/index.esm.js.map +1 -1
- package/dist/playwright/playwright/chat-privacy-helpers.d.ts +9 -9
- package/dist/security/playwright/chat-privacy-helpers.d.ts +9 -9
- package/dist/web-containers/playwright/chat-privacy-helpers.d.ts +9 -9
- package/dist/web-containers/source/index.esm.js +347 -204
- package/dist/web-containers/source/next/index.esm.js +435 -237
- package/dist/web-utils/playwright/chat-privacy-helpers.d.ts +9 -9
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useState, useEffect, forwardRef, createElement as createElement$1, useLayoutEffect, createContext, useContext, useMemo, useReducer, useRef, useImperativeHandle, useCallback, isValidElement, Children, PureComponent, cloneElement, Component as Component$1, useDebugValue, Fragment as Fragment$2, useId as useId$2, lazy, Suspense } from 'react';
|
|
4
4
|
import * as dataLayer from '@iblai/data-layer';
|
|
5
|
-
import { useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useGetUserProfileSummaryQuery, useUpdateUserMetadataMutation, useUpdateUserMetadataEdxMutation, useUploadProfileImageMutation, useResetPasswordMutation, useSelfRetireMutation, useCreateUserInstitutionMutation, useGetUserInstitutionsQuery, useCreateUserEducationMutation, useUpdateUserEducationMutation, useDeleteUserEducationMutation, useGetUserEducationQuery, useCreateUserCompanyMutation, useGetUserCompaniesQuery, useCreateUserExperienceMutation, useUpdateUserExperienceMutation, useDeleteUserExperienceMutation, useGetUserExperienceQuery, useGetUserResumeQuery, useCreateUserResumeMutation, useGetMySubscriptionsQuery, useGetItemSubscriptionQuery, useCancelSubscriptionMutation, useGetLearnerCourseOutlineQuery, getSections, findResumeBlock, flattenOutline, normalizeLearnerCompletionError, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useUpdateGlobalMemoryMutation, useUpdateMentorMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useGetAllMentorMemoriesQuery, useDeleteGlobalMemoryMutation, useDeleteMentorMemoryMutation, useUpdateArtifactMutation, useLazyGetArtifactVersionQuery, useLazyListArtifactVersionsQuery, useSetCurrentVersionMutation, useListArtifactVersionsQuery, useLazyGetArtifactQuery, useLazyListArtifactsQuery, useEditSessionMutation, useListArtifactsQuery, useLazyGetSessionIdQuery, useGetAiSearchMentorsQuery, useStarMentorMutation, useUnstarMentorMutation, useGetUserChatHistoryReportsQuery, USER_CHAT_HISTORY_REPORT_ACTIVE_STATES, useCreateUserChatHistoryReportMutation, useLazyGetDownloadReportFromURLQuery, useGetUserChatHistoryReportStatusQuery, userChatHistoryApiSlice, USER_CHAT_HISTORY_QUERY_KEYS, useGetUserChatHistoryQuery, useGetUserChatHistoryFilterQuery, useGetMentorsQuery, useGetUserChatHistorySessionQuery, useUserLlmUsageSummary, useUserLlmSpendOverTime, useUserLlmCostByModel, useUserLlmRecentActivity, USER_LLM_RECENT_ACTIVITY_PAGE_SIZE, useUserLlmTraceObservations, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useGetVectorDocumentsQuery, useGetLlmsQuery, useUpdateUserRoleMutation, useUpdateUserStatusMutation, useUpdatePlatformUserRoleWithPoliciesMutation, usePlatformUsersQuery, useGetAccessibleUsersQuery, isPoliciesResponse, platformApiSlice, featureTags, useLazyGetRbacTeamsAccessListQuery, useCreateRbacTeamsAccessMutation, useGetRbacGroupsQuery, usePlatformUserGroupsQuery, useCreateRbacGroupMutation, useUpdateRbacGroupMutation, useDeleteRbacGroupMutation, useCreatePlatformUserGroupMutation, useUpdatePlatformUserGroupMutation, useDeletePlatformUserGroupMutation, useGetRbacGroupDetailsQuery, useGetPlatformUserGroupDetailsQuery, useGetRbacPermissionsMutation, useGetRbacRolesQuery, useCreateRbacRoleMutation, useUpdateRbacRoleMutation, useDeleteRbacRoleMutation, useGetRbacRoleDetailsQuery, useGetRbacActionsDefinitionQuery, useGetRbacResourceDiscoveryQuery, useGetRbacResourceListQuery, useGetRbacPoliciesQuery, useCreateRbacPolicyMutation, useUpdateRbacPolicyMutation, useDeleteRbacPolicyMutation, useGetRbacPolicyDetailsQuery, useGetWatchedGroupsQuery, useCreateWatchedGroupMutation, useUpdateWatchedGroupMutation, useDeleteWatchedGroupMutation, useAddWatchedUserMutation, useRemoveWatchedUserMutation, useAddWatcherMutation, useUpdateWatcherMutation, useDeleteWatcherMutation, useGetWatchedUsersQuery, useGetWatchersQuery, WATCHER_NOTIFICATION_EVENTS, WATCHER_NOTIFICATION_EVENT_LABELS, useGetApplicationFormsQuery, useGetApplicationFormDetailQuery, useCreateApplicationFormMutation, useUpdateApplicationFormMutation, useGetApplicationAdminDetailQuery, useInviteApplicationCandidateMutation, useLazyGetApplicationAttachmentFileQuery, useCreateApplicationWaiverMutation, useDeleteApplicationWaiverMutation, useSubmitApplicationOverrideMutation, useUpdateApplicationPlacementMutation, useDeleteApplicationCourseAssignmentMutation, useCreateApplicationNoteMutation, useUpdateApplicationNoteMutation, useDeleteApplicationNoteMutation, useTransitionApplicationMutation, useLinkApplicationCandidateMutation, useCreateApplicationPlacementsMutation, useGetCustomMentorsQuery, useCreateApplicationCourseAssignmentsMutation, useGetApplicationBlocksQuery, useDeleteApplicationBlockMutation, useGetApplicationsPipelineStatsQuery, useGetApplicationsPipelineQuery, useGetTenantMetadataQuery, useUpdateTenantMetadataMutation, useLazyGetTenantMetadataQuery, useDeleteApiKeyMutation, useGetApiKeyQuery, useGetApiKeyFieldPermissionsQuery, useUpdateApiKeyMutation, useGetApiKeysQuery, unwrapApiTokenList, useCreateApiKeyMutation, useCreateLLMCredentialMutation, useGetCredentialsSchemaQuery, useGetMaskedLLMCredentialsQuery, useDeleteIntegrationCredentialMutation, useDeleteCredentialMutation, useCreateIntegrationCredentialMutation, useGetIntegrationCredentialsSchemaQuery, useGetMaskedIntegrationCredentialsQuery, useGetAccountBillingInfoQuery, useUpdateAutoRechargeInfoMutation, useTriggerAutoRechargeMutation, useGetAgentSpendCapQuery, useGetTenantSpendCapQuery, useListAgentUserSpendCapsQuery, useUpsertAgentSpendCapMutation, useDeleteAgentSpendCapMutation, useUpsertTenantSpendCapMutation, useDeleteTenantSpendCapMutation, useUpsertUserSpendCapMutation, useDeleteUserSpendCapMutation, useGetLlmUsageMetricsQuery, useListAgentSpendCapsQuery, useGetCreditTransactionsQuery, useCreateStripeCustomerPortalMutation, useSetPlatformConfigurationsMutation, useGetPlatformConfigurationsQuery, useUpdatePlatformMembershipMutation, useGetPlatformMembershipQuery, VERCEL_SPA, useGetCustomDomainsQuery, useGetHostingProjectsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, useCreateHostingProjectDomainMutation, useUpdateHostingDomainMutation, useDeleteHostingDomainMutation, useGetStudentMentorCreationStatusQuery, useSetStudentMentorCreationStatusMutation, coreApiSlice, recommendationPromptTypeEnum, useGetRecommendedPromptsListQuery, useCreateRecommendedPromptMutation, useUpdateRecommendedPromptMutation, useDeleteRecommendedPromptMutation, useLazyGetPublicPlatformImageAssetFileUrlQuery, useCreatePlatformImageAssetMutation, useGetProviderConfigQuery, useCreateProviderConfigMutation, useDeleteProviderConfigMutation, useGetExternalMappingQuery, useGetCredentialsListQuery, useCreateExternalMappingMutation, useDeleteExternalMappingMutation, useGetMemsearchConfigQuery, useUpdateMemsearchConfigMutation, useGetStripeConnectStatusQuery, useStartStripeConnectOnboardingMutation, useLazyGetStripeConnectDashboardQuery, useListPaywallsQuery, useListPricesQuery, useCreatePriceMutation, useUpdatePriceMutation, useDeletePriceMutation, useGetPaywallConfigQuery, useEnablePaywallMutation, useUpdatePaywallMutation, useGetMentorMemoriesListQuery, useGetMemoryCategoriesAdminQuery, useCreateMentorMemoryMutation, splitHostPortInput, validateHostPort, useCreateVirtualMachineNetworkPolicyMutation, useUpdateVirtualMachineNetworkPolicyMutation, VIRTUAL_MACHINE_MAX_POLICY_HOSTS, getVirtualMachineApiError, useDeleteVirtualMachineNetworkPolicyMutation, extractBoundMentorIds, useCreateVirtualMachineSecretMutation, useUpdateVirtualMachineSecretMutation, VIRTUAL_MACHINE_SECRET_VALUE_MIN_LENGTH, VIRTUAL_MACHINE_ENV_VAR_PATTERN, useDeleteVirtualMachineSecretMutation, useGetIntegrationCredentialsQuery, useListVirtualMachineNetworkPoliciesQuery, useListVirtualMachineSecretsQuery, getVirtualMachineErrorStatus, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetMentorSkillAssignmentsQuery, useGetAgentSkillsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, filterSlashSkills, useGetMentorSkillAssignmentsInfiniteQuery, MENTOR_SKILL_ASSIGNMENTS_PAGE_SIZE, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorSettingsQuery, useEditMentorMutation, useUploadLightLogoMutation, useUploadDarkLogoMutation, useUpdatePlatformInfoMutation, LOGO_ENDPOINTS, useCreateEvalDatasetMutation, useAddEvalDatasetItemsMutation, useUploadEvalDatasetCsvMutation, useDeleteEvalDatasetItemMutation, useListEvalDatasetItemsQuery, evalTotalPages, useListEvalDatasetsQuery, useGetUserProjectsQuery, useCreateSessionIdMutation, useGetMentorCategoriesQuery, useGetTenantChatPrivacyConfigQuery as useGetTenantChatPrivacyConfigQuery$1, useGetCallConfigurationsQuery, useCreateCallConfigurationMutation, useUpdateCallConfigurationMutation, chatPrivacyApiSlice, useDeleteMentorMutation, useForkMentorMutation, useGetToolsQuery, useLazyGetMCPServersQuery, useOauthFindMutation, useLazyStartOAuthFlowQuery, useCreateMCPServerMutation, usePartialUpdateMCPServerMutation, useCreateMCPServerConnectionMutation, usePatchMCPServerConnectionMutation, useGetConnectedServicesQuery, useGetMCPServersQuery, useGetMCPServerConnectionsQuery, useUpdateMCPServerMutation, useDeleteMCPServerMutation, useEditMentorJsonMutation, useDisconnectServiceMutation, useGetPromptCategoriesQuery, PRIVACY_ACTIONS, PRIVACY_ENTITY_TYPES, useGetVoicesQuery, useGetVoiceQuery, isBaseAgentMentor, useGetGradeResultQuery, useOverrideGradeResultMutation, useGetChatHistoryFilterQuery, useListGradeResultsQuery, useGetMentorGraderConfigurationQuery, useListGraderCriteriaQuery, useCreateMentorGraderConfigurationMutation, useUpdateMentorGraderConfigurationMutation, useCreateGraderCriterionMutation, useUpdateGraderCriterionMutation, useDeleteGraderCriterionMutation, useGetSpendCapStatusQuery, useGetMentorPublicSettingsQuery, useGetChatHistoryQuery, useGetMentorSummariesQuery, useGetConversationMemoriesQuery, useGetSupportTicketsQuery, useGetSupportTicketMessagesQuery, useCreateSupportTicketMessageMutation, usePatchSupportTicketMutation, useCloseSupportTicketMutation, useCreateLtiMentorMutation, useUpdateLtiMentorMutation, useGetLtiMentorsQuery, useDeleteLtiMentorMutation, useCreateLtiKeyMutation, useUpdateLtiKeyMutation, useDeleteLtiKeyMutation, useGetLtiKeysQuery, useCreateLtiToolMutation, useUpdateLtiToolMutation, useGetLtiToolsQuery, useGetPlatformInfoQuery, useCreatePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useCreateRedirectTokenMutation, useGetShareableLinkQuery, useCreateShareableLinkMutation, useUpdateShareableLinkMutation, useCreateDisclaimerMutation, useUpdateDisclaimerMutation, useGetDisclaimersQuery, useUpdateRbacMentorAccessMutation, useGetRbacMentorAccessListQuery, useStartEvalRunMutation, useEvaluateEvalRunMutation, useGetEvalRunQuery, useDeleteEvalScoreMutation, useListEvalRunJudgesQuery, useCreateEvalScoreMutation, useDeleteEvalRunMutation, useExportEvalRunMutation, useListEvalRunsQuery, useLazyGetEvalRunQuery, evaluationsApiSlice, EVALUATIONS_TAGS, useGetPersonnalizedMentorsQuery, useCreateCallCredentialsMutation, useGetGuidedPromptsQuery, useUpdateChatSessionSharedMutation, useUpdateMessageFeedbackMutation, useLazyGetPromptsSearchQuery, useLazyGetGuidedPromptsQuery, useGetPublicMentorsQuery, useGetPeriodicAgentsQuery, useGetPeriodicAgentLogsListQuery, useCreatePeriodicAgentMutation, useDeletePeriodicAgentMutation, useCreateMemoryCategoryMutation, useUpdateMemoryCategoryMutation, useDeleteMemoryCategoryMutation, useDeletePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation, useGetDisclaimerAgreementsQuery } from '@iblai/data-layer';
|
|
5
|
+
import { useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useGetUserProfileSummaryQuery, useUpdateUserMetadataMutation, useUpdateUserMetadataEdxMutation, useUploadProfileImageMutation, useResetPasswordMutation, useSelfRetireMutation, useCreateUserInstitutionMutation, useGetUserInstitutionsQuery, useCreateUserEducationMutation, useUpdateUserEducationMutation, useDeleteUserEducationMutation, useGetUserEducationQuery, useCreateUserCompanyMutation, useGetUserCompaniesQuery, useCreateUserExperienceMutation, useUpdateUserExperienceMutation, useDeleteUserExperienceMutation, useGetUserExperienceQuery, useGetUserResumeQuery, useCreateUserResumeMutation, useGetMySubscriptionsQuery, useGetItemSubscriptionQuery, useCancelSubscriptionMutation, useGetLearnerCourseOutlineQuery, getSections, findResumeBlock, flattenOutline, normalizeLearnerCompletionError, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useUpdateGlobalMemoryMutation, useUpdateMentorMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useGetAllMentorMemoriesQuery, useDeleteGlobalMemoryMutation, useDeleteMentorMemoryMutation, useUpdateArtifactMutation, useLazyGetArtifactVersionQuery, useLazyListArtifactVersionsQuery, useSetCurrentVersionMutation, useListArtifactVersionsQuery, useLazyGetArtifactQuery, useLazyListArtifactsQuery, useEditSessionMutation, useListArtifactsQuery, useLazyGetSessionIdQuery, useGetAiSearchMentorsQuery, useStarMentorMutation, useUnstarMentorMutation, useGetUserChatHistoryReportsQuery, USER_CHAT_HISTORY_REPORT_ACTIVE_STATES, useCreateUserChatHistoryReportMutation, useLazyGetDownloadReportFromURLQuery, useGetUserChatHistoryReportStatusQuery, userChatHistoryApiSlice, USER_CHAT_HISTORY_QUERY_KEYS, useGetUserChatHistoryQuery, useGetUserChatHistoryFilterQuery, useGetMentorsQuery, useGetUserChatHistorySessionQuery, useUserLlmUsageSummary, useUserLlmSpendOverTime, useUserLlmCostByModel, useUserLlmRecentActivity, USER_LLM_RECENT_ACTIVITY_PAGE_SIZE, useUserLlmTraceObservations, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useGetVectorDocumentsQuery, useGetLlmsQuery, useUpdateUserRoleMutation, useUpdateUserStatusMutation, useUpdatePlatformUserRoleWithPoliciesMutation, usePlatformUsersQuery, useGetAccessibleUsersQuery, isPoliciesResponse, platformApiSlice, featureTags, useLazyGetRbacTeamsAccessListQuery, useCreateRbacTeamsAccessMutation, useGetRbacGroupsQuery, usePlatformUserGroupsQuery, useCreateRbacGroupMutation, useUpdateRbacGroupMutation, useDeleteRbacGroupMutation, useCreatePlatformUserGroupMutation, useUpdatePlatformUserGroupMutation, useDeletePlatformUserGroupMutation, useGetRbacGroupDetailsQuery, useGetPlatformUserGroupDetailsQuery, useGetRbacPermissionsMutation, useGetRbacRolesQuery, useCreateRbacRoleMutation, useUpdateRbacRoleMutation, useDeleteRbacRoleMutation, useGetRbacRoleDetailsQuery, useGetRbacActionsDefinitionQuery, useGetRbacResourceDiscoveryQuery, useGetRbacResourceListQuery, useGetRbacPoliciesQuery, useCreateRbacPolicyMutation, useUpdateRbacPolicyMutation, useDeleteRbacPolicyMutation, useGetRbacPolicyDetailsQuery, useGetWatchedGroupsQuery, useCreateWatchedGroupMutation, useUpdateWatchedGroupMutation, useDeleteWatchedGroupMutation, useAddWatchedUserMutation, useRemoveWatchedUserMutation, useAddWatcherMutation, useUpdateWatcherMutation, useDeleteWatcherMutation, useGetWatchedUsersQuery, useGetWatchersQuery, WATCHER_NOTIFICATION_EVENTS, WATCHER_NOTIFICATION_EVENT_LABELS, useGetApplicationFormsQuery, useGetApplicationFormDetailQuery, useCreateApplicationFormMutation, useUpdateApplicationFormMutation, useGetApplicationAdminDetailQuery, useInviteApplicationCandidateMutation, useLazyGetApplicationAttachmentFileQuery, useCreateApplicationWaiverMutation, useDeleteApplicationWaiverMutation, useSubmitApplicationOverrideMutation, useUpdateApplicationPlacementMutation, useDeleteApplicationCourseAssignmentMutation, useCreateApplicationNoteMutation, useUpdateApplicationNoteMutation, useDeleteApplicationNoteMutation, useTransitionApplicationMutation, useLinkApplicationCandidateMutation, useCreateApplicationPlacementsMutation, useGetCustomMentorsQuery, useCreateApplicationCourseAssignmentsMutation, useGetApplicationBlocksQuery, useDeleteApplicationBlockMutation, useGetApplicationsPipelineStatsQuery, useGetApplicationsPipelineQuery, useGetTenantMetadataQuery, useUpdateTenantMetadataMutation, useLazyGetTenantMetadataQuery, useDeleteApiKeyMutation, useGetApiKeyQuery, useGetApiKeyFieldPermissionsQuery, useUpdateApiKeyMutation, useGetApiKeysQuery, unwrapApiTokenList, useCreateApiKeyMutation, useCreateLLMCredentialMutation, useGetCredentialsSchemaQuery, useGetMaskedLLMCredentialsQuery, useDeleteIntegrationCredentialMutation, useDeleteCredentialMutation, useCreateIntegrationCredentialMutation, useGetIntegrationCredentialsSchemaQuery, useGetMaskedIntegrationCredentialsQuery, useGetAccountBillingInfoQuery, useUpdateAutoRechargeInfoMutation, useTriggerAutoRechargeMutation, useGetAgentSpendCapQuery, useGetTenantSpendCapQuery, useListAgentUserSpendCapsQuery, useUpsertAgentSpendCapMutation, useDeleteAgentSpendCapMutation, useUpsertTenantSpendCapMutation, useDeleteTenantSpendCapMutation, useUpsertUserSpendCapMutation, useDeleteUserSpendCapMutation, useGetLlmUsageMetricsQuery, useListAgentSpendCapsQuery, useGetCreditTransactionsQuery, useCreateStripeCustomerPortalMutation, useSetPlatformConfigurationsMutation, useGetPlatformConfigurationsQuery, useUpdatePlatformMembershipMutation, useGetPlatformMembershipQuery, VERCEL_SPA, useGetCustomDomainsQuery, useGetHostingProjectsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, useCreateHostingProjectDomainMutation, useUpdateHostingDomainMutation, useDeleteHostingDomainMutation, useGetStudentMentorCreationStatusQuery, useSetStudentMentorCreationStatusMutation, coreApiSlice, recommendationPromptTypeEnum, useGetRecommendedPromptsListQuery, useCreateRecommendedPromptMutation, useUpdateRecommendedPromptMutation, useDeleteRecommendedPromptMutation, useLazyGetPublicPlatformImageAssetFileUrlQuery, useCreatePlatformImageAssetMutation, useGetProviderConfigQuery, useCreateProviderConfigMutation, useDeleteProviderConfigMutation, useGetExternalMappingQuery, useGetCredentialsListQuery, useCreateExternalMappingMutation, useDeleteExternalMappingMutation, useGetMemsearchConfigQuery, useUpdateMemsearchConfigMutation, useGetStripeConnectStatusQuery, useStartStripeConnectOnboardingMutation, useLazyGetStripeConnectDashboardQuery, useListPaywallsQuery, useListPricesQuery, useCreatePriceMutation, useUpdatePriceMutation, useDeletePriceMutation, useGetPaywallConfigQuery, useEnablePaywallMutation, useUpdatePaywallMutation, useGetMentorMemoriesListQuery, useGetMemoryCategoriesAdminQuery, useCreateMentorMemoryMutation, splitHostPortInput, validateHostPort, useCreateVirtualMachineNetworkPolicyMutation, useUpdateVirtualMachineNetworkPolicyMutation, VIRTUAL_MACHINE_MAX_POLICY_HOSTS, getVirtualMachineApiError, useDeleteVirtualMachineNetworkPolicyMutation, extractBoundMentorIds, useCreateVirtualMachineSecretMutation, useUpdateVirtualMachineSecretMutation, VIRTUAL_MACHINE_SECRET_VALUE_MIN_LENGTH, VIRTUAL_MACHINE_ENV_VAR_PATTERN, useDeleteVirtualMachineSecretMutation, useGetIntegrationCredentialsQuery, useListVirtualMachineNetworkPoliciesQuery, useListVirtualMachineSecretsQuery, getVirtualMachineErrorStatus, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetMentorSkillAssignmentsQuery, useGetAgentSkillsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, filterSlashSkills, useGetMentorSkillAssignmentsInfiniteQuery, MENTOR_SKILL_ASSIGNMENTS_PAGE_SIZE, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorSettingsQuery, useEditMentorMutation, useUploadLightLogoMutation, useUploadDarkLogoMutation, useUpdatePlatformInfoMutation, LOGO_ENDPOINTS, useCreateEvalDatasetMutation, useAddEvalDatasetItemsMutation, useUploadEvalDatasetCsvMutation, useDeleteEvalDatasetItemMutation, useListEvalDatasetItemsQuery, evalTotalPages, useListEvalDatasetsQuery, useGetUserProjectsQuery, useCreateSessionIdMutation, useGetMentorCategoriesQuery, useGetCallConfigurationsQuery, useCreateCallConfigurationMutation, useUpdateCallConfigurationMutation, useDeleteMentorMutation, useForkMentorMutation, useGetToolsQuery, useLazyGetMCPServersQuery, useOauthFindMutation, useLazyStartOAuthFlowQuery, useCreateMCPServerMutation, usePartialUpdateMCPServerMutation, useCreateMCPServerConnectionMutation, usePatchMCPServerConnectionMutation, useGetConnectedServicesQuery, useGetMCPServersQuery, useGetMCPServerConnectionsQuery, useUpdateMCPServerMutation, useDeleteMCPServerMutation, useEditMentorJsonMutation, useDisconnectServiceMutation, useGetPromptCategoriesQuery, PRIVACY_ACTIONS, PRIVACY_ENTITY_TYPES, mentorApiSlice, useGetVoicesQuery, useGetVoiceQuery, isBaseAgentMentor, useGetGradeResultQuery, useOverrideGradeResultMutation, useGetChatHistoryFilterQuery, useListGradeResultsQuery, useGetMentorGraderConfigurationQuery, useListGraderCriteriaQuery, useCreateMentorGraderConfigurationMutation, useUpdateMentorGraderConfigurationMutation, useCreateGraderCriterionMutation, useUpdateGraderCriterionMutation, useDeleteGraderCriterionMutation, useGetSpendCapStatusQuery, useGetMentorPublicSettingsQuery, useGetChatHistoryQuery, useGetMentorSummariesQuery, useGetConversationMemoriesQuery, useGetSupportTicketsQuery, useGetSupportTicketMessagesQuery, useCreateSupportTicketMessageMutation, usePatchSupportTicketMutation, useCloseSupportTicketMutation, useCreateLtiMentorMutation, useUpdateLtiMentorMutation, useGetLtiMentorsQuery, useDeleteLtiMentorMutation, useCreateLtiKeyMutation, useUpdateLtiKeyMutation, useDeleteLtiKeyMutation, useGetLtiKeysQuery, useCreateLtiToolMutation, useUpdateLtiToolMutation, useGetLtiToolsQuery, useGetPlatformInfoQuery, useCreatePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useCreateRedirectTokenMutation, useGetShareableLinkQuery, useCreateShareableLinkMutation, useUpdateShareableLinkMutation, useCreateDisclaimerMutation, useUpdateDisclaimerMutation, useGetDisclaimersQuery, useUpdateRbacMentorAccessMutation, useGetRbacMentorAccessListQuery, useStartEvalRunMutation, useEvaluateEvalRunMutation, useGetEvalRunQuery, useDeleteEvalScoreMutation, useListEvalRunJudgesQuery, useCreateEvalScoreMutation, useDeleteEvalRunMutation, useExportEvalRunMutation, useListEvalRunsQuery, useLazyGetEvalRunQuery, evaluationsApiSlice, EVALUATIONS_TAGS, useGetPersonnalizedMentorsQuery, useCreateCallCredentialsMutation, useGetGuidedPromptsQuery, useUpdateChatSessionSharedMutation, useUpdateMessageFeedbackMutation, useLazyGetPromptsSearchQuery, useLazyGetGuidedPromptsQuery, useGetPublicMentorsQuery, useGetPeriodicAgentsQuery, useGetPeriodicAgentLogsListQuery, useCreatePeriodicAgentMutation, useDeletePeriodicAgentMutation, useCreateMemoryCategoryMutation, useUpdateMemoryCategoryMutation, useDeleteMemoryCategoryMutation, useDeletePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation, useGetDisclaimerAgreementsQuery } from '@iblai/data-layer';
|
|
6
6
|
import { removeAuthItem, setAuthItem, isTauriEmbeddedLLMHost, selectRbacPermissions, useCurrentTenant, canViewOtherUsersChatHistory, isPureWatcher, getInitials, useTenantMetadata, useUsername, selectStreaming, isLoggedIn, TOOL_NAME_MAP, WRITE_TODOS_TOOL, WithPermissions, canWriteField, useStripeUpgrade, openExternalUrl, CHAT_AREA_SIZE, isAlphaNumeric32, checkRbacPermission, selectNumberOfActiveChatMessages, TOOLS, hasRemoteAiConfig, isSafariBrowser, useShowAttachment, useShowVoiceCall, useShowVoiceRecorder, useMentorSettings, selectShowingSharedChat, useShowFreeTrialDialog, useEmbedMode, chatInputSliceSelectors, useResponsive, useAccessingPublicRoute, useVisitingTenant, useModelFileUploadCapabilities, useChatFileUpload, useVoiceChat, selectAttachedFiles, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, removeFile, chatInputSliceActions, chatActions, WithFormPermissions, useTenantContext, TimeTracker, advancedTabsProperties, defaultSessionIds, pickWritableFields, ANONYMOUS_USERNAME as ANONYMOUS_USERNAME$3, redirectToAuthSpaJoinTenant, selectActiveTab, useAxdToken, useWelcomeMessage, markdownToPlainText, useCachedSessionId, use402ErrorCheck, use401TokenRefresh, selectTokenEnabled, selectToken, useServiceWorker, useUserAgreement, useAdvancedChat, sendMessageToParentWebsite, useMentorTools, useFileDragDrop, eventBus, RemoteEvents, selectEnableChatActionsPopup, advancedTabs, isInIframe, getAuthSpaJoinUrl, addMessage, clearFiles, MENTOR_VISIBILITY } from '@iblai/web-utils';
|
|
7
7
|
import { useDispatch, useSelector } from 'react-redux';
|
|
8
8
|
import { toast } from 'sonner';
|
|
@@ -97832,33 +97832,33 @@ var chatInputFormVoiceChatButton$3 = {
|
|
|
97832
97832
|
voiceRecord: "Voice Record"
|
|
97833
97833
|
};
|
|
97834
97834
|
var chatPrivacyChatPrivacyToggle$3 = {
|
|
97835
|
-
toastPrivateModeOff: "
|
|
97836
|
-
toastCouldNotTurnOff: "Could not turn
|
|
97837
|
-
toastPrivateModeOnNoHistory: "
|
|
97838
|
-
toastCouldNotEnable: "Could not enable
|
|
97839
|
-
toastPrivateModeOnRemovedHistory: "
|
|
97840
|
-
toastFailedToEnable: "Failed to enable
|
|
97835
|
+
toastPrivateModeOff: "Incognito is off.",
|
|
97836
|
+
toastCouldNotTurnOff: "Could not turn Incognito off. Please try again.",
|
|
97837
|
+
toastPrivateModeOnNoHistory: "Incognito is on. This chat won't be saved to history or used for memory.",
|
|
97838
|
+
toastCouldNotEnable: "Could not enable Incognito. Please try again.",
|
|
97839
|
+
toastPrivateModeOnRemovedHistory: "Incognito is on. This conversation has been removed from your history.",
|
|
97840
|
+
toastFailedToEnable: "Failed to enable Incognito. Please try again.",
|
|
97841
97841
|
working: "Working…",
|
|
97842
|
-
ariaLockedByAgent: "
|
|
97843
|
-
ariaPrivateOnForConversation: "
|
|
97844
|
-
ariaTurnOffPrivateMode: "Turn off
|
|
97845
|
-
ariaTurnOnMidConversation: "Turn on
|
|
97846
|
-
ariaTurnOnEmpty: "Turn on
|
|
97847
|
-
tooltipLockedByMentor: "This agent always runs in
|
|
97848
|
-
tooltipLockedByTenant: "Your organization has
|
|
97849
|
-
tooltipLockedGeneric: "
|
|
97850
|
-
tooltipPrivateOnPostSend: "
|
|
97851
|
-
tooltipTurnOff: "Turn off
|
|
97852
|
-
tooltipTurnOnMidConversation: "Turn on
|
|
97853
|
-
tooltipTurnOnEmpty: "Turn on
|
|
97854
|
-
privateMode: "
|
|
97855
|
-
dialogTitle: "Enable
|
|
97842
|
+
ariaLockedByAgent: "Incognito is locked on by this agent. No chat history is recorded.",
|
|
97843
|
+
ariaPrivateOnForConversation: "Incognito is on for this conversation. This chat isn't saved or used for memory.",
|
|
97844
|
+
ariaTurnOffPrivateMode: "Turn off Incognito for this chat.",
|
|
97845
|
+
ariaTurnOnMidConversation: "Turn on Incognito for this conversation. This cannot be undone.",
|
|
97846
|
+
ariaTurnOnEmpty: "Turn on Incognito. This chat won't be saved to history or used for memory.",
|
|
97847
|
+
tooltipLockedByMentor: "This agent always runs in Incognito — no chat history or memory is kept for conversations with it.",
|
|
97848
|
+
tooltipLockedByTenant: "Your organization has Incognito enabled by default — no chat history or memory is kept.",
|
|
97849
|
+
tooltipLockedGeneric: "Incognito is locked on — no chat history or memory is kept.",
|
|
97850
|
+
tooltipPrivateOnPostSend: "Incognito is on for this conversation — this chat isn't saved or used for memory. Start a new chat to leave Incognito.",
|
|
97851
|
+
tooltipTurnOff: "Turn off Incognito — your next chat will be saved to history again.",
|
|
97852
|
+
tooltipTurnOnMidConversation: "Turn on Incognito for the rest of this conversation. Once on, you can't turn it off — start a new chat to resume saving history.",
|
|
97853
|
+
tooltipTurnOnEmpty: "Turn on Incognito — this chat won't be saved to history or used for memory.",
|
|
97854
|
+
privateMode: "Incognito",
|
|
97855
|
+
dialogTitle: "Enable Incognito for this chat?",
|
|
97856
97856
|
dialogDescription: "This conversation will be removed from your history and the assistant will stop using earlier turns from it.",
|
|
97857
|
-
dialogDescriptionBold: "Once on, you can't turn
|
|
97857
|
+
dialogDescriptionBold: "Once on, you can't turn Incognito off for this chat",
|
|
97858
97858
|
dialogDescriptionSuffix: "start a new conversation if you want history saved again.",
|
|
97859
97859
|
cancel: "Cancel",
|
|
97860
97860
|
enabling: "Enabling…",
|
|
97861
|
-
enablePrivateMode: "Enable
|
|
97861
|
+
enablePrivateMode: "Enable Incognito"
|
|
97862
97862
|
};
|
|
97863
97863
|
var chatStopStreamingButton$3 = {
|
|
97864
97864
|
stopStreaming: "Stop streaming"
|
|
@@ -99743,7 +99743,7 @@ var pipChat$3 = {
|
|
|
99743
99743
|
var privacyTabLabels$3 = {
|
|
99744
99744
|
header: {
|
|
99745
99745
|
title: "Privacy",
|
|
99746
|
-
description: "
|
|
99746
|
+
description: "Control what personal information the agent sees and how Incognito works for its conversations."
|
|
99747
99747
|
},
|
|
99748
99748
|
capability: {
|
|
99749
99749
|
title: "PII filtering",
|
|
@@ -99800,6 +99800,29 @@ var privacyTabLabels$3 = {
|
|
|
99800
99800
|
tooltip: "Scrub PII from AI-generated responses. May add slight latency to streamed responses."
|
|
99801
99801
|
}
|
|
99802
99802
|
},
|
|
99803
|
+
subTabs: {
|
|
99804
|
+
piiFiltering: "PII Filtering",
|
|
99805
|
+
incognito: "Incognito"
|
|
99806
|
+
},
|
|
99807
|
+
incognito: {
|
|
99808
|
+
description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
|
|
99809
|
+
groupAriaLabel: "Incognito policy",
|
|
99810
|
+
options: {
|
|
99811
|
+
users: {
|
|
99812
|
+
title: "Users Decide",
|
|
99813
|
+
description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
|
|
99814
|
+
},
|
|
99815
|
+
always: {
|
|
99816
|
+
title: "Always Incognito",
|
|
99817
|
+
description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
|
|
99818
|
+
},
|
|
99819
|
+
never: {
|
|
99820
|
+
title: "Never Incognito",
|
|
99821
|
+
description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
|
|
99822
|
+
}
|
|
99823
|
+
}
|
|
99824
|
+
},
|
|
99825
|
+
noAccess: "You don't have permission to view this agent's privacy settings.",
|
|
99803
99826
|
toasts: {
|
|
99804
99827
|
updateSuccess: "Privacy settings updated",
|
|
99805
99828
|
updateError: "Failed to update privacy settings"
|
|
@@ -99961,16 +99984,16 @@ var profileCatalogInviteModal$3 = {
|
|
|
99961
99984
|
sendInvitationsFailed: "Failed to send invitations. Please try again."
|
|
99962
99985
|
};
|
|
99963
99986
|
var profileChatPrivacyTab$3 = {
|
|
99964
|
-
sectionHeading: "Default
|
|
99965
|
-
sectionDescription: "Choose how conversations with AI agents are recorded by default. You can switch any individual chat into
|
|
99987
|
+
sectionHeading: "Default Incognito Setting",
|
|
99988
|
+
sectionDescription: "Choose how conversations with AI agents are recorded by default. You can switch any individual chat into Incognito from the chat header — and an agent or your organization can override this for specific conversations.",
|
|
99966
99989
|
modeNormalLabel: "Normal",
|
|
99967
99990
|
modeNormalDescription: "Conversations are saved to your history and linked to your account. Agents use prior turns in the same conversation for context.",
|
|
99968
99991
|
modeAnonymizedLabel: "Anonymized",
|
|
99969
99992
|
modeAnonymizedDescription: "Conversations are saved for AI context but stripped of identifying account info. Agents still use prior turns in the same conversation.",
|
|
99970
|
-
modeDisabledLabel: "
|
|
99993
|
+
modeDisabledLabel: "Incognito",
|
|
99971
99994
|
modeDisabledDescription: "Nothing is recorded. Every message is a single-turn Q&A — agents can't reference earlier messages, even within the same conversation.",
|
|
99972
|
-
toastUpdated: "Default
|
|
99973
|
-
toastFailed: "Failed to update default
|
|
99995
|
+
toastUpdated: "Default Incognito Setting updated",
|
|
99996
|
+
toastFailed: "Failed to update default Incognito setting"
|
|
99974
99997
|
};
|
|
99975
99998
|
var profileCsvEditor$3 = {
|
|
99976
99999
|
title: "Edit CSV Data",
|
|
@@ -100000,7 +100023,7 @@ var profileIndex$3 = {
|
|
|
100000
100023
|
descResume: "Upload and preview your most recent resume.",
|
|
100001
100024
|
descPurchases: "View and manage your subscriptions and purchases.",
|
|
100002
100025
|
descMemory: "Manage what the AI remembers about you.",
|
|
100003
|
-
descPrivacy: "Set your default
|
|
100026
|
+
descPrivacy: "Set your default Incognito setting and review what each option does to your conversations with AI agents.",
|
|
100004
100027
|
descChatHistory: "Review and export your conversations with AI agents.",
|
|
100005
100028
|
descSecurity: "Update your security settings and password.",
|
|
100006
100029
|
descAdvanced: "Manage your advanced settings.",
|
|
@@ -100048,7 +100071,7 @@ var profileIndex$3 = {
|
|
|
100048
100071
|
descExperiencePreview: "Professional experience.",
|
|
100049
100072
|
descPurchasesPreview: "Subscriptions and purchases.",
|
|
100050
100073
|
descMemoryPreview: "What the AI remembers.",
|
|
100051
|
-
descPrivacyPreview: "
|
|
100074
|
+
descPrivacyPreview: "Incognito and what each option does for conversations with AI agents.",
|
|
100052
100075
|
descChatHistoryPreview: "Conversations with AI agents.",
|
|
100053
100076
|
ariaAddEducation: "Add education",
|
|
100054
100077
|
ariaAddExperience: "Add experience",
|
|
@@ -100611,7 +100634,7 @@ var settingsTabLabels$3 = {
|
|
|
100611
100634
|
tooltip: "Feature this agent to highlight it in listings."
|
|
100612
100635
|
},
|
|
100613
100636
|
showExploreMentors: {
|
|
100614
|
-
label: "Show
|
|
100637
|
+
label: "Show Additional Agents",
|
|
100615
100638
|
tooltip: "Shows the additional agents section on this agent's welcome screen."
|
|
100616
100639
|
},
|
|
100617
100640
|
showAttachment: {
|
|
@@ -100627,13 +100650,13 @@ var settingsTabLabels$3 = {
|
|
|
100627
100650
|
tooltip: "Lets people start a live voice call with the agent. Each surface has its own switch: In-app chat covers conversations hosted in the app, Embed widget covers the widget on your own site."
|
|
100628
100651
|
},
|
|
100629
100652
|
embedShowAttachment: {
|
|
100630
|
-
label: "Show Attachment (
|
|
100653
|
+
label: "Show Attachment (Embed Widget)"
|
|
100631
100654
|
},
|
|
100632
100655
|
embedShowVoiceRecord: {
|
|
100633
|
-
label: "Show Voice Record (
|
|
100656
|
+
label: "Show Voice Record (Embed Widget)"
|
|
100634
100657
|
},
|
|
100635
100658
|
embedShowVoiceCall: {
|
|
100636
|
-
label: "Show Voice Call (
|
|
100659
|
+
label: "Show Voice Call (Embed Widget)"
|
|
100637
100660
|
},
|
|
100638
100661
|
allowCopies: {
|
|
100639
100662
|
label: "Allow Copies",
|
|
@@ -100650,19 +100673,15 @@ var settingsTabLabels$3 = {
|
|
|
100650
100673
|
removeAriaLabel: "Remove image"
|
|
100651
100674
|
},
|
|
100652
100675
|
enhancedDocRetrieval: {
|
|
100653
|
-
label: "Enhanced
|
|
100676
|
+
label: "Enhanced Document Retrieval",
|
|
100654
100677
|
tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
100655
100678
|
},
|
|
100656
100679
|
promptCaching: {
|
|
100657
|
-
label: "Prompt
|
|
100680
|
+
label: "Prompt Caching",
|
|
100658
100681
|
tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
100659
100682
|
},
|
|
100660
|
-
privateMode: {
|
|
100661
|
-
label: "Enable private mode",
|
|
100662
|
-
tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
100663
|
-
},
|
|
100664
100683
|
smartDocRetrieval: {
|
|
100665
|
-
label: "Smart
|
|
100684
|
+
label: "Smart Document Retrieval",
|
|
100666
100685
|
tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
100667
100686
|
}
|
|
100668
100687
|
},
|
|
@@ -100710,14 +100729,14 @@ var settingsTabLabels$3 = {
|
|
|
100710
100729
|
capabilities: "Capabilities"
|
|
100711
100730
|
},
|
|
100712
100731
|
sections: {
|
|
100713
|
-
chatExperience: "Chat
|
|
100732
|
+
chatExperience: "Chat Experience",
|
|
100714
100733
|
advanced: "Advanced",
|
|
100715
100734
|
perSurface: "Surface Capabilities",
|
|
100716
100735
|
globalSettings: "Global Capabilities"
|
|
100717
100736
|
},
|
|
100718
100737
|
surfaces: {
|
|
100719
|
-
inAppChat: "In-
|
|
100720
|
-
embedWidget: "Embed
|
|
100738
|
+
inAppChat: "In-App Chat",
|
|
100739
|
+
embedWidget: "Embed Widget"
|
|
100721
100740
|
},
|
|
100722
100741
|
notes: {
|
|
100723
100742
|
perSurface: "Set independently for in-app chat and the embed widget.",
|
|
@@ -101357,6 +101376,7 @@ var tabsPoliciestab$3 = {
|
|
|
101357
101376
|
browseResourcesLabel: "Browse resources"
|
|
101358
101377
|
};
|
|
101359
101378
|
var tabsPrivacyTab$3 = {
|
|
101379
|
+
subTabsAriaLabel: "Privacy sub-categories",
|
|
101360
101380
|
moreInfo: "More info",
|
|
101361
101381
|
outputFilterAriaLabelEnabled: "Output filter enabled",
|
|
101362
101382
|
outputFilterAriaLabelDisabled: "Output filter disabled"
|
|
@@ -101445,7 +101465,6 @@ var tabsSettingsTab$3 = {
|
|
|
101445
101465
|
settingsSubCategoriesAriaLabel: "Settings sub-categories",
|
|
101446
101466
|
enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
|
|
101447
101467
|
promptCachingTooltipAriaLabel: "More info about prompt caching",
|
|
101448
|
-
privateModeTooltipAriaLabel: "More info about enable private mode",
|
|
101449
101468
|
smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
|
|
101450
101469
|
toggleAriaLabel: "{label} {state}"
|
|
101451
101470
|
};
|
|
@@ -105703,33 +105722,33 @@ var chatInputFormVoiceChatButton$2 = {
|
|
|
105703
105722
|
voiceRecord: "Enregistrement vocal"
|
|
105704
105723
|
};
|
|
105705
105724
|
var chatPrivacyChatPrivacyToggle$2 = {
|
|
105706
|
-
toastPrivateModeOff: "Le mode
|
|
105707
|
-
toastCouldNotTurnOff: "Impossible de désactiver le mode
|
|
105708
|
-
toastPrivateModeOnNoHistory: "Le mode
|
|
105709
|
-
toastCouldNotEnable: "Impossible d'activer le mode
|
|
105710
|
-
toastPrivateModeOnRemovedHistory: "Le mode
|
|
105711
|
-
toastFailedToEnable: "Échec de l'activation du mode
|
|
105725
|
+
toastPrivateModeOff: "Le mode incognito est désactivé.",
|
|
105726
|
+
toastCouldNotTurnOff: "Impossible de désactiver le mode incognito. Veuillez réessayer.",
|
|
105727
|
+
toastPrivateModeOnNoHistory: "Le mode incognito est activé. Cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
|
|
105728
|
+
toastCouldNotEnable: "Impossible d'activer le mode incognito. Veuillez réessayer.",
|
|
105729
|
+
toastPrivateModeOnRemovedHistory: "Le mode incognito est activé. Cette conversation a été supprimée de votre historique.",
|
|
105730
|
+
toastFailedToEnable: "Échec de l'activation du mode incognito. Veuillez réessayer.",
|
|
105712
105731
|
working: "En cours…",
|
|
105713
|
-
ariaLockedByAgent: "Le mode
|
|
105714
|
-
ariaPrivateOnForConversation: "Le mode
|
|
105715
|
-
ariaTurnOffPrivateMode: "Désactiver le mode
|
|
105716
|
-
ariaTurnOnMidConversation: "Activer le mode
|
|
105717
|
-
ariaTurnOnEmpty: "Activer le mode
|
|
105718
|
-
tooltipLockedByMentor: "Cet agent fonctionne toujours en mode
|
|
105719
|
-
tooltipLockedByTenant: "Votre organisation a activé le mode
|
|
105720
|
-
tooltipLockedGeneric: "Le mode
|
|
105721
|
-
tooltipPrivateOnPostSend: "Le mode
|
|
105722
|
-
tooltipTurnOff: "Désactiver le mode
|
|
105723
|
-
tooltipTurnOnMidConversation: "Activer le mode
|
|
105724
|
-
tooltipTurnOnEmpty: "Activer le mode
|
|
105725
|
-
privateMode: "Mode
|
|
105726
|
-
dialogTitle: "Activer le mode
|
|
105732
|
+
ariaLockedByAgent: "Le mode incognito est verrouillé par cet agent. Aucun historique de conversation n'est enregistré.",
|
|
105733
|
+
ariaPrivateOnForConversation: "Le mode incognito est activé pour cette conversation. Cette discussion n'est pas enregistrée ni utilisée pour la mémoire.",
|
|
105734
|
+
ariaTurnOffPrivateMode: "Désactiver le mode incognito pour cette conversation.",
|
|
105735
|
+
ariaTurnOnMidConversation: "Activer le mode incognito pour cette conversation. Cette action est irréversible.",
|
|
105736
|
+
ariaTurnOnEmpty: "Activer le mode incognito. Cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
|
|
105737
|
+
tooltipLockedByMentor: "Cet agent fonctionne toujours en mode incognito — aucun historique ni mémoire n'est conservé pour les conversations avec lui.",
|
|
105738
|
+
tooltipLockedByTenant: "Votre organisation a activé le mode incognito par défaut — aucun historique ni mémoire n'est conservé.",
|
|
105739
|
+
tooltipLockedGeneric: "Le mode incognito est verrouillé — aucun historique ni mémoire n'est conservé.",
|
|
105740
|
+
tooltipPrivateOnPostSend: "Le mode incognito est activé pour cette conversation — cette discussion n'est pas enregistrée ni utilisée pour la mémoire. Démarrez une nouvelle conversation pour quitter le mode incognito.",
|
|
105741
|
+
tooltipTurnOff: "Désactiver le mode incognito — votre prochaine conversation sera de nouveau enregistrée dans l'historique.",
|
|
105742
|
+
tooltipTurnOnMidConversation: "Activer le mode incognito pour le reste de cette conversation. Une fois activé, vous ne pouvez pas le désactiver — démarrez une nouvelle conversation pour reprendre l'enregistrement de l'historique.",
|
|
105743
|
+
tooltipTurnOnEmpty: "Activer le mode incognito — cette conversation ne sera pas enregistrée dans l'historique ni utilisée pour la mémoire.",
|
|
105744
|
+
privateMode: "Mode incognito",
|
|
105745
|
+
dialogTitle: "Activer le mode incognito pour cette conversation ?",
|
|
105727
105746
|
dialogDescription: "Cette conversation sera supprimée de votre historique et l'assistant cessera d'utiliser les échanges précédents.",
|
|
105728
|
-
dialogDescriptionBold: "Une fois activé, vous ne pouvez pas désactiver le mode
|
|
105747
|
+
dialogDescriptionBold: "Une fois activé, vous ne pouvez pas désactiver le mode incognito pour cette conversation",
|
|
105729
105748
|
dialogDescriptionSuffix: "démarrez une nouvelle conversation si vous souhaitez que l'historique soit de nouveau enregistré.",
|
|
105730
105749
|
cancel: "Annuler",
|
|
105731
105750
|
enabling: "Activation…",
|
|
105732
|
-
enablePrivateMode: "Activer le mode
|
|
105751
|
+
enablePrivateMode: "Activer le mode incognito"
|
|
105733
105752
|
};
|
|
105734
105753
|
var chatStopStreamingButton$2 = {
|
|
105735
105754
|
stopStreaming: "Arrêter la diffusion"
|
|
@@ -107671,6 +107690,29 @@ var privacyTabLabels$2 = {
|
|
|
107671
107690
|
tooltip: "Supprimer les PII des réponses générées par l'IA. Peut ajouter une légère latence aux réponses en streaming."
|
|
107672
107691
|
}
|
|
107673
107692
|
},
|
|
107693
|
+
subTabs: {
|
|
107694
|
+
piiFiltering: "PII Filtering",
|
|
107695
|
+
incognito: "Incognito"
|
|
107696
|
+
},
|
|
107697
|
+
incognito: {
|
|
107698
|
+
description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
|
|
107699
|
+
groupAriaLabel: "Incognito policy",
|
|
107700
|
+
options: {
|
|
107701
|
+
users: {
|
|
107702
|
+
title: "Users Decide",
|
|
107703
|
+
description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
|
|
107704
|
+
},
|
|
107705
|
+
always: {
|
|
107706
|
+
title: "Always Incognito",
|
|
107707
|
+
description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
|
|
107708
|
+
},
|
|
107709
|
+
never: {
|
|
107710
|
+
title: "Never Incognito",
|
|
107711
|
+
description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
|
|
107712
|
+
}
|
|
107713
|
+
}
|
|
107714
|
+
},
|
|
107715
|
+
noAccess: "You don't have permission to view this agent's privacy settings.",
|
|
107674
107716
|
toasts: {
|
|
107675
107717
|
updateSuccess: "Paramètres de confidentialité mis à jour",
|
|
107676
107718
|
updateError: "Échec de la mise à jour des paramètres de confidentialité"
|
|
@@ -107832,16 +107874,16 @@ var profileCatalogInviteModal$2 = {
|
|
|
107832
107874
|
sendInvitationsFailed: "Échec de l'envoi des invitations. Veuillez réessayer."
|
|
107833
107875
|
};
|
|
107834
107876
|
var profileChatPrivacyTab$2 = {
|
|
107835
|
-
sectionHeading: "Mode
|
|
107836
|
-
sectionDescription: "Choisissez comment les conversations avec les agents IA sont enregistrées par défaut. Vous pouvez basculer n'importe quelle conversation en mode
|
|
107877
|
+
sectionHeading: "Mode incognito par défaut",
|
|
107878
|
+
sectionDescription: "Choisissez comment les conversations avec les agents IA sont enregistrées par défaut. Vous pouvez basculer n'importe quelle conversation en mode incognito depuis l'en-tête du chat — et un agent ou votre organisation peut remplacer ce paramètre pour des conversations spécifiques.",
|
|
107837
107879
|
modeNormalLabel: "Normal",
|
|
107838
107880
|
modeNormalDescription: "Les conversations sont enregistrées dans votre historique et liées à votre compte. Les agents utilisent les échanges précédents de la même conversation comme contexte.",
|
|
107839
107881
|
modeAnonymizedLabel: "Anonymisé",
|
|
107840
107882
|
modeAnonymizedDescription: "Les conversations sont enregistrées pour le contexte IA, mais les informations d'identification du compte sont supprimées. Les agents utilisent toujours les échanges précédents de la même conversation.",
|
|
107841
|
-
modeDisabledLabel: "
|
|
107883
|
+
modeDisabledLabel: "Incognito",
|
|
107842
107884
|
modeDisabledDescription: "Rien n'est enregistré. Chaque message est une question-réponse à tour unique — les agents ne peuvent pas référencer les messages précédents, même au sein de la même conversation.",
|
|
107843
|
-
toastUpdated: "Mode
|
|
107844
|
-
toastFailed: "Échec de la mise à jour du mode
|
|
107885
|
+
toastUpdated: "Mode incognito par défaut mis à jour",
|
|
107886
|
+
toastFailed: "Échec de la mise à jour du mode incognito par défaut"
|
|
107845
107887
|
};
|
|
107846
107888
|
var profileCsvEditor$2 = {
|
|
107847
107889
|
title: "Modifier les données CSV",
|
|
@@ -107871,7 +107913,7 @@ var profileIndex$2 = {
|
|
|
107871
107913
|
descResume: "Téléversez et prévisualisez votre CV le plus récent.",
|
|
107872
107914
|
descPurchases: "Consultez et gérez vos abonnements et achats.",
|
|
107873
107915
|
descMemory: "Gérez ce que l'IA se souvient de vous.",
|
|
107874
|
-
descPrivacy: "Définissez votre mode
|
|
107916
|
+
descPrivacy: "Définissez votre mode incognito par défaut et découvrez l'effet de chaque option sur vos conversations avec les agents IA.",
|
|
107875
107917
|
descChatHistory: "Consultez et exportez vos conversations avec les agents IA.",
|
|
107876
107918
|
descSecurity: "Mettez à jour vos paramètres de sécurité et votre mot de passe.",
|
|
107877
107919
|
descAdvanced: "Gérez vos paramètres avancés.",
|
|
@@ -107919,7 +107961,7 @@ var profileIndex$2 = {
|
|
|
107919
107961
|
descExperiencePreview: "Expérience professionnelle.",
|
|
107920
107962
|
descPurchasesPreview: "Abonnements et achats.",
|
|
107921
107963
|
descMemoryPreview: "Ce dont l'IA se souvient.",
|
|
107922
|
-
descPrivacyPreview: "Mode
|
|
107964
|
+
descPrivacyPreview: "Mode incognito et effet de chaque option sur les conversations avec les agents IA.",
|
|
107923
107965
|
descChatHistoryPreview: "Conversations avec les agents IA.",
|
|
107924
107966
|
ariaAddEducation: "Ajouter une formation",
|
|
107925
107967
|
ariaAddExperience: "Ajouter une expérience",
|
|
@@ -108521,19 +108563,15 @@ var settingsTabLabels$2 = {
|
|
|
108521
108563
|
removeAriaLabel: "Supprimer l'image"
|
|
108522
108564
|
},
|
|
108523
108565
|
enhancedDocRetrieval: {
|
|
108524
|
-
label: "Enhanced
|
|
108566
|
+
label: "Enhanced Document Retrieval",
|
|
108525
108567
|
tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
108526
108568
|
},
|
|
108527
108569
|
promptCaching: {
|
|
108528
|
-
label: "Prompt
|
|
108570
|
+
label: "Prompt Caching",
|
|
108529
108571
|
tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
108530
108572
|
},
|
|
108531
|
-
privateMode: {
|
|
108532
|
-
label: "Enable private mode",
|
|
108533
|
-
tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
108534
|
-
},
|
|
108535
108573
|
smartDocRetrieval: {
|
|
108536
|
-
label: "Smart
|
|
108574
|
+
label: "Smart Document Retrieval",
|
|
108537
108575
|
tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
108538
108576
|
}
|
|
108539
108577
|
},
|
|
@@ -108581,14 +108619,14 @@ var settingsTabLabels$2 = {
|
|
|
108581
108619
|
capabilities: "Capabilities"
|
|
108582
108620
|
},
|
|
108583
108621
|
sections: {
|
|
108584
|
-
chatExperience: "Chat
|
|
108622
|
+
chatExperience: "Chat Experience",
|
|
108585
108623
|
advanced: "Advanced",
|
|
108586
108624
|
perSurface: "Capacites par surface",
|
|
108587
108625
|
globalSettings: "Capacites globales"
|
|
108588
108626
|
},
|
|
108589
108627
|
surfaces: {
|
|
108590
|
-
inAppChat: "In-
|
|
108591
|
-
embedWidget: "Embed
|
|
108628
|
+
inAppChat: "In-App Chat",
|
|
108629
|
+
embedWidget: "Embed Widget"
|
|
108592
108630
|
},
|
|
108593
108631
|
notes: {
|
|
108594
108632
|
perSurface: "A configurer independamment pour le chat dans l'application et le widget integre.",
|
|
@@ -109228,6 +109266,7 @@ var tabsPoliciestab$2 = {
|
|
|
109228
109266
|
browseResourcesLabel: "Parcourir les ressources"
|
|
109229
109267
|
};
|
|
109230
109268
|
var tabsPrivacyTab$2 = {
|
|
109269
|
+
subTabsAriaLabel: "Privacy sub-categories",
|
|
109231
109270
|
moreInfo: "Plus d'informations",
|
|
109232
109271
|
outputFilterAriaLabelEnabled: "Filtre de sortie activé",
|
|
109233
109272
|
outputFilterAriaLabelDisabled: "Filtre de sortie désactivé"
|
|
@@ -109316,7 +109355,6 @@ var tabsSettingsTab$2 = {
|
|
|
109316
109355
|
settingsSubCategoriesAriaLabel: "Settings sub-categories",
|
|
109317
109356
|
enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
|
|
109318
109357
|
promptCachingTooltipAriaLabel: "More info about prompt caching",
|
|
109319
|
-
privateModeTooltipAriaLabel: "More info about enable private mode",
|
|
109320
109358
|
smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
|
|
109321
109359
|
toggleAriaLabel: "{label} {state}"
|
|
109322
109360
|
};
|
|
@@ -113408,33 +113446,33 @@ var chatInputFormVoiceChatButton$1 = {
|
|
|
113408
113446
|
voiceRecord: "Grabación de voz"
|
|
113409
113447
|
};
|
|
113410
113448
|
var chatPrivacyChatPrivacyToggle$1 = {
|
|
113411
|
-
toastPrivateModeOff: "El modo
|
|
113412
|
-
toastCouldNotTurnOff: "No se pudo desactivar el modo
|
|
113413
|
-
toastPrivateModeOnNoHistory: "El modo
|
|
113414
|
-
toastCouldNotEnable: "No se pudo activar el modo
|
|
113415
|
-
toastPrivateModeOnRemovedHistory: "El modo
|
|
113416
|
-
toastFailedToEnable: "No se pudo habilitar el modo
|
|
113449
|
+
toastPrivateModeOff: "El modo incógnito está desactivado.",
|
|
113450
|
+
toastCouldNotTurnOff: "No se pudo desactivar el modo incógnito. Por favor, inténtelo de nuevo.",
|
|
113451
|
+
toastPrivateModeOnNoHistory: "El modo incógnito está activado. Esta conversación no se guardará en el historial ni se usará para la memoria.",
|
|
113452
|
+
toastCouldNotEnable: "No se pudo activar el modo incógnito. Por favor, inténtelo de nuevo.",
|
|
113453
|
+
toastPrivateModeOnRemovedHistory: "El modo incógnito está activado. Esta conversación ha sido eliminada de su historial.",
|
|
113454
|
+
toastFailedToEnable: "No se pudo habilitar el modo incógnito. Por favor, inténtelo de nuevo.",
|
|
113417
113455
|
working: "Procesando…",
|
|
113418
|
-
ariaLockedByAgent: "El modo
|
|
113419
|
-
ariaPrivateOnForConversation: "El modo
|
|
113420
|
-
ariaTurnOffPrivateMode: "Desactivar el modo
|
|
113421
|
-
ariaTurnOnMidConversation: "Activar el modo
|
|
113422
|
-
ariaTurnOnEmpty: "Activar el modo
|
|
113423
|
-
tooltipLockedByMentor: "Este agente siempre funciona en modo
|
|
113424
|
-
tooltipLockedByTenant: "Su organización tiene el modo
|
|
113425
|
-
tooltipLockedGeneric: "El modo
|
|
113426
|
-
tooltipPrivateOnPostSend: "El modo
|
|
113427
|
-
tooltipTurnOff: "Desactivar el modo
|
|
113428
|
-
tooltipTurnOnMidConversation: "Activar el modo
|
|
113429
|
-
tooltipTurnOnEmpty: "Activar el modo
|
|
113430
|
-
privateMode: "Modo
|
|
113431
|
-
dialogTitle: "¿Activar el modo
|
|
113456
|
+
ariaLockedByAgent: "El modo incógnito está bloqueado por este agente. No se registra ningún historial de conversación.",
|
|
113457
|
+
ariaPrivateOnForConversation: "El modo incógnito está activado para esta conversación. Este chat no se guarda ni se usa para la memoria.",
|
|
113458
|
+
ariaTurnOffPrivateMode: "Desactivar el modo incógnito para este chat.",
|
|
113459
|
+
ariaTurnOnMidConversation: "Activar el modo incógnito para esta conversación. Esta acción no se puede deshacer.",
|
|
113460
|
+
ariaTurnOnEmpty: "Activar el modo incógnito. Este chat no se guardará en el historial ni se usará para la memoria.",
|
|
113461
|
+
tooltipLockedByMentor: "Este agente siempre funciona en modo incógnito — no se conserva ningún historial ni memoria de las conversaciones con él.",
|
|
113462
|
+
tooltipLockedByTenant: "Su organización tiene el modo incógnito habilitado de forma predeterminada — no se conserva ningún historial ni memoria.",
|
|
113463
|
+
tooltipLockedGeneric: "El modo incógnito está bloqueado — no se conserva ningún historial ni memoria.",
|
|
113464
|
+
tooltipPrivateOnPostSend: "El modo incógnito está activado para esta conversación — este chat no se guarda ni se usa para la memoria. Inicie una nueva conversación para salir del modo incógnito.",
|
|
113465
|
+
tooltipTurnOff: "Desactivar el modo incógnito — su próximo chat se guardará en el historial nuevamente.",
|
|
113466
|
+
tooltipTurnOnMidConversation: "Activar el modo incógnito para el resto de esta conversación. Una vez activado, no puede desactivarlo — inicie una nueva conversación para reanudar el guardado del historial.",
|
|
113467
|
+
tooltipTurnOnEmpty: "Activar el modo incógnito — este chat no se guardará en el historial ni se usará para la memoria.",
|
|
113468
|
+
privateMode: "Modo incógnito",
|
|
113469
|
+
dialogTitle: "¿Activar el modo incógnito para este chat?",
|
|
113432
113470
|
dialogDescription: "Esta conversación se eliminará de su historial y el asistente dejará de usar los turnos anteriores.",
|
|
113433
|
-
dialogDescriptionBold: "Una vez activado, no puede desactivar el modo
|
|
113471
|
+
dialogDescriptionBold: "Una vez activado, no puede desactivar el modo incógnito para este chat",
|
|
113434
113472
|
dialogDescriptionSuffix: "inicie una nueva conversación si desea que el historial se guarde nuevamente.",
|
|
113435
113473
|
cancel: "Cancelar",
|
|
113436
113474
|
enabling: "Activando…",
|
|
113437
|
-
enablePrivateMode: "Activar el modo
|
|
113475
|
+
enablePrivateMode: "Activar el modo incógnito"
|
|
113438
113476
|
};
|
|
113439
113477
|
var chatStopStreamingButton$1 = {
|
|
113440
113478
|
stopStreaming: "Detener transmisión"
|
|
@@ -115376,6 +115414,29 @@ var privacyTabLabels$1 = {
|
|
|
115376
115414
|
tooltip: "Eliminar PII de las respuestas generadas por la IA. Puede añadir una ligera latencia a las respuestas en streaming."
|
|
115377
115415
|
}
|
|
115378
115416
|
},
|
|
115417
|
+
subTabs: {
|
|
115418
|
+
piiFiltering: "PII Filtering",
|
|
115419
|
+
incognito: "Incognito"
|
|
115420
|
+
},
|
|
115421
|
+
incognito: {
|
|
115422
|
+
description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
|
|
115423
|
+
groupAriaLabel: "Incognito policy",
|
|
115424
|
+
options: {
|
|
115425
|
+
users: {
|
|
115426
|
+
title: "Users Decide",
|
|
115427
|
+
description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
|
|
115428
|
+
},
|
|
115429
|
+
always: {
|
|
115430
|
+
title: "Always Incognito",
|
|
115431
|
+
description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
|
|
115432
|
+
},
|
|
115433
|
+
never: {
|
|
115434
|
+
title: "Never Incognito",
|
|
115435
|
+
description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
|
|
115436
|
+
}
|
|
115437
|
+
}
|
|
115438
|
+
},
|
|
115439
|
+
noAccess: "You don't have permission to view this agent's privacy settings.",
|
|
115379
115440
|
toasts: {
|
|
115380
115441
|
updateSuccess: "Configuración de privacidad actualizada",
|
|
115381
115442
|
updateError: "Error al actualizar la configuración de privacidad"
|
|
@@ -115537,16 +115598,16 @@ var profileCatalogInviteModal$1 = {
|
|
|
115537
115598
|
sendInvitationsFailed: "Error al enviar las invitaciones. Por favor, inténtalo de nuevo."
|
|
115538
115599
|
};
|
|
115539
115600
|
var profileChatPrivacyTab$1 = {
|
|
115540
|
-
sectionHeading: "Modo
|
|
115541
|
-
sectionDescription: "Elija cómo se registran por defecto las conversaciones con los agentes de IA. Puede cambiar cualquier chat individual al modo
|
|
115601
|
+
sectionHeading: "Modo incógnito predeterminado",
|
|
115602
|
+
sectionDescription: "Elija cómo se registran por defecto las conversaciones con los agentes de IA. Puede cambiar cualquier chat individual al modo incógnito desde el encabezado del chat — y un agente o su organización puede anular esto para conversaciones específicas.",
|
|
115542
115603
|
modeNormalLabel: "Normal",
|
|
115543
115604
|
modeNormalDescription: "Las conversaciones se guardan en su historial y se vinculan a su cuenta. Los agentes usan los turnos anteriores de la misma conversación como contexto.",
|
|
115544
115605
|
modeAnonymizedLabel: "Anonimizado",
|
|
115545
115606
|
modeAnonymizedDescription: "Las conversaciones se guardan para el contexto de IA, pero se eliminan los datos de identificación de la cuenta. Los agentes siguen usando los turnos anteriores de la misma conversación.",
|
|
115546
|
-
modeDisabledLabel: "
|
|
115607
|
+
modeDisabledLabel: "Incógnito",
|
|
115547
115608
|
modeDisabledDescription: "No se registra nada. Cada mensaje es una pregunta-respuesta de un solo turno — los agentes no pueden hacer referencia a mensajes anteriores, ni siquiera dentro de la misma conversación.",
|
|
115548
|
-
toastUpdated: "Modo
|
|
115549
|
-
toastFailed: "Error al actualizar el modo
|
|
115609
|
+
toastUpdated: "Modo incógnito predeterminado actualizado",
|
|
115610
|
+
toastFailed: "Error al actualizar el modo incógnito predeterminado"
|
|
115550
115611
|
};
|
|
115551
115612
|
var profileCsvEditor$1 = {
|
|
115552
115613
|
title: "Editar datos CSV",
|
|
@@ -115576,7 +115637,7 @@ var profileIndex$1 = {
|
|
|
115576
115637
|
descResume: "Sube y previsualiza tu currículum más reciente.",
|
|
115577
115638
|
descPurchases: "Consulta y administra tus suscripciones y compras.",
|
|
115578
115639
|
descMemory: "Administra lo que la IA recuerda sobre ti.",
|
|
115579
|
-
descPrivacy: "Establece tu Modo
|
|
115640
|
+
descPrivacy: "Establece tu Modo incógnito predeterminado y revisa qué efecto tiene cada opción en tus conversaciones con agentes de IA.",
|
|
115580
115641
|
descChatHistory: "Revisa y exporta tus conversaciones con agentes de IA.",
|
|
115581
115642
|
descSecurity: "Actualiza tu configuración de seguridad y contraseña.",
|
|
115582
115643
|
descAdvanced: "Administra tu configuración avanzada.",
|
|
@@ -115624,7 +115685,7 @@ var profileIndex$1 = {
|
|
|
115624
115685
|
descExperiencePreview: "Experiencia profesional.",
|
|
115625
115686
|
descPurchasesPreview: "Suscripciones y compras.",
|
|
115626
115687
|
descMemoryPreview: "Lo que la IA recuerda.",
|
|
115627
|
-
descPrivacyPreview: "Modo
|
|
115688
|
+
descPrivacyPreview: "Modo incógnito y qué hace cada opción en las conversaciones con agentes de IA.",
|
|
115628
115689
|
descChatHistoryPreview: "Conversaciones con agentes de IA.",
|
|
115629
115690
|
ariaAddEducation: "Añadir educación",
|
|
115630
115691
|
ariaAddExperience: "Añadir experiencia",
|
|
@@ -116226,19 +116287,15 @@ var settingsTabLabels$1 = {
|
|
|
116226
116287
|
removeAriaLabel: "Eliminar imagen"
|
|
116227
116288
|
},
|
|
116228
116289
|
enhancedDocRetrieval: {
|
|
116229
|
-
label: "Enhanced
|
|
116290
|
+
label: "Enhanced Document Retrieval",
|
|
116230
116291
|
tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
116231
116292
|
},
|
|
116232
116293
|
promptCaching: {
|
|
116233
|
-
label: "Prompt
|
|
116294
|
+
label: "Prompt Caching",
|
|
116234
116295
|
tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
116235
116296
|
},
|
|
116236
|
-
privateMode: {
|
|
116237
|
-
label: "Enable private mode",
|
|
116238
|
-
tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
116239
|
-
},
|
|
116240
116297
|
smartDocRetrieval: {
|
|
116241
|
-
label: "Smart
|
|
116298
|
+
label: "Smart Document Retrieval",
|
|
116242
116299
|
tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
116243
116300
|
}
|
|
116244
116301
|
},
|
|
@@ -116286,14 +116343,14 @@ var settingsTabLabels$1 = {
|
|
|
116286
116343
|
capabilities: "Capabilities"
|
|
116287
116344
|
},
|
|
116288
116345
|
sections: {
|
|
116289
|
-
chatExperience: "Chat
|
|
116346
|
+
chatExperience: "Chat Experience",
|
|
116290
116347
|
advanced: "Advanced",
|
|
116291
116348
|
perSurface: "Capacidades por superficie",
|
|
116292
116349
|
globalSettings: "Capacidades globales"
|
|
116293
116350
|
},
|
|
116294
116351
|
surfaces: {
|
|
116295
|
-
inAppChat: "In-
|
|
116296
|
-
embedWidget: "Embed
|
|
116352
|
+
inAppChat: "In-App Chat",
|
|
116353
|
+
embedWidget: "Embed Widget"
|
|
116297
116354
|
},
|
|
116298
116355
|
notes: {
|
|
116299
116356
|
perSurface: "Se configuran de forma independiente para el chat en la aplicacion y el widget incrustado.",
|
|
@@ -116933,6 +116990,7 @@ var tabsPoliciestab$1 = {
|
|
|
116933
116990
|
browseResourcesLabel: "Explorar recursos"
|
|
116934
116991
|
};
|
|
116935
116992
|
var tabsPrivacyTab$1 = {
|
|
116993
|
+
subTabsAriaLabel: "Privacy sub-categories",
|
|
116936
116994
|
moreInfo: "Más información",
|
|
116937
116995
|
outputFilterAriaLabelEnabled: "Filtro de salida activado",
|
|
116938
116996
|
outputFilterAriaLabelDisabled: "Filtro de salida desactivado"
|
|
@@ -117021,7 +117079,6 @@ var tabsSettingsTab$1 = {
|
|
|
117021
117079
|
settingsSubCategoriesAriaLabel: "Settings sub-categories",
|
|
117022
117080
|
enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
|
|
117023
117081
|
promptCachingTooltipAriaLabel: "More info about prompt caching",
|
|
117024
|
-
privateModeTooltipAriaLabel: "More info about enable private mode",
|
|
117025
117082
|
smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
|
|
117026
117083
|
toggleAriaLabel: "{label} {state}"
|
|
117027
117084
|
};
|
|
@@ -121113,33 +121170,33 @@ var chatInputFormVoiceChatButton = {
|
|
|
121113
121170
|
voiceRecord: "语音录制"
|
|
121114
121171
|
};
|
|
121115
121172
|
var chatPrivacyChatPrivacyToggle = {
|
|
121116
|
-
toastPrivateModeOff: "
|
|
121117
|
-
toastCouldNotTurnOff: "
|
|
121118
|
-
toastPrivateModeOnNoHistory: "
|
|
121119
|
-
toastCouldNotEnable: "
|
|
121120
|
-
toastPrivateModeOnRemovedHistory: "
|
|
121121
|
-
toastFailedToEnable: "
|
|
121173
|
+
toastPrivateModeOff: "无痕模式已关闭。",
|
|
121174
|
+
toastCouldNotTurnOff: "无法关闭无痕模式,请重试。",
|
|
121175
|
+
toastPrivateModeOnNoHistory: "无痕模式已开启。此对话不会保存到历史记录,也不会用于记忆。",
|
|
121176
|
+
toastCouldNotEnable: "无法启用无痕模式,请重试。",
|
|
121177
|
+
toastPrivateModeOnRemovedHistory: "无痕模式已开启。此对话已从您的历史记录中移除。",
|
|
121178
|
+
toastFailedToEnable: "启用无痕模式失败,请重试。",
|
|
121122
121179
|
working: "处理中…",
|
|
121123
|
-
ariaLockedByAgent: "
|
|
121124
|
-
ariaPrivateOnForConversation: "
|
|
121125
|
-
ariaTurnOffPrivateMode: "
|
|
121126
|
-
ariaTurnOnMidConversation: "
|
|
121127
|
-
ariaTurnOnEmpty: "
|
|
121128
|
-
tooltipLockedByMentor: "
|
|
121129
|
-
tooltipLockedByTenant: "
|
|
121130
|
-
tooltipLockedGeneric: "
|
|
121131
|
-
tooltipPrivateOnPostSend: "
|
|
121132
|
-
tooltipTurnOff: "
|
|
121133
|
-
tooltipTurnOnMidConversation: "
|
|
121134
|
-
tooltipTurnOnEmpty: "
|
|
121135
|
-
privateMode: "
|
|
121136
|
-
dialogTitle: "
|
|
121180
|
+
ariaLockedByAgent: "无痕模式已被此助手锁定开启,不记录任何对话历史。",
|
|
121181
|
+
ariaPrivateOnForConversation: "此对话已开启无痕模式,聊天内容不会被保存或用于记忆。",
|
|
121182
|
+
ariaTurnOffPrivateMode: "关闭此对话的无痕模式。",
|
|
121183
|
+
ariaTurnOnMidConversation: "为此对话开启无痕模式,此操作不可撤销。",
|
|
121184
|
+
ariaTurnOnEmpty: "开启无痕模式,此对话不会保存到历史记录或用于记忆。",
|
|
121185
|
+
tooltipLockedByMentor: "此助手始终以无痕模式运行——与其进行的对话不保留任何历史记录或记忆。",
|
|
121186
|
+
tooltipLockedByTenant: "您的组织已默认启用无痕模式——不保留任何历史记录或记忆。",
|
|
121187
|
+
tooltipLockedGeneric: "无痕模式已锁定开启——不保留任何历史记录或记忆。",
|
|
121188
|
+
tooltipPrivateOnPostSend: "此对话已开启无痕模式——聊天内容不会被保存或用于记忆。开始新对话以退出无痕模式。",
|
|
121189
|
+
tooltipTurnOff: "关闭无痕模式——您的下一次对话将再次保存到历史记录。",
|
|
121190
|
+
tooltipTurnOnMidConversation: "为本次对话的剩余部分开启无痕模式。一旦开启将无法关闭——开始新对话以恢复历史记录保存。",
|
|
121191
|
+
tooltipTurnOnEmpty: "开启无痕模式——此对话不会保存到历史记录或用于记忆。",
|
|
121192
|
+
privateMode: "无痕模式",
|
|
121193
|
+
dialogTitle: "为此对话启用无痕模式?",
|
|
121137
121194
|
dialogDescription: "此对话将从您的历史记录中移除,助手也将停止使用其中的早期内容。",
|
|
121138
|
-
dialogDescriptionBold: "
|
|
121195
|
+
dialogDescriptionBold: "一旦开启,您将无法为此对话关闭无痕模式",
|
|
121139
121196
|
dialogDescriptionSuffix: "如需再次保存历史记录,请开始新的对话。",
|
|
121140
121197
|
cancel: "取消",
|
|
121141
121198
|
enabling: "启用中…",
|
|
121142
|
-
enablePrivateMode: "
|
|
121199
|
+
enablePrivateMode: "启用无痕模式"
|
|
121143
121200
|
};
|
|
121144
121201
|
var chatStopStreamingButton = {
|
|
121145
121202
|
stopStreaming: "停止流式输出"
|
|
@@ -123081,6 +123138,29 @@ var privacyTabLabels = {
|
|
|
123081
123138
|
tooltip: "从 AI 生成的回复中删除 PII。可能会为流式回复增加轻微延迟。"
|
|
123082
123139
|
}
|
|
123083
123140
|
},
|
|
123141
|
+
subTabs: {
|
|
123142
|
+
piiFiltering: "PII Filtering",
|
|
123143
|
+
incognito: "Incognito"
|
|
123144
|
+
},
|
|
123145
|
+
incognito: {
|
|
123146
|
+
description: "Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.",
|
|
123147
|
+
groupAriaLabel: "Incognito policy",
|
|
123148
|
+
options: {
|
|
123149
|
+
users: {
|
|
123150
|
+
title: "Users Decide",
|
|
123151
|
+
description: "Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual."
|
|
123152
|
+
},
|
|
123153
|
+
always: {
|
|
123154
|
+
title: "Always Incognito",
|
|
123155
|
+
description: "Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone."
|
|
123156
|
+
},
|
|
123157
|
+
never: {
|
|
123158
|
+
title: "Never Incognito",
|
|
123159
|
+
description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead."
|
|
123160
|
+
}
|
|
123161
|
+
}
|
|
123162
|
+
},
|
|
123163
|
+
noAccess: "You don't have permission to view this agent's privacy settings.",
|
|
123084
123164
|
toasts: {
|
|
123085
123165
|
updateSuccess: "隐私设置已更新",
|
|
123086
123166
|
updateError: "更新隐私设置失败"
|
|
@@ -123242,16 +123322,16 @@ var profileCatalogInviteModal = {
|
|
|
123242
123322
|
sendInvitationsFailed: "发送邀请失败,请重试。"
|
|
123243
123323
|
};
|
|
123244
123324
|
var profileChatPrivacyTab = {
|
|
123245
|
-
sectionHeading: "
|
|
123246
|
-
sectionDescription: "选择与 AI
|
|
123325
|
+
sectionHeading: "默认无痕模式",
|
|
123326
|
+
sectionDescription: "选择与 AI 代理的对话默认如何记录。您可以在聊天标题中将任何单独的对话切换为无痕模式——代理或您的组织也可以针对特定对话覆盖此设置。",
|
|
123247
123327
|
modeNormalLabel: "普通",
|
|
123248
123328
|
modeNormalDescription: "对话会保存到您的历史记录并与您的账户关联。代理在同一对话中使用先前的轮次作为上下文。",
|
|
123249
123329
|
modeAnonymizedLabel: "匿名",
|
|
123250
123330
|
modeAnonymizedDescription: "对话会为 AI 上下文而保存,但会去除账户身份识别信息。代理仍会使用同一对话中的先前轮次。",
|
|
123251
|
-
modeDisabledLabel: "
|
|
123331
|
+
modeDisabledLabel: "无痕",
|
|
123252
123332
|
modeDisabledDescription: "不记录任何内容。每条消息都是单轮问答——代理无法引用之前的消息,即使在同一对话中也不例外。",
|
|
123253
|
-
toastUpdated: "
|
|
123254
|
-
toastFailed: "
|
|
123333
|
+
toastUpdated: "默认无痕模式已更新",
|
|
123334
|
+
toastFailed: "更新默认无痕模式失败"
|
|
123255
123335
|
};
|
|
123256
123336
|
var profileCsvEditor = {
|
|
123257
123337
|
title: "编辑 CSV 数据",
|
|
@@ -123931,19 +124011,15 @@ var settingsTabLabels = {
|
|
|
123931
124011
|
removeAriaLabel: "移除图片"
|
|
123932
124012
|
},
|
|
123933
124013
|
enhancedDocRetrieval: {
|
|
123934
|
-
label: "Enhanced
|
|
124014
|
+
label: "Enhanced Document Retrieval",
|
|
123935
124015
|
tooltip: "Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
123936
124016
|
},
|
|
123937
124017
|
promptCaching: {
|
|
123938
|
-
label: "Prompt
|
|
124018
|
+
label: "Prompt Caching",
|
|
123939
124019
|
tooltip: "Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
123940
124020
|
},
|
|
123941
|
-
privateMode: {
|
|
123942
|
-
label: "Enable private mode",
|
|
123943
|
-
tooltip: "When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
123944
|
-
},
|
|
123945
124021
|
smartDocRetrieval: {
|
|
123946
|
-
label: "Smart
|
|
124022
|
+
label: "Smart Document Retrieval",
|
|
123947
124023
|
tooltip: "The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget."
|
|
123948
124024
|
}
|
|
123949
124025
|
},
|
|
@@ -123991,14 +124067,14 @@ var settingsTabLabels = {
|
|
|
123991
124067
|
capabilities: "Capabilities"
|
|
123992
124068
|
},
|
|
123993
124069
|
sections: {
|
|
123994
|
-
chatExperience: "Chat
|
|
124070
|
+
chatExperience: "Chat Experience",
|
|
123995
124071
|
advanced: "Advanced",
|
|
123996
124072
|
perSurface: "按界面功能",
|
|
123997
124073
|
globalSettings: "全局功能"
|
|
123998
124074
|
},
|
|
123999
124075
|
surfaces: {
|
|
124000
|
-
inAppChat: "In-
|
|
124001
|
-
embedWidget: "Embed
|
|
124076
|
+
inAppChat: "In-App Chat",
|
|
124077
|
+
embedWidget: "Embed Widget"
|
|
124002
124078
|
},
|
|
124003
124079
|
notes: {
|
|
124004
124080
|
perSurface: "分别为应用内聊天和嵌入式挂件单独设置。",
|
|
@@ -124638,6 +124714,7 @@ var tabsPoliciestab = {
|
|
|
124638
124714
|
browseResourcesLabel: "浏览资源"
|
|
124639
124715
|
};
|
|
124640
124716
|
var tabsPrivacyTab = {
|
|
124717
|
+
subTabsAriaLabel: "Privacy sub-categories",
|
|
124641
124718
|
moreInfo: "更多信息",
|
|
124642
124719
|
outputFilterAriaLabelEnabled: "输出过滤器已启用",
|
|
124643
124720
|
outputFilterAriaLabelDisabled: "输出过滤器已禁用"
|
|
@@ -124726,7 +124803,6 @@ var tabsSettingsTab = {
|
|
|
124726
124803
|
settingsSubCategoriesAriaLabel: "Settings sub-categories",
|
|
124727
124804
|
enhancedDocRetrievalTooltipAriaLabel: "More info about enhanced document retrieval",
|
|
124728
124805
|
promptCachingTooltipAriaLabel: "More info about prompt caching",
|
|
124729
|
-
privateModeTooltipAriaLabel: "More info about enable private mode",
|
|
124730
124806
|
smartDocRetrievalTooltipAriaLabel: "More info about smart document retrieval",
|
|
124731
124807
|
toggleAriaLabel: "{label} {state}"
|
|
124732
124808
|
};
|
|
@@ -181791,7 +181867,7 @@ const pick = (name, fallback) => { var _a; return ((_a = read(name)) !== null &&
|
|
|
181791
181867
|
const CHAT_PRIVACY_SUPPORTED = !!read('ChatPrivacyModeEnum') && !!read('CHAT_PRIVACY_MODES');
|
|
181792
181868
|
const ChatPrivacyModeEnum = read('ChatPrivacyModeEnum');
|
|
181793
181869
|
const CHAT_PRIVACY_MODES = ((_a$1 = read('CHAT_PRIVACY_MODES')) !== null && _a$1 !== void 0 ? _a$1 : []);
|
|
181794
|
-
read('chatPrivacyApiSlice');
|
|
181870
|
+
const chatPrivacyApiSlice = read('chatPrivacyApiSlice');
|
|
181795
181871
|
const useGetTenantChatPrivacyConfigQuery = pick('useGetTenantChatPrivacyConfigQuery', noopQuery);
|
|
181796
181872
|
const useUpdateTenantChatPrivacyConfigMutation = pick('useUpdateTenantChatPrivacyConfigMutation', noopMutation);
|
|
181797
181873
|
pick('useGetChatPrivacyEffectiveQuery', noopQuery);
|
|
@@ -181876,15 +181952,15 @@ function ChatPrivacyTab({ org, username }) {
|
|
|
181876
181952
|
return (jsxs("div", { className: "space-y-4", "data-testid": "chat-privacy-tab-body", children: [jsxs("div", { children: [jsx("h4", { className: "text-sm font-semibold text-gray-700 dark:text-gray-300 tracking-wide", children: t('profileChatPrivacyTab.sectionHeading') }), jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: t('profileChatPrivacyTab.sectionDescription') })] }), jsx("div", { className: "space-y-3", children: CHAT_PRIVACY_MODES.map((mode) => {
|
|
181877
181953
|
const { labelKey, descriptionKey, icon: Icon } = MODE_COPY[mode];
|
|
181878
181954
|
const isSelected = pending === mode;
|
|
181879
|
-
return (jsxs("button", { type: "button", "aria-pressed": isSelected, "data-testid": `chat-privacy-mode-${mode}`, "data-state": isSelected ? 'selected' : 'unselected', onClick: () => void handleSelect(mode), disabled: isUpdating || isPreview, className: cn('w-full flex
|
|
181955
|
+
return (jsxs("button", { type: "button", "aria-pressed": isSelected, "data-testid": `chat-privacy-mode-${mode}`, "data-state": isSelected ? 'selected' : 'unselected', onClick: () => void handleSelect(mode), disabled: isUpdating || isPreview, className: cn('w-full flex flex-col gap-1 rounded-lg border px-5 py-4 text-left transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-60', isSelected
|
|
181880
181956
|
? 'border-blue-500 bg-blue-50/40 dark:bg-blue-950/20'
|
|
181881
|
-
: 'border-gray-200 hover:bg-gray-50 dark:border-gray-800 dark:hover:bg-gray-800/40'), children: [jsx(Icon, { className: cn('h-
|
|
181882
|
-
|
|
181883
|
-
|
|
181884
|
-
|
|
181885
|
-
|
|
181886
|
-
|
|
181887
|
-
|
|
181957
|
+
: 'border-gray-200 hover:bg-gray-50 dark:border-gray-800 dark:hover:bg-gray-800/40'), children: [jsxs("span", { className: "flex w-full items-center gap-3", children: [jsx(Icon, { className: cn('h-4 w-4 flex-shrink-0', isSelected
|
|
181958
|
+
? 'text-blue-600 dark:text-blue-400'
|
|
181959
|
+
: 'text-gray-400 dark:text-gray-500'), "aria-hidden": "true" }), jsx("span", { className: cn('min-w-0 flex-1 text-sm font-medium', isSelected
|
|
181960
|
+
? 'text-blue-900 dark:text-blue-100'
|
|
181961
|
+
: 'text-gray-900 dark:text-gray-100'), children: t(labelKey) }), jsx("span", { "aria-hidden": "true", className: cn('h-5 w-5 flex items-center justify-center rounded-full border-2 flex-shrink-0 transition-colors', isSelected
|
|
181962
|
+
? 'border-blue-500 bg-blue-500'
|
|
181963
|
+
: 'border-gray-300 dark:border-gray-600'), children: isSelected && jsx(Check, { className: "h-3 w-3 text-white", strokeWidth: 3 }) })] }), jsx("p", { className: "pl-7 pr-8 text-xs text-gray-500 dark:text-gray-400", children: t(descriptionKey) })] }, mode));
|
|
181888
181964
|
}) })] }));
|
|
181889
181965
|
}
|
|
181890
181966
|
|
|
@@ -274117,7 +274193,7 @@ function Profile({ tenant, username, tenants, onClose, customization = {}, isAdm
|
|
|
274117
274193
|
const { data: memsearchStatus, isError: isMemsearchStatusError } = useGetMemsearchStatusQuery({ org: tenant, userId: username }, { skip: !enableMemoryTab });
|
|
274118
274194
|
// Show memory tab if enabled for this platform AND memsearch is enabled (or status API is unavailable)
|
|
274119
274195
|
const isMemoryEnabled = enableMemoryTab && (isMemsearchStatusError || ((_a = memsearchStatus === null || memsearchStatus === void 0 ? void 0 : memsearchStatus.enable_memsearch) !== null && _a !== void 0 ? _a : false));
|
|
274120
|
-
// The
|
|
274196
|
+
// The Privacy tab only appears when the tenant has opted into user-controlled
|
|
274121
274197
|
// chat privacy. Backend returns { allow_user_chat_privacy_control: boolean }.
|
|
274122
274198
|
const { data: chatPrivacyConfig } = useGetTenantChatPrivacyConfigQuery({ org: tenant, userId: username }, { skip: !tenant || !username });
|
|
274123
274199
|
const isChatPrivacyEnabled = !!(chatPrivacyConfig === null || chatPrivacyConfig === void 0 ? void 0 : chatPrivacyConfig.allow_user_chat_privacy_control);
|
|
@@ -274199,7 +274275,7 @@ function Profile({ tenant, username, tenants, onClose, customization = {}, isAdm
|
|
|
274199
274275
|
// id stays as 'privacy' so callers passing `targetTab='privacy'` and
|
|
274200
274276
|
// any test selectors targeting #panel-privacy keep working. The
|
|
274201
274277
|
// user-visible `label` is "Privacy"; the chat-privacy feature itself
|
|
274202
|
-
// is still called "
|
|
274278
|
+
// is still called "Incognito" within the tab's content. It sits with
|
|
274203
274279
|
// the account controls, just above Security.
|
|
274204
274280
|
...(isChatPrivacyEnabled
|
|
274205
274281
|
? [
|
|
@@ -301847,14 +301923,14 @@ const AGENT_SETTINGS_TAB_LABELS = {
|
|
|
301847
301923
|
capabilities: 'Capabilities',
|
|
301848
301924
|
},
|
|
301849
301925
|
sections: {
|
|
301850
|
-
chatExperience: 'Chat
|
|
301926
|
+
chatExperience: 'Chat Experience',
|
|
301851
301927
|
advanced: 'Advanced',
|
|
301852
301928
|
perSurface: 'Surface Capabilities',
|
|
301853
301929
|
globalSettings: 'Global Capabilities',
|
|
301854
301930
|
},
|
|
301855
301931
|
surfaces: {
|
|
301856
|
-
inAppChat: 'In-
|
|
301857
|
-
embedWidget: 'Embed
|
|
301932
|
+
inAppChat: 'In-App Chat',
|
|
301933
|
+
embedWidget: 'Embed Widget',
|
|
301858
301934
|
},
|
|
301859
301935
|
notes: {
|
|
301860
301936
|
perSurface: 'Set independently for in-app chat and the embed widget.',
|
|
@@ -301906,7 +301982,7 @@ const AGENT_SETTINGS_TAB_LABELS = {
|
|
|
301906
301982
|
tooltip: 'Feature this agent to highlight it in listings.',
|
|
301907
301983
|
},
|
|
301908
301984
|
showExploreMentors: {
|
|
301909
|
-
label: 'Show
|
|
301985
|
+
label: 'Show Additional Agents',
|
|
301910
301986
|
tooltip: "Shows the additional agents section on this agent's welcome screen.",
|
|
301911
301987
|
},
|
|
301912
301988
|
showAttachment: {
|
|
@@ -301922,13 +301998,13 @@ const AGENT_SETTINGS_TAB_LABELS = {
|
|
|
301922
301998
|
tooltip: 'Lets people start a live voice call with the agent. Each surface has its own switch: In-app chat covers conversations hosted in the app, Embed widget covers the widget on your own site.',
|
|
301923
301999
|
},
|
|
301924
302000
|
embedShowAttachment: {
|
|
301925
|
-
label: 'Show Attachment (
|
|
302001
|
+
label: 'Show Attachment (Embed Widget)',
|
|
301926
302002
|
},
|
|
301927
302003
|
embedShowVoiceRecord: {
|
|
301928
|
-
label: 'Show Voice Record (
|
|
302004
|
+
label: 'Show Voice Record (Embed Widget)',
|
|
301929
302005
|
},
|
|
301930
302006
|
embedShowVoiceCall: {
|
|
301931
|
-
label: 'Show Voice Call (
|
|
302007
|
+
label: 'Show Voice Call (Embed Widget)',
|
|
301932
302008
|
},
|
|
301933
302009
|
allowCopies: {
|
|
301934
302010
|
label: 'Allow Copies',
|
|
@@ -301939,19 +302015,15 @@ const AGENT_SETTINGS_TAB_LABELS = {
|
|
|
301939
302015
|
tooltip: 'Show the agent’s reasoning steps while it responds. This setting has one value, so it applies to both in-app chat and the embed widget.',
|
|
301940
302016
|
},
|
|
301941
302017
|
enhancedDocRetrieval: {
|
|
301942
|
-
label: 'Enhanced
|
|
302018
|
+
label: 'Enhanced Document Retrieval',
|
|
301943
302019
|
tooltip: 'Run multiple search queries per question to pull in more relevant documents. This setting has one value, so it applies to both in-app chat and the embed widget.',
|
|
301944
302020
|
},
|
|
301945
302021
|
promptCaching: {
|
|
301946
|
-
label: 'Prompt
|
|
302022
|
+
label: 'Prompt Caching',
|
|
301947
302023
|
tooltip: 'Cache repeated prompt context to lower latency and cost on long conversations. This setting has one value, so it applies to both in-app chat and the embed widget.',
|
|
301948
302024
|
},
|
|
301949
|
-
privateMode: {
|
|
301950
|
-
label: 'Enable private mode',
|
|
301951
|
-
tooltip: 'When on, every conversation with this agent runs in private mode — no chat history or memory is stored for any user. Use this for sensitive or compliance-bound deployments. This setting has one value, so it applies to both in-app chat and the embed widget.',
|
|
301952
|
-
},
|
|
301953
302025
|
smartDocRetrieval: {
|
|
301954
|
-
label: 'Smart
|
|
302026
|
+
label: 'Smart Document Retrieval',
|
|
301955
302027
|
tooltip: 'The agent fetches documents only when it needs them, instead of searching the knowledge base on every turn. This setting has one value, so it applies to both in-app chat and the embed widget.',
|
|
301956
302028
|
},
|
|
301957
302029
|
image: {
|
|
@@ -302116,10 +302188,6 @@ function buildSettingsTabLabels(t) {
|
|
|
302116
302188
|
label: t('settingsTabLabels.fields.promptCaching.label'),
|
|
302117
302189
|
tooltip: t('settingsTabLabels.fields.promptCaching.tooltip'),
|
|
302118
302190
|
},
|
|
302119
|
-
privateMode: {
|
|
302120
|
-
label: t('settingsTabLabels.fields.privateMode.label'),
|
|
302121
|
-
tooltip: t('settingsTabLabels.fields.privateMode.tooltip'),
|
|
302122
|
-
},
|
|
302123
302191
|
smartDocRetrieval: {
|
|
302124
302192
|
label: t('settingsTabLabels.fields.smartDocRetrieval.label'),
|
|
302125
302193
|
tooltip: t('settingsTabLabels.fields.smartDocRetrieval.tooltip'),
|
|
@@ -302190,9 +302258,8 @@ function resolveSettingsTabLabels(override, t) {
|
|
|
302190
302258
|
}
|
|
302191
302259
|
|
|
302192
302260
|
function useEditMentorSettings({ onSuccessfulSave, labels }) {
|
|
302193
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r
|
|
302261
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
302194
302262
|
const { tenantKey, mentorId, username, enableRBAC, executeGatedAction } = useAgentSettings();
|
|
302195
|
-
const dispatch = useDispatch();
|
|
302196
302263
|
const { data: categories, isLoading: isLoadingCategories } = useGetMentorCategoriesQuery(
|
|
302197
302264
|
// @ts-expect-error userId is not part of the query type definition
|
|
302198
302265
|
{ org: tenantKey, userId: username !== null && username !== void 0 ? username : '' }, {
|
|
@@ -302205,9 +302272,6 @@ function useEditMentorSettings({ onSuccessfulSave, labels }) {
|
|
|
302205
302272
|
});
|
|
302206
302273
|
const m = mentor;
|
|
302207
302274
|
const [editMentor, { isLoading: isLoadingEditMentor }] = useEditMentorMutation();
|
|
302208
|
-
// Tenant gate for the agent-level "Enable private mode" row — hidden when off.
|
|
302209
|
-
const { data: tenantChatPrivacyConfig } = useGetTenantChatPrivacyConfigQuery$1({ org: tenantKey !== null && tenantKey !== void 0 ? tenantKey : '', userId: username !== null && username !== void 0 ? username : '' }, { skip: !tenantKey || !username });
|
|
302210
|
-
const tenantAllowsChatPrivacyControl = !!(tenantChatPrivacyConfig === null || tenantChatPrivacyConfig === void 0 ? void 0 : tenantChatPrivacyConfig.allow_user_chat_privacy_control);
|
|
302211
302275
|
// `use_function_calling_for_rag` lives on CallConfiguration; use the inlined
|
|
302212
302276
|
// config, else fetch the list. (The voice / screen-share toggles moved to
|
|
302213
302277
|
// their own tabs, but this field still lives in Settings.)
|
|
@@ -302240,8 +302304,7 @@ function useEditMentorSettings({ onSuccessfulSave, labels }) {
|
|
|
302240
302304
|
show_reasoning: (_o = m === null || m === void 0 ? void 0 : m.show_reasoning) !== null && _o !== void 0 ? _o : false,
|
|
302241
302305
|
enable_multi_query_rag: (_p = m === null || m === void 0 ? void 0 : m.enable_multi_query_rag) !== null && _p !== void 0 ? _p : false,
|
|
302242
302306
|
enable_prompt_caching: (_q = m === null || m === void 0 ? void 0 : m.enable_prompt_caching) !== null && _q !== void 0 ? _q : false,
|
|
302243
|
-
|
|
302244
|
-
use_function_calling_for_rag: (_s = existingCallConfig === null || existingCallConfig === void 0 ? void 0 : existingCallConfig.use_function_calling_for_rag) !== null && _s !== void 0 ? _s : false,
|
|
302307
|
+
use_function_calling_for_rag: (_r = existingCallConfig === null || existingCallConfig === void 0 ? void 0 : existingCallConfig.use_function_calling_for_rag) !== null && _r !== void 0 ? _r : false,
|
|
302245
302308
|
},
|
|
302246
302309
|
onSubmit: async ({ value }) => {
|
|
302247
302310
|
var _a;
|
|
@@ -302302,9 +302365,6 @@ function useEditMentorSettings({ onSuccessfulSave, labels }) {
|
|
|
302302
302365
|
if (value.enable_prompt_caching !== undefined) {
|
|
302303
302366
|
values.enable_prompt_caching = value.enable_prompt_caching;
|
|
302304
302367
|
}
|
|
302305
|
-
if (value.disable_chathistory !== undefined) {
|
|
302306
|
-
values.disable_chathistory = value.disable_chathistory;
|
|
302307
|
-
}
|
|
302308
302368
|
// Drop any field the user only has read access to. Including a read-only
|
|
302309
302369
|
// field makes the PUT fail ("No permission to write field: ..."). A few
|
|
302310
302370
|
// payload keys are gated under a differently named permission key.
|
|
@@ -302326,9 +302386,6 @@ function useEditMentorSettings({ onSuccessfulSave, labels }) {
|
|
|
302326
302386
|
...writableValues,
|
|
302327
302387
|
},
|
|
302328
302388
|
}).unwrap();
|
|
302329
|
-
// Refresh the nav-bar chat-privacy toggle — the mentor-settings mutation
|
|
302330
|
-
// doesn't invalidate chat-privacy-effective. Unconditional on purpose.
|
|
302331
|
-
dispatch(chatPrivacyApiSlice.util.invalidateTags(['ChatPrivacyEffective']));
|
|
302332
302389
|
// Sync `use_function_calling_for_rag` to CallConfiguration only when
|
|
302333
302390
|
// changed (POST a new config if none exists, else PATCH). `show_voice_call`
|
|
302334
302391
|
// (Voice tab) and `enable_video` (Screen Share tab) are no longer written
|
|
@@ -302390,7 +302447,6 @@ function useEditMentorSettings({ onSuccessfulSave, labels }) {
|
|
|
302390
302447
|
handleSubmit,
|
|
302391
302448
|
isDisabled,
|
|
302392
302449
|
isLoadingEditMentor,
|
|
302393
|
-
tenantAllowsChatPrivacyControl,
|
|
302394
302450
|
};
|
|
302395
302451
|
}
|
|
302396
302452
|
|
|
@@ -302630,7 +302686,7 @@ function DiscoverySubTab({ form, labels, mentor, isDisabled }) {
|
|
|
302630
302686
|
* single field render as one switch below the matrix, so they read as
|
|
302631
302687
|
* "applies everywhere".
|
|
302632
302688
|
*/
|
|
302633
|
-
function CapabilitiesSubTab({ form, labels, mentor, isDisabled
|
|
302689
|
+
function CapabilitiesSubTab({ form, labels, mentor, isDisabled }) {
|
|
302634
302690
|
const t = useT();
|
|
302635
302691
|
const { enableRBAC } = useAgentSettings();
|
|
302636
302692
|
const fieldPermissions = getFieldPermissions(mentor);
|
|
@@ -302647,7 +302703,7 @@ function CapabilitiesSubTab({ form, labels, mentor, isDisabled, tenantAllowsChat
|
|
|
302647
302703
|
// field-permission map, and `WithFormPermissions` HIDES a control
|
|
302648
302704
|
// whose key is missing on an RBAC tenant. The Voice tab treats the
|
|
302649
302705
|
// same field the same way.
|
|
302650
|
-
jsx(CapabilityMatrixSwitch, { form: form, name: "show_voice_call", label: labels.fields.showVoiceCall.label, isDisabled: isDisabled }), embedWidget: jsx(CapabilityMatrixSwitch, { form: form, name: "embed_show_voice_call", label: labels.fields.embedShowVoiceCall.label, isDisabled: isDisabled }) })] })] }), jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 px-4 py-3", "data-testid": "capabilities-global-settings-banner", children: [jsx("h4", { className: "text-sm font-medium text-gray-900", children: labels.sections.globalSettings }), jsx("p", { className: "mt-1 text-xs text-gray-600", children: labels.notes.globalSettings })] }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "space-y-3", children: [jsx("h4", { className: "text-xs font-semibold tracking-wide text-gray-500 uppercase", children: labels.sections.chatExperience }), jsx(SettingToggleField, { form: form, name: "show_reasoning", label: labels.fields.showReasoning.label, tooltip: labels.fields.showReasoning.tooltip, tooltipAriaLabel: t('tabsSettingsTab.showReasoningTooltipAriaLabel'), isDisabled: isDisabled, alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "enable_multi_query_rag", label: labels.fields.enhancedDocRetrieval.label, tooltip: labels.fields.enhancedDocRetrieval.tooltip, tooltipAriaLabel: t('tabsSettingsTab.enhancedDocRetrievalTooltipAriaLabel'), isDisabled: isDisabled, permissionName: "enable_multi_query_rag", fieldPermissions: fieldPermissions, enableRBAC: enableRBAC, alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "use_function_calling_for_rag", label: labels.fields.smartDocRetrieval.label, tooltip: labels.fields.smartDocRetrieval.tooltip, tooltipAriaLabel: t('tabsSettingsTab.smartDocRetrievalTooltipAriaLabel'), isDisabled: isDisabled, testId: "settings-use-function-calling-for-rag-switch", alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "enable_prompt_caching", label: labels.fields.promptCaching.label, tooltip: labels.fields.promptCaching.tooltip, tooltipAriaLabel: t('tabsSettingsTab.promptCachingTooltipAriaLabel'), isDisabled: isDisabled, permissionName: "enable_prompt_caching", fieldPermissions: fieldPermissions, enableRBAC: enableRBAC, alignToMatrix: true })] }), jsxs("div", { className: "space-y-3", children: [jsx("h4", { className: "text-xs font-semibold tracking-wide text-gray-500 uppercase", children: labels.sections.advanced }),
|
|
302706
|
+
jsx(CapabilityMatrixSwitch, { form: form, name: "show_voice_call", label: labels.fields.showVoiceCall.label, isDisabled: isDisabled }), embedWidget: jsx(CapabilityMatrixSwitch, { form: form, name: "embed_show_voice_call", label: labels.fields.embedShowVoiceCall.label, isDisabled: isDisabled }) })] })] }), jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 px-4 py-3", "data-testid": "capabilities-global-settings-banner", children: [jsx("h4", { className: "text-sm font-medium text-gray-900", children: labels.sections.globalSettings }), jsx("p", { className: "mt-1 text-xs text-gray-600", children: labels.notes.globalSettings })] }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "space-y-3", children: [jsx("h4", { className: "text-xs font-semibold tracking-wide text-gray-500 uppercase", children: labels.sections.chatExperience }), jsx(SettingToggleField, { form: form, name: "show_reasoning", label: labels.fields.showReasoning.label, tooltip: labels.fields.showReasoning.tooltip, tooltipAriaLabel: t('tabsSettingsTab.showReasoningTooltipAriaLabel'), isDisabled: isDisabled, alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "enable_multi_query_rag", label: labels.fields.enhancedDocRetrieval.label, tooltip: labels.fields.enhancedDocRetrieval.tooltip, tooltipAriaLabel: t('tabsSettingsTab.enhancedDocRetrievalTooltipAriaLabel'), isDisabled: isDisabled, permissionName: "enable_multi_query_rag", fieldPermissions: fieldPermissions, enableRBAC: enableRBAC, alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "use_function_calling_for_rag", label: labels.fields.smartDocRetrieval.label, tooltip: labels.fields.smartDocRetrieval.tooltip, tooltipAriaLabel: t('tabsSettingsTab.smartDocRetrievalTooltipAriaLabel'), isDisabled: isDisabled, testId: "settings-use-function-calling-for-rag-switch", alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "enable_prompt_caching", label: labels.fields.promptCaching.label, tooltip: labels.fields.promptCaching.tooltip, tooltipAriaLabel: t('tabsSettingsTab.promptCachingTooltipAriaLabel'), isDisabled: isDisabled, permissionName: "enable_prompt_caching", fieldPermissions: fieldPermissions, enableRBAC: enableRBAC, alignToMatrix: true })] }), jsxs("div", { className: "space-y-3", children: [jsx("h4", { className: "text-xs font-semibold tracking-wide text-gray-500 uppercase", children: labels.sections.advanced }), jsx(SettingToggleField, { form: form, name: "forkable", label: labels.fields.allowCopies.label, tooltip: labels.fields.allowCopies.tooltip, tooltipAriaLabel: t('tabsSettingsTab.allowCopiesTooltipAriaLabel'), isDisabled: isDisabled, alignToMatrix: true }), jsx(SettingToggleField, { form: form, name: "show_explore_mentors", label: labels.fields.showExploreMentors.label, tooltip: labels.fields.showExploreMentors.tooltip, tooltipAriaLabel: t('tabsSettingsTab.showExploreMentorsTooltipAriaLabel'), isDisabled: isDisabled, permissionName: "show_explore_mentors", fieldPermissions: fieldPermissions, enableRBAC: enableRBAC, testId: "settings-show-explore-mentors-switch", alignToMatrix: true })] })] })] }));
|
|
302651
302707
|
}
|
|
302652
302708
|
|
|
302653
302709
|
/* istanbul ignore next -- @preserve dynamic import is not testable in unit tests */
|
|
@@ -302665,7 +302721,7 @@ function AgentSettingsTab({ onSuccessfulSave, onSuccessfulDelete, tenants, isLoa
|
|
|
302665
302721
|
const [subTab, setSubTab] = React__default.useState('basic');
|
|
302666
302722
|
const labels = React__default.useMemo(() => resolveSettingsTabLabels(labelsOverride, t), [labelsOverride, t]);
|
|
302667
302723
|
const { tenantKey, mentorId, username, enableRBAC } = useAgentSettings();
|
|
302668
|
-
const { mentor, categories, form, handleSubmit, isDisabled, isLoadingEditMentor
|
|
302724
|
+
const { mentor, categories, form, handleSubmit, isDisabled, isLoadingEditMentor } = useEditMentorSettings({ onSuccessfulSave, labels });
|
|
302669
302725
|
const subTabTriggerClass = 'px-3 py-1.5 text-sm font-medium text-gray-700 data-[state=active]:bg-white data-[state=active]:text-gray-900';
|
|
302670
302726
|
return (jsxs(Fragment$1, { children: [jsx("div", { className: "flex h-[73px] flex-shrink-0 items-center border-b border-gray-200 bg-white p-4 lg:block", children: jsxs("div", { children: [jsx("h3", { className: "mb-1 text-base font-medium text-gray-900", children: labels.header.title }), jsx("p", { className: "text-xs text-gray-600", children: labels.header.description })] }) }), jsxs("div", { className: "flex flex-1 flex-col overflow-hidden", children: [jsx("div", { className: "flex-1 space-y-4 p-3 lg:p-4", style: {
|
|
302671
302727
|
overflowY: 'auto',
|
|
@@ -302674,7 +302730,7 @@ function AgentSettingsTab({ onSuccessfulSave, onSuccessfulDelete, tenants, isLoa
|
|
|
302674
302730
|
formEvent.preventDefault();
|
|
302675
302731
|
formEvent.stopPropagation();
|
|
302676
302732
|
handleSubmit();
|
|
302677
|
-
}, children: jsxs(Tabs, { value: subTab, onValueChange: (value) => setSubTab(value), className: "space-y-4", children: [jsxs(TabsList, { className: "inline-flex h-auto rounded-md bg-gray-100 p-1", "aria-label": t('tabsSettingsTab.settingsSubCategoriesAriaLabel'), children: [jsx(TabsTrigger, { value: "basic", className: subTabTriggerClass, children: labels.subTabs.basic }), jsx(TabsTrigger, { value: "discovery", className: subTabTriggerClass, children: labels.subTabs.discovery }), jsx(TabsTrigger, { value: "capabilities", className: subTabTriggerClass, children: labels.subTabs.capabilities })] }), jsx(TabsContent, { value: "basic", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(BasicSubTab, { form: form, labels: labels, mentor: mentor, isDisabled: isDisabled, categories: categories }) }), jsx(TabsContent, { value: "discovery", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(DiscoverySubTab, { form: form, labels: labels, mentor: mentor, isDisabled: isDisabled }) }), jsx(TabsContent, { value: "capabilities", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(CapabilitiesSubTab, { form: form, labels: labels, mentor: mentor, isDisabled: isDisabled
|
|
302733
|
+
}, children: jsxs(Tabs, { value: subTab, onValueChange: (value) => setSubTab(value), className: "space-y-4", children: [jsxs(TabsList, { className: "inline-flex h-auto rounded-md bg-gray-100 p-1", "aria-label": t('tabsSettingsTab.settingsSubCategoriesAriaLabel'), children: [jsx(TabsTrigger, { value: "basic", className: subTabTriggerClass, children: labels.subTabs.basic }), jsx(TabsTrigger, { value: "discovery", className: subTabTriggerClass, children: labels.subTabs.discovery }), jsx(TabsTrigger, { value: "capabilities", className: subTabTriggerClass, children: labels.subTabs.capabilities })] }), jsx(TabsContent, { value: "basic", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(BasicSubTab, { form: form, labels: labels, mentor: mentor, isDisabled: isDisabled, categories: categories }) }), jsx(TabsContent, { value: "discovery", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(DiscoverySubTab, { form: form, labels: labels, mentor: mentor, isDisabled: isDisabled }) }), jsx(TabsContent, { value: "capabilities", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(CapabilitiesSubTab, { form: form, labels: labels, mentor: mentor, isDisabled: isDisabled }) })] }) }) }), jsxs("div", { className: "flex flex-shrink-0 justify-end gap-2 border-t border-gray-200 bg-white px-3 py-4", children: [jsx(WithFormPermissions, { name: "object",
|
|
302678
302734
|
// @ts-expect-error permissions type is opaque
|
|
302679
302735
|
permissions: mentor === null || mentor === void 0 ? void 0 : mentor.permissions, enableRBAC: enableRBAC, children: ({ canDelete }) => canDelete && (jsx(Button$1, { onClick: () => setIsDeleteModalOpen(true), type: "button", disabled: isDisabled, variant: "outline", children: labels.actions.delete })) }), (mentor === null || mentor === void 0 ? void 0 : mentor.forkable) && (jsx(Button$1, { onClick: () => setIsCopyModalOpen(true), type: "button", disabled: isDisabled, variant: "outline", children: labels.actions.copy })), jsx(form.Subscribe, { selector: (state) => ({ isFormValid: state.canSubmit }), children: ({ isFormValid }) => (jsx(WithFormPermissions, { name: "object",
|
|
302680
302736
|
// @ts-expect-error permissions type is opaque
|
|
@@ -305735,7 +305791,7 @@ function AgentSafetyTab({ renderPromptContent, FlaggedPromptsModal, showFlaggedP
|
|
|
305735
305791
|
const AGENT_PRIVACY_TAB_LABELS = {
|
|
305736
305792
|
header: {
|
|
305737
305793
|
title: 'Privacy',
|
|
305738
|
-
description: '
|
|
305794
|
+
description: 'Control what personal information the agent sees and how Incognito works for its conversations.',
|
|
305739
305795
|
},
|
|
305740
305796
|
capability: {
|
|
305741
305797
|
title: 'PII filtering',
|
|
@@ -305792,6 +305848,29 @@ const AGENT_PRIVACY_TAB_LABELS = {
|
|
|
305792
305848
|
tooltip: 'Scrub PII from AI-generated responses. May add slight latency to streamed responses.',
|
|
305793
305849
|
},
|
|
305794
305850
|
},
|
|
305851
|
+
subTabs: {
|
|
305852
|
+
piiFiltering: 'PII Filtering',
|
|
305853
|
+
incognito: 'Incognito',
|
|
305854
|
+
},
|
|
305855
|
+
incognito: {
|
|
305856
|
+
description: 'Incognito keeps a conversation out of chat history and memory. Choose how it works for this agent.',
|
|
305857
|
+
groupAriaLabel: 'Incognito policy',
|
|
305858
|
+
options: {
|
|
305859
|
+
users: {
|
|
305860
|
+
title: 'Users Decide',
|
|
305861
|
+
description: 'Users can turn Incognito on for any conversation. Otherwise, their chats are saved to history as usual.',
|
|
305862
|
+
},
|
|
305863
|
+
always: {
|
|
305864
|
+
title: 'Always Incognito',
|
|
305865
|
+
description: 'Every conversation with this agent is incognito. Nothing is saved to chat history or memory — for anyone.',
|
|
305866
|
+
},
|
|
305867
|
+
never: {
|
|
305868
|
+
title: 'Never Incognito',
|
|
305869
|
+
description: "Incognito isn't available for this agent. Every conversation is saved to chat history; users who normally keep their chats incognito are saved anonymously instead.",
|
|
305870
|
+
},
|
|
305871
|
+
},
|
|
305872
|
+
},
|
|
305873
|
+
noAccess: "You don't have permission to view this agent's privacy settings.",
|
|
305795
305874
|
toasts: {
|
|
305796
305875
|
updateSuccess: 'Privacy settings updated',
|
|
305797
305876
|
updateError: 'Failed to update privacy settings',
|
|
@@ -305858,6 +305937,29 @@ function buildPrivacyTabLabels(t) {
|
|
|
305858
305937
|
tooltip: t('privacyTabLabels.fields.outputFilter.tooltip'),
|
|
305859
305938
|
},
|
|
305860
305939
|
},
|
|
305940
|
+
subTabs: {
|
|
305941
|
+
piiFiltering: t('privacyTabLabels.subTabs.piiFiltering'),
|
|
305942
|
+
incognito: t('privacyTabLabels.subTabs.incognito'),
|
|
305943
|
+
},
|
|
305944
|
+
incognito: {
|
|
305945
|
+
description: t('privacyTabLabels.incognito.description'),
|
|
305946
|
+
groupAriaLabel: t('privacyTabLabels.incognito.groupAriaLabel'),
|
|
305947
|
+
options: {
|
|
305948
|
+
users: {
|
|
305949
|
+
title: t('privacyTabLabels.incognito.options.users.title'),
|
|
305950
|
+
description: t('privacyTabLabels.incognito.options.users.description'),
|
|
305951
|
+
},
|
|
305952
|
+
always: {
|
|
305953
|
+
title: t('privacyTabLabels.incognito.options.always.title'),
|
|
305954
|
+
description: t('privacyTabLabels.incognito.options.always.description'),
|
|
305955
|
+
},
|
|
305956
|
+
never: {
|
|
305957
|
+
title: t('privacyTabLabels.incognito.options.never.title'),
|
|
305958
|
+
description: t('privacyTabLabels.incognito.options.never.description'),
|
|
305959
|
+
},
|
|
305960
|
+
},
|
|
305961
|
+
},
|
|
305962
|
+
noAccess: t('privacyTabLabels.noAccess'),
|
|
305861
305963
|
toasts: {
|
|
305862
305964
|
updateSuccess: t('privacyTabLabels.toasts.updateSuccess'),
|
|
305863
305965
|
updateError: t('privacyTabLabels.toasts.updateError'),
|
|
@@ -305871,8 +305973,31 @@ function resolvePrivacyTabLabels(override, t) {
|
|
|
305871
305973
|
return deepMerge(base, override);
|
|
305872
305974
|
}
|
|
305873
305975
|
|
|
305976
|
+
/**
|
|
305977
|
+
* The agent's Incognito policy — one choice over the two mentor flags.
|
|
305978
|
+
* `users` lets each user turn Incognito on per conversation (both flags
|
|
305979
|
+
* off); `always` makes every conversation incognito (`disable_chathistory`);
|
|
305980
|
+
* `never` takes Incognito away from everyone (`disable_privacy_mode`). One
|
|
305981
|
+
* control so the contradictory "always AND never" pair cannot be configured.
|
|
305982
|
+
*/
|
|
305983
|
+
const INCOGNITO_POLICIES = ['users', 'always', 'never'];
|
|
305984
|
+
/** `never` wins when an older record carries both flags — the backend keeps history then. */
|
|
305985
|
+
function incognitoPolicyFrom(settings) {
|
|
305986
|
+
if (settings === null || settings === void 0 ? void 0 : settings.disable_privacy_mode)
|
|
305987
|
+
return 'never';
|
|
305988
|
+
if (settings === null || settings === void 0 ? void 0 : settings.disable_chathistory)
|
|
305989
|
+
return 'always';
|
|
305990
|
+
return 'users';
|
|
305991
|
+
}
|
|
305992
|
+
function incognitoFlags(policy) {
|
|
305993
|
+
return {
|
|
305994
|
+
disable_chathistory: policy === 'always',
|
|
305995
|
+
disable_privacy_mode: policy === 'never',
|
|
305996
|
+
};
|
|
305997
|
+
}
|
|
305998
|
+
|
|
305874
305999
|
function AgentPrivacyTab({ labels: labelsOverride, tenantKey: tenantKeyProp, mentorId: mentorIdProp, username: usernameProp, enableRBAC: enableRBACProp, executeGatedAction: executeGatedActionProp, }) {
|
|
305875
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
306000
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
305876
306001
|
const t = useT();
|
|
305877
306002
|
const ctx = useAgentSettingsOptional();
|
|
305878
306003
|
const tenantKey = (_a = tenantKeyProp !== null && tenantKeyProp !== void 0 ? tenantKeyProp : ctx === null || ctx === void 0 ? void 0 : ctx.tenantKey) !== null && _a !== void 0 ? _a : '';
|
|
@@ -305881,6 +306006,12 @@ function AgentPrivacyTab({ labels: labelsOverride, tenantKey: tenantKeyProp, men
|
|
|
305881
306006
|
const enableRBAC = (_d = enableRBACProp !== null && enableRBACProp !== void 0 ? enableRBACProp : ctx === null || ctx === void 0 ? void 0 : ctx.enableRBAC) !== null && _d !== void 0 ? _d : false;
|
|
305882
306007
|
const executeGatedAction = executeGatedActionProp !== null && executeGatedActionProp !== void 0 ? executeGatedActionProp : ctx === null || ctx === void 0 ? void 0 : ctx.executeGatedAction;
|
|
305883
306008
|
const labels = React__default.useMemo(() => resolvePrivacyTabLabels(labelsOverride, t), [labelsOverride, t]);
|
|
306009
|
+
const dispatch = useDispatch();
|
|
306010
|
+
// The Incognito policy only means something when the tenant lets users
|
|
306011
|
+
// control chat privacy; without that gate there is no Incognito to govern.
|
|
306012
|
+
const { data: tenantChatPrivacyConfig } = useGetTenantChatPrivacyConfigQuery({ org: tenantKey, userId: username }, { skip: !tenantKey || !username });
|
|
306013
|
+
const tenantAllowsIncognito = !!(tenantChatPrivacyConfig === null || tenantChatPrivacyConfig === void 0 ? void 0 : tenantChatPrivacyConfig.allow_user_chat_privacy_control);
|
|
306014
|
+
const [subTab, setSubTab] = React__default.useState('pii');
|
|
305884
306015
|
const { data: rawMentorSettings, isLoading: isMentorSettingsLoading, refetch: refetchMentorSettings, } = useGetMentorSettingsQuery({
|
|
305885
306016
|
mentor: mentorId,
|
|
305886
306017
|
org: tenantKey,
|
|
@@ -305888,32 +306019,50 @@ function AgentPrivacyTab({ labels: labelsOverride, tenantKey: tenantKeyProp, men
|
|
|
305888
306019
|
userId: username,
|
|
305889
306020
|
}, { skip: !username || !mentorId || !tenantKey });
|
|
305890
306021
|
const mentorSettings = rawMentorSettings;
|
|
306022
|
+
// Sub-tab visibility follows field-level RBAC: a sub-tab whose fields the
|
|
306023
|
+
// user cannot read is not offered at all (its controls would only render
|
|
306024
|
+
// hidden). Until the settings land the permissions are unknown, so nothing
|
|
306025
|
+
// is gated yet. Writes stay per control, through `WithFormPermissions`.
|
|
306026
|
+
const fieldPermissions = (_e = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.permissions) === null || _e === void 0 ? void 0 : _e.field;
|
|
306027
|
+
const permissionsKnown = mentorSettings !== undefined;
|
|
306028
|
+
const showPii = !permissionsKnown ||
|
|
306029
|
+
PII_FIELDS.some((field) => canReadField(fieldPermissions, field, enableRBAC));
|
|
306030
|
+
const showIncognito = tenantAllowsIncognito &&
|
|
306031
|
+
(!permissionsKnown ||
|
|
306032
|
+
INCOGNITO_FIELDS.every((field) => canReadField(fieldPermissions, field, enableRBAC)));
|
|
306033
|
+
const visibleSubTabs = [
|
|
306034
|
+
...(showPii ? ['pii'] : []),
|
|
306035
|
+
...(showIncognito ? ['incognito'] : []),
|
|
306036
|
+
];
|
|
306037
|
+
const activeSubTab = visibleSubTabs.includes(subTab) ? subTab : visibleSubTabs[0];
|
|
305891
306038
|
// The `/settings/` endpoint accepts a JSON body — `useEditMentorJsonMutation`
|
|
305892
306039
|
// matches that contract (the multipart `useEditMentorMutation` doesn't
|
|
305893
306040
|
// round-trip cleanly for array fields like `privacy_entities`).
|
|
305894
306041
|
const [editMentorJson, { isLoading: isEditMentorLoading }] = useEditMentorJsonMutation();
|
|
305895
306042
|
const isDisabled = isMentorSettingsLoading || isEditMentorLoading;
|
|
305896
306043
|
const enabled = !!(mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.enable_privacy_router);
|
|
305897
|
-
const action = (
|
|
305898
|
-
const entities = (
|
|
305899
|
-
const responseText = (
|
|
306044
|
+
const action = (_f = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.privacy_action) !== null && _f !== void 0 ? _f : 'redact';
|
|
306045
|
+
const entities = (_g = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.privacy_entities) !== null && _g !== void 0 ? _g : [];
|
|
306046
|
+
const responseText = (_h = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.privacy_response) !== null && _h !== void 0 ? _h : '';
|
|
305900
306047
|
const outputFilter = !!(mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.enable_privacy_output_filter);
|
|
306048
|
+
const incognitoPolicy = incognitoPolicyFrom(mentorSettings);
|
|
305901
306049
|
const [localResponse, setLocalResponse] = React__default.useState(responseText);
|
|
305902
306050
|
React__default.useEffect(() => {
|
|
305903
306051
|
setLocalResponse(responseText);
|
|
305904
306052
|
}, [responseText]);
|
|
305905
|
-
async function
|
|
306053
|
+
async function updateFields(requestBody, afterSave) {
|
|
305906
306054
|
const run = async () => {
|
|
305907
306055
|
await editMentorJson({
|
|
305908
306056
|
mentorId,
|
|
305909
306057
|
org: tenantKey,
|
|
305910
306058
|
userId: username,
|
|
305911
|
-
requestBody
|
|
306059
|
+
requestBody,
|
|
305912
306060
|
}).unwrap();
|
|
305913
306061
|
// `editMentorJson` lives on a separate api-slice and doesn't invalidate
|
|
305914
306062
|
// the `mentorSettings` tag, so the toggle would otherwise stay stale
|
|
305915
306063
|
// after a successful PUT. Refetch explicitly.
|
|
305916
306064
|
await refetchMentorSettings();
|
|
306065
|
+
afterSave === null || afterSave === void 0 ? void 0 : afterSave();
|
|
305917
306066
|
toast.success(labels.toasts.updateSuccess);
|
|
305918
306067
|
};
|
|
305919
306068
|
try {
|
|
@@ -305925,34 +306074,83 @@ function AgentPrivacyTab({ labels: labelsOverride, tenantKey: tenantKeyProp, men
|
|
|
305925
306074
|
}
|
|
305926
306075
|
}
|
|
305927
306076
|
catch (error) {
|
|
305928
|
-
console.error(JSON.stringify({ tenant: tenantKey,
|
|
306077
|
+
console.error(JSON.stringify({ tenant: tenantKey, fields: Object.keys(requestBody), error }));
|
|
305929
306078
|
toast.error(labels.toasts.updateError);
|
|
305930
306079
|
}
|
|
305931
306080
|
}
|
|
306081
|
+
function updateField(field, value) {
|
|
306082
|
+
return updateFields({ [field]: value });
|
|
306083
|
+
}
|
|
306084
|
+
// Both flags travel in one PUT. The chat header reads the policy from two
|
|
306085
|
+
// other caches — `chat-privacy-effective` (Always Incognito → the locked
|
|
306086
|
+
// pill) and the mentor's public settings (Never Incognito → no toggle at
|
|
306087
|
+
// all) — and `editMentorJson` invalidates neither, so refresh them here or
|
|
306088
|
+
// the header lags until reload.
|
|
306089
|
+
function updateIncognitoPolicy(policy) {
|
|
306090
|
+
return updateFields(incognitoFlags(policy), () => {
|
|
306091
|
+
dispatch(chatPrivacyApiSlice.util.invalidateTags(['ChatPrivacyEffective']));
|
|
306092
|
+
dispatch(mentorApiSlice.util.invalidateTags([{ type: 'mentorPublicSettings', id: mentorId }]));
|
|
306093
|
+
});
|
|
306094
|
+
}
|
|
305932
306095
|
function toggleEntity(entity, checked) {
|
|
305933
306096
|
const next = checked
|
|
305934
306097
|
? Array.from(new Set([...entities, entity]))
|
|
305935
306098
|
: entities.filter((e) => e !== entity);
|
|
305936
306099
|
void updateField('privacy_entities', next);
|
|
305937
306100
|
}
|
|
305938
|
-
return (jsxs(Fragment$1, { children: [jsx("div", { className: "flex hidden h-[73px] flex-shrink-0 items-center border-b border-gray-200 bg-white p-4 lg:block", children: jsxs("div", { children: [jsx("h3", { className: "mb-1 text-base font-medium text-gray-900", children: labels.header.title }), jsx("p", { className: "text-xs text-gray-700", children: labels.header.description })] }) }), jsx("div", { "data-testid": "privacy-tab-body", className: "flex-1 space-y-6 p-3 lg:p-4", style: { overflowY: 'auto', overflowX: 'hidden' }, children: jsx(CapabilityGate, { title: labels.capability.title, description: labels.capability.description, offHint: labels.capability.offHint, enabled: enabled, onToggle: (checked) => void updateField('enable_privacy_router', checked), disabled: isDisabled, ariaLabel: labels.capability.title, toggleTestId: "privacy-capability-toggle", children: jsxs("div", { className: "space-y-6", children: [jsx(WithFormPermissions, { name: "privacy_action",
|
|
305939
|
-
|
|
305940
|
-
|
|
305941
|
-
|
|
305942
|
-
|
|
305943
|
-
|
|
305944
|
-
|
|
305945
|
-
|
|
305946
|
-
|
|
305947
|
-
|
|
305948
|
-
|
|
305949
|
-
|
|
305950
|
-
|
|
305951
|
-
|
|
305952
|
-
|
|
305953
|
-
|
|
305954
|
-
|
|
305955
|
-
|
|
306101
|
+
return (jsxs(Fragment$1, { children: [jsx("div", { className: "flex hidden h-[73px] flex-shrink-0 items-center border-b border-gray-200 bg-white p-4 lg:block", children: jsxs("div", { children: [jsx("h3", { className: "mb-1 text-base font-medium text-gray-900", children: labels.header.title }), jsx("p", { className: "text-xs text-gray-700", children: labels.header.description })] }) }), jsx("div", { "data-testid": "privacy-tab-body", className: "flex-1 space-y-6 p-3 lg:p-4", style: { overflowY: 'auto', overflowX: 'hidden' }, children: visibleSubTabs.length === 0 ? (jsx("p", { className: "text-sm text-gray-600", "data-testid": "privacy-no-access", children: labels.noAccess })) : (jsxs(Tabs, { value: activeSubTab, onValueChange: (value) => setSubTab(value), className: "space-y-4", children: [jsxs(TabsList, { className: "inline-flex h-auto rounded-md bg-gray-100 p-1", "aria-label": t('tabsPrivacyTab.subTabsAriaLabel'), children: [showPii && (jsx(TabsTrigger, { value: "pii", className: SUB_TAB_TRIGGER_CLASS, "data-testid": "privacy-sub-tab-pii", children: labels.subTabs.piiFiltering })), showIncognito && (jsx(TabsTrigger, { value: "incognito", className: SUB_TAB_TRIGGER_CLASS, "data-testid": "privacy-sub-tab-incognito", children: labels.subTabs.incognito }))] }), showPii && (jsx(TabsContent, { value: "pii", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsx(CapabilityGate, { title: labels.capability.title, description: labels.capability.description, offHint: labels.capability.offHint, enabled: enabled, onToggle: (checked) => void updateField('enable_privacy_router', checked), disabled: isDisabled, ariaLabel: labels.capability.title, toggleTestId: "privacy-capability-toggle", children: jsxs("div", { className: "space-y-6", children: [jsx(WithFormPermissions, { name: "privacy_action",
|
|
306102
|
+
// @ts-ignore
|
|
306103
|
+
permissions: (_j = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.permissions) === null || _j === void 0 ? void 0 : _j.field, enableRBAC: enableRBAC, children: ({ disabled }) => (jsxs("div", { className: "space-y-2", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx(Label$1, { className: "text-sm font-medium text-[#646464]", children: labels.fields.action.label }), jsx(FieldTooltip$1, { text: labels.fields.action.tooltip })] }), jsxs(Select$1, { value: action, onValueChange: (v) => void updateField('privacy_action', v), disabled: isDisabled || disabled, children: [jsx(SelectTrigger, { "aria-label": labels.fields.action.label, children: jsx(SelectValue, {}) }), jsx(SelectContent, { children: PRIVACY_ACTIONS.map((opt) => (jsx(SelectItem, { value: opt, children: labels.fields.action.options[opt] }, opt))) })] }), jsx("p", { className: "text-xs text-gray-500", children: labels.fields.action.descriptions[action] })] })) }), action === 'block' && (jsx(WithFormPermissions, { name: "privacy_response",
|
|
306104
|
+
// @ts-ignore
|
|
306105
|
+
permissions: (_k = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.permissions) === null || _k === void 0 ? void 0 : _k.field, enableRBAC: enableRBAC, children: ({ disabled }) => (jsxs("div", { className: "space-y-2", children: [jsx(Label$1, { className: "text-sm font-medium text-[#646464]", children: labels.fields.blockMessage.label }), jsx(Textarea, { value: localResponse, onChange: (e) => setLocalResponse(e.target.value), onBlur: () => {
|
|
306106
|
+
if (localResponse !== responseText) {
|
|
306107
|
+
void updateField('privacy_response', localResponse);
|
|
306108
|
+
}
|
|
306109
|
+
}, placeholder: labels.fields.blockMessage.placeholder, className: "min-h-[100px]", disabled: isDisabled || disabled, "aria-label": labels.fields.blockMessage.label })] })) })), jsx(WithFormPermissions, { name: "privacy_entities",
|
|
306110
|
+
// @ts-ignore
|
|
306111
|
+
permissions: (_l = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.permissions) === null || _l === void 0 ? void 0 : _l.field, enableRBAC: enableRBAC, children: ({ disabled }) => (jsxs("div", { className: "space-y-2", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx(Label$1, { className: "text-sm font-medium text-[#646464]", children: labels.fields.entities.label }), jsx(FieldTooltip$1, { text: labels.fields.entities.tooltip })] }), jsx("div", { className: "flex flex-wrap gap-2", children: PRIVACY_ENTITY_TYPES.map((entity) => {
|
|
306112
|
+
var _a;
|
|
306113
|
+
return (jsx(EntityChip, { entity: entity, label: (_a = labels.fields.entities.labels[entity]) !== null && _a !== void 0 ? _a : entity, selected: entities.includes(entity), disabled: isDisabled || disabled, onToggle: (checked) => toggleEntity(entity, checked) }, entity));
|
|
306114
|
+
}) }), entities.length === 0 && (jsx("p", { className: "text-xs text-gray-500", children: labels.fields.entities.emptyHint }))] })) }), jsx(WithFormPermissions, { name: "enable_privacy_output_filter",
|
|
306115
|
+
// @ts-ignore
|
|
306116
|
+
permissions: (_m = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.permissions) === null || _m === void 0 ? void 0 : _m.field, enableRBAC: enableRBAC, children: ({ disabled }) => (jsxs("div", { className: "flex items-center justify-between", children: [jsxs("div", { className: "flex items-center gap-2", children: [jsx("span", { className: "text-sm font-medium text-[#646464]", children: labels.fields.outputFilter.label }), jsx(FieldTooltip$1, { text: labels.fields.outputFilter.tooltip })] }), jsx(CustomSwitch, { checked: outputFilter, onCheckedChange: (checked) => void updateField('enable_privacy_output_filter', checked), disabled: isDisabled || disabled, "aria-label": outputFilter
|
|
306117
|
+
? t('tabsPrivacyTab.outputFilterAriaLabelEnabled')
|
|
306118
|
+
: t('tabsPrivacyTab.outputFilterAriaLabelDisabled') })] })) })] }) }) })), showIncognito && (jsx(TabsContent, { value: "incognito", forceMount: true, className: "m-0 data-[state=inactive]:hidden", children: jsxs("div", { className: "space-y-4", "data-testid": "privacy-incognito-section", children: [jsx("p", { className: "text-xs leading-relaxed text-gray-600", children: labels.incognito.description }), jsx(WithFormPermissions, { name: ['disable_chathistory', 'disable_privacy_mode'],
|
|
306119
|
+
// @ts-ignore
|
|
306120
|
+
permissions: (_o = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.permissions) === null || _o === void 0 ? void 0 : _o.field, enableRBAC: enableRBAC, children: ({ disabled }) => (jsx("div", { className: "space-y-3", "aria-label": labels.incognito.groupAriaLabel, children: INCOGNITO_POLICIES.map((policy) => (jsx(IncognitoOptionCard, { policy: policy, title: labels.incognito.options[policy].title, description: labels.incognito.options[policy].description, selected: incognitoPolicy === policy, disabled: isDisabled || disabled, onSelect: () => void updateIncognitoPolicy(policy) }, policy))) })) })] }) }))] })) })] }));
|
|
306121
|
+
}
|
|
306122
|
+
const PII_FIELDS = [
|
|
306123
|
+
'enable_privacy_router',
|
|
306124
|
+
'privacy_action',
|
|
306125
|
+
'privacy_entities',
|
|
306126
|
+
'privacy_response',
|
|
306127
|
+
'enable_privacy_output_filter',
|
|
306128
|
+
];
|
|
306129
|
+
const INCOGNITO_FIELDS = ['disable_chathistory', 'disable_privacy_mode'];
|
|
306130
|
+
/**
|
|
306131
|
+
* Mirror of `WithFormPermissions`' read rule: a field the endpoint lists is
|
|
306132
|
+
* governed by its own `read` flag; one it does not list is readable only when
|
|
306133
|
+
* RBAC gating is off.
|
|
306134
|
+
*/
|
|
306135
|
+
function canReadField(permissions, field, enableRBAC) {
|
|
306136
|
+
const entry = permissions === null || permissions === void 0 ? void 0 : permissions[field];
|
|
306137
|
+
if (entry)
|
|
306138
|
+
return entry.read !== false;
|
|
306139
|
+
return !enableRBAC;
|
|
306140
|
+
}
|
|
306141
|
+
// Same pill switcher the Settings tab uses for its sub-tabs.
|
|
306142
|
+
const SUB_TAB_TRIGGER_CLASS = 'px-3 py-1.5 text-sm font-medium text-gray-700 data-[state=active]:bg-white data-[state=active]:text-gray-900';
|
|
306143
|
+
const INCOGNITO_OPTION_ICONS = {
|
|
306144
|
+
users: Users,
|
|
306145
|
+
always: EyeOff,
|
|
306146
|
+
never: History,
|
|
306147
|
+
};
|
|
306148
|
+
// Radio-card idiom shared with the profile's Privacy tab: `aria-pressed`
|
|
306149
|
+
// buttons rather than a WAI-ARIA radiogroup (which would need roving focus),
|
|
306150
|
+
// each carrying its title + description so nothing has to be explained apart.
|
|
306151
|
+
function IncognitoOptionCard({ policy, title, description, selected, disabled, onSelect, }) {
|
|
306152
|
+
const Icon = INCOGNITO_OPTION_ICONS[policy];
|
|
306153
|
+
return (jsxs("button", { type: "button", "aria-pressed": selected, "data-testid": `privacy-incognito-${policy}`, "data-state": selected ? 'selected' : 'unselected', onClick: onSelect, disabled: disabled, className: cn('flex w-full flex-col gap-1 rounded-lg border px-5 py-4 text-left transition-colors', 'focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2 focus-visible:outline-none', 'disabled:cursor-not-allowed disabled:opacity-60', selected ? 'border-blue-500 bg-blue-50/40' : 'border-gray-200 hover:bg-gray-50'), children: [jsxs("span", { className: "flex w-full items-center gap-3", children: [jsx(Icon, { className: cn('h-4 w-4 flex-shrink-0', selected ? 'text-blue-600' : 'text-gray-400'), "aria-hidden": "true" }), jsx("span", { className: cn('min-w-0 flex-1 text-sm font-medium', selected ? 'text-blue-900' : 'text-gray-900'), children: title }), jsx("span", { "aria-hidden": "true", className: cn('flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full border-2 transition-colors', selected ? 'border-blue-500 bg-blue-500' : 'border-gray-300'), children: selected && jsx(Check, { className: "h-3 w-3 text-white", strokeWidth: 3 }) })] }), jsx("p", { className: "pr-8 pl-7 text-xs text-gray-500", children: description })] }));
|
|
305956
306154
|
}
|
|
305957
306155
|
function FieldTooltip$1({ text }) {
|
|
305958
306156
|
const t = useT();
|