@iblai/iblai-js 1.18.2 → 1.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -855,7 +855,6 @@ declare function expectCreditBalanceForCurrentPlan(page: Page, options?: {
855
855
  declare const PRIVACY_LABELS: {
856
856
  readonly tabName: "Privacy";
857
857
  readonly headerTitle: "Privacy";
858
- readonly routerLabel: "Enable Privacy Router";
859
858
  readonly actionLabel: "When PII is detected";
860
859
  readonly blockMessageLabel: "Block Message";
861
860
  readonly entitiesLabel: "Entity Types";
@@ -892,20 +891,16 @@ type PrivacyEntity = keyof typeof PRIVACY_LABELS.entityChips;
892
891
  declare function isPrivacyTabVisible(page: Page): Promise<boolean>;
893
892
  /**
894
893
  * Switch to the Privacy tab. Assumes the Edit Mentor dialog is open.
894
+ *
895
+ * The Privacy Router on/off toggle lives on the Settings tab — this tab
896
+ * only shows dependent PII-handling fields when the router is enabled.
897
+ * Confirm landing via the tab body's testid rather than any inner label,
898
+ * since the field labels are conditional.
895
899
  */
896
900
  declare function switchToPrivacyTab(page: Page): Promise<void>;
897
- /**
898
- * Locator for the master privacy-router switch.
899
- */
900
- declare function getPrivacyRouterSwitch(scope: Page | Locator): Locator;
901
- /**
902
- * Click the master toggle until it matches the desired state.
903
- */
904
- declare function setPrivacyRouterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
905
- declare function expectPrivacyRouterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
906
901
  /**
907
902
  * Assert that all dependent privacy fields are hidden — the case when the
908
- * master toggle is off.
903
+ * Privacy Router is disabled (on the Settings tab).
909
904
  */
910
905
  declare function expectPrivacyFieldsHidden(scope: Page | Locator): Promise<void>;
911
906
  /**
@@ -940,6 +935,133 @@ declare function getOutputFilterSwitch(scope: Page | Locator): Locator;
940
935
  declare function setOutputFilterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
941
936
  declare function expectOutputFilterEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
942
937
 
938
+ /**
939
+ * Chat-privacy Playwright bindings.
940
+ *
941
+ * Three surfaces, three groups of helpers:
942
+ *
943
+ * 1. **Header toggle** — the nav-bar `ChatPrivacyToggle` (`<HatGlasses />`
944
+ * icon-button that morphs into the "Private Mode" pill).
945
+ * 2. **User profile** — the "Private Mode" tab in `UserProfileModal`
946
+ * (three radio-card options: Normal / Anonymized / Disabled).
947
+ * 3. **Tenant admin** — the "Allow users to control chat privacy" row in
948
+ * the Advanced settings tab (`<Switch>`).
949
+ *
950
+ * All selectors target stable hooks — primarily `data-testid` plus the
951
+ * `data-state` / `data-source` / `aria-pressed` attributes the components
952
+ * already expose. Avoid asserting on visible copy directly (it changes);
953
+ * the label maps below are kept for readable assertions on the rare cases
954
+ * where copy IS the thing we want to lock.
955
+ */
956
+ declare const CHAT_PRIVACY_LABELS: {
957
+ readonly toggle: {
958
+ /** Title of the mid-session confirmation dialog. */
959
+ readonly dialogTitle: "Enable Private Mode for this chat?";
960
+ /** Label on the dialog's confirm button (matches both idle + busy state via regex). */
961
+ readonly dialogConfirm: RegExp;
962
+ };
963
+ readonly profileTab: {
964
+ /** Tab name in the user profile modal sidebar. */
965
+ readonly tabName: "Private Mode";
966
+ /** Section heading inside the tab body. */
967
+ readonly sectionHeading: "Default Private Mode";
968
+ /** Label text on each radio card. Kept in case the test wants to assert
969
+ * copy explicitly — the click + read paths use the testid instead. */
970
+ readonly cards: {
971
+ readonly normal: "Normal";
972
+ readonly anonymized: "Anonymized";
973
+ readonly disabled: "Disabled";
974
+ };
975
+ };
976
+ readonly tenantToggle: {
977
+ /** Visible row label. */
978
+ readonly rowLabel: "Allow users to control chat privacy";
979
+ };
980
+ };
981
+ /** The four `effective.source` values the chat-privacy resolver returns. */
982
+ type ChatPrivacySource = 'mentor' | 'tenant' | 'user' | 'session' | 'default';
983
+ /** The user-pickable modes on the profile tab. */
984
+ type ChatPrivacyMode = 'normal' | 'anonymized' | 'disabled';
985
+ /** `data-state` on the header toggle. */
986
+ type ChatPrivacyToggleState = 'on' | 'off';
987
+ /**
988
+ * Locator for the nav-bar Private-Mode toggle. The toggle is hidden below
989
+ * the `md` breakpoint — assertions in mobile contexts should use
990
+ * `expectChatPrivacyToggleVisible(scope, false)`.
991
+ */
992
+ declare function getChatPrivacyToggle(scope: Page | Locator): Locator;
993
+ declare function expectChatPrivacyToggleVisible(scope: Page | Locator, visible: boolean): Promise<void>;
994
+ /**
995
+ * Assert the toggle is on / off via `data-state` (driven by the resolved
996
+ * effective mode + the local optimistic overlay).
997
+ */
998
+ declare function expectChatPrivacyState(scope: Page | Locator, state: ChatPrivacyToggleState): Promise<void>;
999
+ /**
1000
+ * Assert the resolved precedence-source via `data-source` (mentor / tenant
1001
+ * / user / session / default). Useful for verifying the chat-privacy-
1002
+ * effective endpoint resolved to the expected tier.
1003
+ */
1004
+ declare function expectChatPrivacySource(scope: Page | Locator, source: ChatPrivacySource): Promise<void>;
1005
+ /**
1006
+ * Lock state is signalled via `aria-disabled` (the component uses
1007
+ * `aria-disabled` instead of native `disabled` so the source-aware tooltip
1008
+ * stays reachable on the locked pill).
1009
+ */
1010
+ declare function expectChatPrivacyLocked(scope: Page | Locator, locked: boolean): Promise<void>;
1011
+ /**
1012
+ * Click the toggle. Covers two scenarios:
1013
+ * - Off → on (with no user messages) → starts a fresh private session.
1014
+ * - On (user-initiated, no user messages) → starts a fresh normal session.
1015
+ * Use `confirmEnableChatPrivacyMidSession` for the mid-conversation flow.
1016
+ */
1017
+ declare function clickChatPrivacyToggle(scope: Page | Locator): Promise<void>;
1018
+ /** Locator for the AlertDialog content that the mid-session enable opens. */
1019
+ declare function getChatPrivacyConfirmDialog(scope: Page | Locator): Locator;
1020
+ declare function expectChatPrivacyConfirmDialogOpen(scope: Page | Locator, open: boolean): Promise<void>;
1021
+ /**
1022
+ * Mid-conversation enable flow:
1023
+ * 1. Click the toggle (opens the confirm dialog).
1024
+ * 2. Click the "Enable Private Mode" action.
1025
+ * The session-level disable-chathistory POST is one-way per spec; the
1026
+ * helper resolves once the dialog closes after a successful confirm.
1027
+ */
1028
+ declare function confirmEnableChatPrivacyMidSession(scope: Page | Locator): Promise<void>;
1029
+ /** Cancel the confirm dialog without enabling. */
1030
+ declare function cancelEnableChatPrivacyMidSession(scope: Page | Locator): Promise<void>;
1031
+ /**
1032
+ * Switch to the Private Mode tab inside the user profile modal. Assumes
1033
+ * the modal is already open. The tab only appears when the tenant has
1034
+ * `allow_user_chat_privacy_control` on, so a `false` return from
1035
+ * `isPrivateModeTabVisible` is a meaningful state, not an error.
1036
+ */
1037
+ declare function isPrivateModeTabVisible(page: Page): Promise<boolean>;
1038
+ declare function switchToPrivateModeTab(page: Page): Promise<void>;
1039
+ /** Locator for one of the three radio cards. */
1040
+ declare function getPrivateModeCard(scope: Page | Locator, mode: ChatPrivacyMode): Locator;
1041
+ /**
1042
+ * Pick a mode by clicking its card. Resolves once the card flips into
1043
+ * the selected state via `aria-pressed="true"` — i.e. the mutation came
1044
+ * back and the local pending state caught up.
1045
+ */
1046
+ declare function selectPrivateMode(scope: Page | Locator, mode: ChatPrivacyMode): Promise<void>;
1047
+ /** Assert which mode is currently selected. Uses `aria-pressed` + `data-state`. */
1048
+ declare function expectPrivateModeSelected(scope: Page | Locator, mode: ChatPrivacyMode): Promise<void>;
1049
+ /** Assert every card is rendered. Useful as a "tab loaded" sanity check. */
1050
+ declare function expectPrivateModeTabReady(scope: Page | Locator): Promise<void>;
1051
+ /** Locator for the tenant-wide "Allow users to control chat privacy" switch. */
1052
+ declare function getTenantChatPrivacySwitch(scope: Page | Locator): Locator;
1053
+ /** Locator for the surrounding row (useful for scoping label / spinner queries). */
1054
+ declare function getTenantChatPrivacyRow(scope: Page | Locator): Locator;
1055
+ declare function expectTenantChatPrivacyVisible(scope: Page | Locator, visible: boolean): Promise<void>;
1056
+ /** Assert the tenant gate's current state via `aria-checked` on the Radix switch. */
1057
+ declare function expectTenantChatPrivacyEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
1058
+ /**
1059
+ * Flip the tenant gate to the desired state. Idempotent — does nothing if
1060
+ * the switch is already in the target state. Backend rejects this for
1061
+ * non-admins (403) and the component surfaces an error toast in that case.
1062
+ */
1063
+ declare function setTenantChatPrivacyEnabled(scope: Page | Locator, enabled: boolean): Promise<void>;
1064
+
943
1065
  /**
944
1066
  * Voice tab helpers — Playwright bindings for the `AgentVoiceTab` component
945
1067
  * from `@iblai/web-containers`.
@@ -1522,5 +1644,5 @@ declare function generateProjectConfig(platform: string, deviceName: string, dep
1522
1644
  */
1523
1645
  declare function createPlaywrightConfig(options: CreatePlaywrightConfigOptions): PlaywrightTestConfig;
1524
1646
 
1525
- export { AuthFlowBuilder, CustomReporter, MailsacClient, PRIVACY_LABELS, SCREENSHARE_LABELS, TASKS_LABELS, VOICE_LABELS, addMemory, archiveFirstMemory, archiveMemoryByContent, billingAutoRechargeSection, billingCreditsSection, billingPlanSection, buildReportUrl, canChatWithEmbedMentor, cancelDeleteInstance, cancelDeleteSkill, cancelDisconnectInstance, cancelNewInstanceDialog, checkAdminStatus, clearDateRangeFilter, clearInstanceSearch, clickBackHome, clickBillingAddCredits, clickBillingManageBilling, clickBillingManageUsage, clickBillingUpgrade, clickDownloadAgain, clickManualDownloadLink, closeCreditBalanceDropdown, closeWithEsc, connectToInstance, createAuthSetup, createEnvConfig, createInstance, createPlaywrightConfig, createSkill, creditBalancePanel, creditBalancePlanBadge, creditBalanceTrigger, deleteFirstMemory, deleteInstance, deleteMemoryByContent, deleteSkill, deleteTask, disableSkill, disconnectInstance, editAgentPrompt, editInstance, editSkill, enableSkill, expectBillingAutoRechargeSection, expectBillingCreditsSection, expectBillingPlanSection, expectBillingTabForCurrentPlan, expectBillingTabForFreePlan, expectBillingTabForPremiumPlan, expectBillingTabForTrialPlan, expectCallConfigVisible, expectCallConfigVoiceTriggerShows, expectCompletedTasks, expectCreditBalanceForCurrentPlan, expectCreditBalancePanelForFreePlan, expectCreditBalancePanelForPremiumPlan, expectCreditBalancePanelForTrialPlan, expectCreditBalanceVisibilityForTenant, expectEntitySelected, expectFailedTasks, expectLogDetailsStatus, expectLogsForTask, expectMentorVoiceTriggerShows, expectNoAccessibilityViolations, expectNoAccessibilityViolationsOnDialogs, expectNoLogsForSelectedTask, expectOutputFilterEnabled, expectPrivacyFieldsHidden, expectPrivacyFieldsVisible, expectPrivacyRouterEnabled, expectScheduleStartTimeInPastError, expectScreenShareDisabledHint, expectSttSelectDisabled, expectTaskInList, expectTaskNotInList, expectTaskStatus, expectTasksEmpty, expectTotalTasks, expectTtsSelectDisabled, expectVoiceProviderSelected, expectVoiceVisible, filterByAction, filterByActionAndVerify, filterByActor, filterByActorAndVerify, filterByDateRange, generateBrowserSetupProjects, generateProjectConfig, getAuditLogRowCount, getAvailableActors, getBillingAutoRechargeStatus, getBillingPlanLabel, getBrowserKey, getCallConfigForm, getCreditBalancePlanLabel, getCreditBalanceRemaining, getCurrentModel, getCurrentTenantShowPaywall, getEntityChip, getInstanceHealthLabel, getInstanceRowCount, getInstanceStatusLabel, getMemoryCount, getMentorIdFromUrl, getOutputFilterSwitch, getPaginationInfo, getPrivacyRouterSwitch, getScheduleTaskButton, getSearchInput, getSkillRowCount, getTaskRow, getVoiceProviderCard, getVoiceRow, goToFirstPage, goToLastPage, goToNextPage, goToPage, goToPreviousPage, inviteUserTest, isFirefox, isJSON, isMemoryTabVisible, isOnFirstPage, isOnLastPage, isPrivacyTabVisible, isSandboxTabVisible, isScreenShareTabVisible, isSkillEnabled, isTasksTabVisible, isVoiceTabVisible, logger, loginWithEmailAndPassword, loginWithMicrosoftIdp, navigateToAccountComponent, navigateToAuditLog, navigateToAuditLogAndWaitForData, navigateToDataReports, navigateToReportDownload, openAddMemoryDialog, openAgentPromptEditModal, openCallConfigVoicePicker, openCreditBalanceDropdown, openEditInstanceDialog, openEditSkillDialog, openFirstLogDetails, openInstanceActionsMenu, openLLMProviderPicker, openMentorVoicePicker, openNewInstanceDialog, openNewSkillDialog, openScheduleTaskDialog, openScreenSharePromptEditor, openSkillActionsMenu, parseReportUrlParams, previewCallConfigVoiceInline, previewMentorVoiceInline, previewVoice, pushConfiguration, reliableClick, reliableFill, resetCallConfig, retry, runConnectedInstanceChecks, runInstanceChecks, safeWaitForURL, saveCallConfig, saveScreenSharePrompts, saveVoiceSettings, scheduleTask, searchInstances, searchTasks, searchVoices, selectCallMode, selectDateFromCalendar, selectLLMModel, selectLlmProvider, selectPrivacyAction, selectSttProvider, selectTaskInList, selectTtsProvider, selectVoice, selectVoiceProvider, setBlockMessage, setCallLanguage, setEnableVideo, setEntitySelected, setOutputFilterEnabled, setPrivacyRouterEnabled, setScreenSharePrompt, setUseFunctionCallingEnabled, setupSandboxInstance, shouldAddNewRowWhenClickingAddRowButton, shouldAllowEditingCellValuesInCSVEditor, shouldCancelCombiningReports, shouldCloseCSVEditorWhenClickingCloseButton, shouldCloseCSVEditorWithoutSavingWhenClickingCancel, shouldCombineRecommendationReports, shouldDirectlyDownloadChatHistoryReportWithoutCSVEditor, shouldDisableOtherDownloadButtonsWhileGeneratingReport, shouldDisplayCSVInEditableTableFormat, shouldDisplayReportCards, shouldHaveCombinedReportDataTestIds, shouldOpenCSVEditorDialog, shouldOpenCSVEditorForUserMetadataReport, shouldSaveEditedCSVAndTriggerDownload, shouldShowCombiningReportsDialog, shouldVerifyCSVEditorDialogAccessibility, signUpWithEmailAndPassword, switchToMemoryTab, switchToPrivacyTab, switchToSandboxTab, switchToScreenShareTab, switchToSkillsTab, switchToTasksTab, switchToVoiceSubTab, switchToVoiceTab, teardownSandboxInstance, test, toggleAutoPush, toggleMemorySwitch, toggleSkill, verifyAgentConfigPromptsVisible, verifyAuditLogEmptyState, verifyAuditLogEntryStructure, verifyAuditLogGenericError, verifyAuditLogLoading, verifyAuditLogPermissionError, verifyAuditLogTableVisible, verifyConnectDisabledForUnhealthy, verifyConnectedInstanceCard, verifyCurrentPage, verifyDonePhase, verifyDownloadingPhase, verifyErrorPhase, verifyInstanceTableEmpty, verifyInstanceTableVisible, verifyMemoryExists, verifyMemoryNotExists, verifyMemoryTabMemoriesList, verifyMemoryTabSettings, verifyPreparingPhase, verifySkillVisible, verifySkillsEmptyState, verifySkillsTabVisible, waitForAuditLogDataLoaded, waitForBillingTabReady, waitForCreditBalanceLoaded, waitForDialogReady, waitForElementStable, waitForPageLoad, waitForPageReady, waitForReportDownload };
1526
- export type { AgentPromptField, AuthFlowType, AuthSetupConfig, BillingAutoRechargeStatus, CallMode, CreatePlaywrightConfigOptions, CreditBalancePlan, EnvConfig, LlmProvider, PlatformConfig, PrivacyAction, PrivacyEntity, ReportDownloadOptions, SafeWaitForURLOptions, ScreenSharePromptField, SignUpCredentials, SkillFormValues, StepFn, SttProvider, TaskRepeat, TaskStatus, TtsProvider, VoiceProvider };
1647
+ export { AuthFlowBuilder, CHAT_PRIVACY_LABELS, CustomReporter, MailsacClient, PRIVACY_LABELS, SCREENSHARE_LABELS, TASKS_LABELS, VOICE_LABELS, addMemory, archiveFirstMemory, archiveMemoryByContent, billingAutoRechargeSection, billingCreditsSection, billingPlanSection, buildReportUrl, canChatWithEmbedMentor, cancelDeleteInstance, cancelDeleteSkill, cancelDisconnectInstance, cancelEnableChatPrivacyMidSession, cancelNewInstanceDialog, checkAdminStatus, clearDateRangeFilter, clearInstanceSearch, clickBackHome, clickBillingAddCredits, clickBillingManageBilling, clickBillingManageUsage, clickBillingUpgrade, clickChatPrivacyToggle, clickDownloadAgain, clickManualDownloadLink, closeCreditBalanceDropdown, closeWithEsc, confirmEnableChatPrivacyMidSession, connectToInstance, createAuthSetup, createEnvConfig, createInstance, createPlaywrightConfig, createSkill, creditBalancePanel, creditBalancePlanBadge, creditBalanceTrigger, deleteFirstMemory, deleteInstance, deleteMemoryByContent, deleteSkill, deleteTask, disableSkill, disconnectInstance, editAgentPrompt, editInstance, editSkill, enableSkill, expectBillingAutoRechargeSection, expectBillingCreditsSection, expectBillingPlanSection, expectBillingTabForCurrentPlan, expectBillingTabForFreePlan, expectBillingTabForPremiumPlan, expectBillingTabForTrialPlan, expectCallConfigVisible, expectCallConfigVoiceTriggerShows, expectChatPrivacyConfirmDialogOpen, expectChatPrivacyLocked, expectChatPrivacySource, expectChatPrivacyState, expectChatPrivacyToggleVisible, expectCompletedTasks, expectCreditBalanceForCurrentPlan, expectCreditBalancePanelForFreePlan, expectCreditBalancePanelForPremiumPlan, expectCreditBalancePanelForTrialPlan, expectCreditBalanceVisibilityForTenant, expectEntitySelected, expectFailedTasks, expectLogDetailsStatus, expectLogsForTask, expectMentorVoiceTriggerShows, expectNoAccessibilityViolations, expectNoAccessibilityViolationsOnDialogs, expectNoLogsForSelectedTask, expectOutputFilterEnabled, expectPrivacyFieldsHidden, expectPrivacyFieldsVisible, expectPrivateModeSelected, expectPrivateModeTabReady, expectScheduleStartTimeInPastError, expectScreenShareDisabledHint, expectSttSelectDisabled, expectTaskInList, expectTaskNotInList, expectTaskStatus, expectTasksEmpty, expectTenantChatPrivacyEnabled, expectTenantChatPrivacyVisible, expectTotalTasks, expectTtsSelectDisabled, expectVoiceProviderSelected, expectVoiceVisible, filterByAction, filterByActionAndVerify, filterByActor, filterByActorAndVerify, filterByDateRange, generateBrowserSetupProjects, generateProjectConfig, getAuditLogRowCount, getAvailableActors, getBillingAutoRechargeStatus, getBillingPlanLabel, getBrowserKey, getCallConfigForm, getChatPrivacyConfirmDialog, getChatPrivacyToggle, getCreditBalancePlanLabel, getCreditBalanceRemaining, getCurrentModel, getCurrentTenantShowPaywall, getEntityChip, getInstanceHealthLabel, getInstanceRowCount, getInstanceStatusLabel, getMemoryCount, getMentorIdFromUrl, getOutputFilterSwitch, getPaginationInfo, getPrivateModeCard, getScheduleTaskButton, getSearchInput, getSkillRowCount, getTaskRow, getTenantChatPrivacyRow, getTenantChatPrivacySwitch, getVoiceProviderCard, getVoiceRow, goToFirstPage, goToLastPage, goToNextPage, goToPage, goToPreviousPage, inviteUserTest, isFirefox, isJSON, isMemoryTabVisible, isOnFirstPage, isOnLastPage, isPrivacyTabVisible, isPrivateModeTabVisible, isSandboxTabVisible, isScreenShareTabVisible, isSkillEnabled, isTasksTabVisible, isVoiceTabVisible, logger, loginWithEmailAndPassword, loginWithMicrosoftIdp, navigateToAccountComponent, navigateToAuditLog, navigateToAuditLogAndWaitForData, navigateToDataReports, navigateToReportDownload, openAddMemoryDialog, openAgentPromptEditModal, openCallConfigVoicePicker, openCreditBalanceDropdown, openEditInstanceDialog, openEditSkillDialog, openFirstLogDetails, openInstanceActionsMenu, openLLMProviderPicker, openMentorVoicePicker, openNewInstanceDialog, openNewSkillDialog, openScheduleTaskDialog, openScreenSharePromptEditor, openSkillActionsMenu, parseReportUrlParams, previewCallConfigVoiceInline, previewMentorVoiceInline, previewVoice, pushConfiguration, reliableClick, reliableFill, resetCallConfig, retry, runConnectedInstanceChecks, runInstanceChecks, safeWaitForURL, saveCallConfig, saveScreenSharePrompts, saveVoiceSettings, scheduleTask, searchInstances, searchTasks, searchVoices, selectCallMode, selectDateFromCalendar, selectLLMModel, selectLlmProvider, selectPrivacyAction, selectPrivateMode, selectSttProvider, selectTaskInList, selectTtsProvider, selectVoice, selectVoiceProvider, setBlockMessage, setCallLanguage, setEnableVideo, setEntitySelected, setOutputFilterEnabled, setScreenSharePrompt, setTenantChatPrivacyEnabled, setUseFunctionCallingEnabled, setupSandboxInstance, shouldAddNewRowWhenClickingAddRowButton, shouldAllowEditingCellValuesInCSVEditor, shouldCancelCombiningReports, shouldCloseCSVEditorWhenClickingCloseButton, shouldCloseCSVEditorWithoutSavingWhenClickingCancel, shouldCombineRecommendationReports, shouldDirectlyDownloadChatHistoryReportWithoutCSVEditor, shouldDisableOtherDownloadButtonsWhileGeneratingReport, shouldDisplayCSVInEditableTableFormat, shouldDisplayReportCards, shouldHaveCombinedReportDataTestIds, shouldOpenCSVEditorDialog, shouldOpenCSVEditorForUserMetadataReport, shouldSaveEditedCSVAndTriggerDownload, shouldShowCombiningReportsDialog, shouldVerifyCSVEditorDialogAccessibility, signUpWithEmailAndPassword, switchToMemoryTab, switchToPrivacyTab, switchToPrivateModeTab, switchToSandboxTab, switchToScreenShareTab, switchToSkillsTab, switchToTasksTab, switchToVoiceSubTab, switchToVoiceTab, teardownSandboxInstance, test, toggleAutoPush, toggleMemorySwitch, toggleSkill, verifyAgentConfigPromptsVisible, verifyAuditLogEmptyState, verifyAuditLogEntryStructure, verifyAuditLogGenericError, verifyAuditLogLoading, verifyAuditLogPermissionError, verifyAuditLogTableVisible, verifyConnectDisabledForUnhealthy, verifyConnectedInstanceCard, verifyCurrentPage, verifyDonePhase, verifyDownloadingPhase, verifyErrorPhase, verifyInstanceTableEmpty, verifyInstanceTableVisible, verifyMemoryExists, verifyMemoryNotExists, verifyMemoryTabMemoriesList, verifyMemoryTabSettings, verifyPreparingPhase, verifySkillVisible, verifySkillsEmptyState, verifySkillsTabVisible, waitForAuditLogDataLoaded, waitForBillingTabReady, waitForCreditBalanceLoaded, waitForDialogReady, waitForElementStable, waitForPageLoad, waitForPageReady, waitForReportDownload };
1648
+ export type { AgentPromptField, AuthFlowType, AuthSetupConfig, BillingAutoRechargeStatus, CallMode, ChatPrivacyMode, ChatPrivacySource, ChatPrivacyToggleState, CreatePlaywrightConfigOptions, CreditBalancePlan, EnvConfig, LlmProvider, PlatformConfig, PrivacyAction, PrivacyEntity, ReportDownloadOptions, SafeWaitForURLOptions, ScreenSharePromptField, SignUpCredentials, SkillFormValues, StepFn, SttProvider, TaskRepeat, TaskStatus, TtsProvider, VoiceProvider };
@@ -3119,7 +3119,6 @@ async function expectCreditBalanceForCurrentPlan(page, options) {
3119
3119
  const PRIVACY_LABELS = {
3120
3120
  tabName: 'Privacy',
3121
3121
  headerTitle: 'Privacy',
3122
- routerLabel: 'Enable Privacy Router',
3123
3122
  actionLabel: 'When PII is detected',
3124
3123
  blockMessageLabel: 'Block Message',
3125
3124
  entitiesLabel: 'Entity Types',
@@ -3151,7 +3150,7 @@ const PRIVACY_LABELS = {
3151
3150
  * reach DOM that Radix renders outside the dialog subtree (popovers,
3152
3151
  * select options, etc.).
3153
3152
  */
3154
- function asPage$3(scope) {
3153
+ function asPage$4(scope) {
3155
3154
  return 'page' in scope ? scope.page() : scope;
3156
3155
  }
3157
3156
  /**
@@ -3171,45 +3170,22 @@ async function isPrivacyTabVisible(page) {
3171
3170
  }
3172
3171
  /**
3173
3172
  * Switch to the Privacy tab. Assumes the Edit Mentor dialog is open.
3173
+ *
3174
+ * The Privacy Router on/off toggle lives on the Settings tab — this tab
3175
+ * only shows dependent PII-handling fields when the router is enabled.
3176
+ * Confirm landing via the tab body's testid rather than any inner label,
3177
+ * since the field labels are conditional.
3174
3178
  */
3175
3179
  async function switchToPrivacyTab(page) {
3176
3180
  const tab = page.getByRole('tab', { name: PRIVACY_LABELS.tabName, exact: true });
3177
3181
  await expect(tab).toBeVisible({ timeout: 10000 });
3178
3182
  await tab.click();
3179
- // The master toggle label is unique to the privacy tab its presence
3180
- // confirms we landed on the right pane.
3181
- await expect(page.getByText(PRIVACY_LABELS.routerLabel)).toBeVisible({
3182
- timeout: 10000,
3183
- });
3183
+ await expect(page.getByTestId('privacy-tab-body')).toBeVisible({ timeout: 10000 });
3184
3184
  logger.info('Switched to Privacy tab');
3185
3185
  }
3186
- /**
3187
- * Locator for the master privacy-router switch.
3188
- */
3189
- function getPrivacyRouterSwitch(scope) {
3190
- return scope.getByRole('switch', { name: /Privacy router (enabled|disabled)/ });
3191
- }
3192
- /**
3193
- * Click the master toggle until it matches the desired state.
3194
- */
3195
- async function setPrivacyRouterEnabled(scope, enabled) {
3196
- const toggle = getPrivacyRouterSwitch(scope);
3197
- await expect(toggle).toBeVisible({ timeout: 10000 });
3198
- const isChecked = (await toggle.getAttribute('aria-checked')) === 'true';
3199
- if (isChecked !== enabled) {
3200
- await toggle.click();
3201
- await expect(toggle).toHaveAttribute('aria-checked', String(enabled), {
3202
- timeout: 10000,
3203
- });
3204
- }
3205
- logger.info(`Privacy router set to ${enabled ? 'enabled' : 'disabled'}`);
3206
- }
3207
- async function expectPrivacyRouterEnabled(scope, enabled) {
3208
- await expect(getPrivacyRouterSwitch(scope)).toHaveAttribute('aria-checked', String(enabled));
3209
- }
3210
3186
  /**
3211
3187
  * Assert that all dependent privacy fields are hidden — the case when the
3212
- * master toggle is off.
3188
+ * Privacy Router is disabled (on the Settings tab).
3213
3189
  */
3214
3190
  async function expectPrivacyFieldsHidden(scope) {
3215
3191
  await expect(scope.getByText(PRIVACY_LABELS.actionLabel)).toBeHidden();
@@ -3235,7 +3211,7 @@ async function selectPrivacyAction(scope, action) {
3235
3211
  await trigger.click();
3236
3212
  // Radix Select renders options in a portal at the document root, so we
3237
3213
  // always look them up on the Page — never on the dialog Locator.
3238
- const option = asPage$3(scope).getByRole('option', {
3214
+ const option = asPage$4(scope).getByRole('option', {
3239
3215
  name: PRIVACY_LABELS.actionOptions[action],
3240
3216
  });
3241
3217
  await expect(option).toBeVisible({ timeout: 5000 });
@@ -3304,6 +3280,264 @@ async function expectOutputFilterEnabled(scope, enabled) {
3304
3280
  await expect(getOutputFilterSwitch(scope)).toHaveAttribute('aria-checked', String(enabled));
3305
3281
  }
3306
3282
 
3283
+ /**
3284
+ * Chat-privacy Playwright bindings.
3285
+ *
3286
+ * Three surfaces, three groups of helpers:
3287
+ *
3288
+ * 1. **Header toggle** — the nav-bar `ChatPrivacyToggle` (`<HatGlasses />`
3289
+ * icon-button that morphs into the "Private Mode" pill).
3290
+ * 2. **User profile** — the "Private Mode" tab in `UserProfileModal`
3291
+ * (three radio-card options: Normal / Anonymized / Disabled).
3292
+ * 3. **Tenant admin** — the "Allow users to control chat privacy" row in
3293
+ * the Advanced settings tab (`<Switch>`).
3294
+ *
3295
+ * All selectors target stable hooks — primarily `data-testid` plus the
3296
+ * `data-state` / `data-source` / `aria-pressed` attributes the components
3297
+ * already expose. Avoid asserting on visible copy directly (it changes);
3298
+ * the label maps below are kept for readable assertions on the rare cases
3299
+ * where copy IS the thing we want to lock.
3300
+ */
3301
+ const CHAT_PRIVACY_LABELS = {
3302
+ toggle: {
3303
+ /** Title of the mid-session confirmation dialog. */
3304
+ dialogTitle: 'Enable Private Mode for this chat?',
3305
+ /** Label on the dialog's confirm button (matches both idle + busy state via regex). */
3306
+ dialogConfirm: /Enable Private Mode|Enabling…/,
3307
+ },
3308
+ profileTab: {
3309
+ /** Tab name in the user profile modal sidebar. */
3310
+ tabName: 'Private Mode',
3311
+ /** Section heading inside the tab body. */
3312
+ sectionHeading: 'Default Private Mode',
3313
+ /** Label text on each radio card. Kept in case the test wants to assert
3314
+ * copy explicitly — the click + read paths use the testid instead. */
3315
+ cards: {
3316
+ normal: 'Normal',
3317
+ anonymized: 'Anonymized',
3318
+ disabled: 'Disabled',
3319
+ },
3320
+ },
3321
+ tenantToggle: {
3322
+ /** Visible row label. */
3323
+ rowLabel: 'Allow users to control chat privacy',
3324
+ },
3325
+ };
3326
+ function asPage$3(scope) {
3327
+ return 'page' in scope ? scope.page() : scope;
3328
+ }
3329
+ // ──────────────────────────────────────────────────────────────────────
3330
+ // 1. Header toggle (ChatPrivacyToggle)
3331
+ // ──────────────────────────────────────────────────────────────────────
3332
+ /**
3333
+ * Locator for the nav-bar Private-Mode toggle. The toggle is hidden below
3334
+ * the `md` breakpoint — assertions in mobile contexts should use
3335
+ * `expectChatPrivacyToggleVisible(scope, false)`.
3336
+ */
3337
+ function getChatPrivacyToggle(scope) {
3338
+ return scope.getByTestId('chat-privacy-toggle');
3339
+ }
3340
+ async function expectChatPrivacyToggleVisible(scope, visible) {
3341
+ if (visible) {
3342
+ await expect(getChatPrivacyToggle(scope)).toBeVisible({ timeout: 10000 });
3343
+ }
3344
+ else {
3345
+ await expect(getChatPrivacyToggle(scope)).toBeHidden();
3346
+ }
3347
+ }
3348
+ /**
3349
+ * Assert the toggle is on / off via `data-state` (driven by the resolved
3350
+ * effective mode + the local optimistic overlay).
3351
+ */
3352
+ async function expectChatPrivacyState(scope, state) {
3353
+ await expect(getChatPrivacyToggle(scope)).toHaveAttribute('data-state', state, {
3354
+ timeout: 10000,
3355
+ });
3356
+ }
3357
+ /**
3358
+ * Assert the resolved precedence-source via `data-source` (mentor / tenant
3359
+ * / user / session / default). Useful for verifying the chat-privacy-
3360
+ * effective endpoint resolved to the expected tier.
3361
+ */
3362
+ async function expectChatPrivacySource(scope, source) {
3363
+ await expect(getChatPrivacyToggle(scope)).toHaveAttribute('data-source', source, {
3364
+ timeout: 10000,
3365
+ });
3366
+ }
3367
+ /**
3368
+ * Lock state is signalled via `aria-disabled` (the component uses
3369
+ * `aria-disabled` instead of native `disabled` so the source-aware tooltip
3370
+ * stays reachable on the locked pill).
3371
+ */
3372
+ async function expectChatPrivacyLocked(scope, locked) {
3373
+ const toggle = getChatPrivacyToggle(scope);
3374
+ if (locked) {
3375
+ await expect(toggle).toHaveAttribute('aria-disabled', 'true', { timeout: 10000 });
3376
+ }
3377
+ else {
3378
+ // When unlocked, the attribute is either absent or explicitly "false".
3379
+ const value = await toggle.getAttribute('aria-disabled');
3380
+ expect(value === null || value === 'false').toBe(true);
3381
+ }
3382
+ }
3383
+ /**
3384
+ * Click the toggle. Covers two scenarios:
3385
+ * - Off → on (with no user messages) → starts a fresh private session.
3386
+ * - On (user-initiated, no user messages) → starts a fresh normal session.
3387
+ * Use `confirmEnableChatPrivacyMidSession` for the mid-conversation flow.
3388
+ */
3389
+ async function clickChatPrivacyToggle(scope) {
3390
+ const toggle = getChatPrivacyToggle(scope);
3391
+ await expect(toggle).toBeVisible({ timeout: 10000 });
3392
+ await toggle.click();
3393
+ logger.info('Clicked chat-privacy toggle');
3394
+ }
3395
+ // ── Mid-session confirm dialog ────────────────────────────────────────
3396
+ /** Locator for the AlertDialog content that the mid-session enable opens. */
3397
+ function getChatPrivacyConfirmDialog(scope) {
3398
+ return asPage$3(scope).getByTestId('chat-privacy-confirm-dialog');
3399
+ }
3400
+ async function expectChatPrivacyConfirmDialogOpen(scope, open) {
3401
+ if (open) {
3402
+ await expect(getChatPrivacyConfirmDialog(scope)).toBeVisible({ timeout: 10000 });
3403
+ }
3404
+ else {
3405
+ await expect(getChatPrivacyConfirmDialog(scope)).toBeHidden({ timeout: 10000 });
3406
+ }
3407
+ }
3408
+ /**
3409
+ * Mid-conversation enable flow:
3410
+ * 1. Click the toggle (opens the confirm dialog).
3411
+ * 2. Click the "Enable Private Mode" action.
3412
+ * The session-level disable-chathistory POST is one-way per spec; the
3413
+ * helper resolves once the dialog closes after a successful confirm.
3414
+ */
3415
+ async function confirmEnableChatPrivacyMidSession(scope) {
3416
+ await clickChatPrivacyToggle(scope);
3417
+ const page = asPage$3(scope);
3418
+ await expectChatPrivacyConfirmDialogOpen(page, true);
3419
+ const action = page.getByTestId('chat-privacy-confirm-action');
3420
+ await expect(action).toBeVisible({ timeout: 10000 });
3421
+ await expect(action).toBeEnabled({ timeout: 10000 });
3422
+ await action.click();
3423
+ await expectChatPrivacyConfirmDialogOpen(page, false);
3424
+ logger.info('Confirmed mid-session Private Mode enable');
3425
+ }
3426
+ /** Cancel the confirm dialog without enabling. */
3427
+ async function cancelEnableChatPrivacyMidSession(scope) {
3428
+ const page = asPage$3(scope);
3429
+ const cancel = page.getByTestId('chat-privacy-confirm-cancel');
3430
+ await expect(cancel).toBeVisible({ timeout: 10000 });
3431
+ await cancel.click();
3432
+ await expectChatPrivacyConfirmDialogOpen(page, false);
3433
+ logger.info('Cancelled mid-session Private Mode dialog');
3434
+ }
3435
+ // ──────────────────────────────────────────────────────────────────────
3436
+ // 2. User profile — Private Mode tab
3437
+ // ──────────────────────────────────────────────────────────────────────
3438
+ /**
3439
+ * Switch to the Private Mode tab inside the user profile modal. Assumes
3440
+ * the modal is already open. The tab only appears when the tenant has
3441
+ * `allow_user_chat_privacy_control` on, so a `false` return from
3442
+ * `isPrivateModeTabVisible` is a meaningful state, not an error.
3443
+ */
3444
+ async function isPrivateModeTabVisible(page) {
3445
+ const tab = page.getByRole('tab', {
3446
+ name: CHAT_PRIVACY_LABELS.profileTab.tabName,
3447
+ exact: true,
3448
+ });
3449
+ try {
3450
+ await expect(tab).toBeVisible({ timeout: 5000 });
3451
+ return true;
3452
+ }
3453
+ catch (_a) {
3454
+ return false;
3455
+ }
3456
+ }
3457
+ async function switchToPrivateModeTab(page) {
3458
+ const tab = page.getByRole('tab', {
3459
+ name: CHAT_PRIVACY_LABELS.profileTab.tabName,
3460
+ exact: true,
3461
+ });
3462
+ await expect(tab).toBeVisible({ timeout: 10000 });
3463
+ await tab.click();
3464
+ await expect(page.getByTestId('chat-privacy-tab-body')).toBeVisible({ timeout: 10000 });
3465
+ logger.info('Switched to Private Mode tab');
3466
+ }
3467
+ /** Locator for one of the three radio cards. */
3468
+ function getPrivateModeCard(scope, mode) {
3469
+ return scope.getByTestId(`chat-privacy-mode-${mode}`);
3470
+ }
3471
+ /**
3472
+ * Pick a mode by clicking its card. Resolves once the card flips into
3473
+ * the selected state via `aria-pressed="true"` — i.e. the mutation came
3474
+ * back and the local pending state caught up.
3475
+ */
3476
+ async function selectPrivateMode(scope, mode) {
3477
+ const card = getPrivateModeCard(scope, mode);
3478
+ await expect(card).toBeVisible({ timeout: 10000 });
3479
+ await expect(card).toBeEnabled({ timeout: 10000 });
3480
+ await card.click();
3481
+ await expect(card).toHaveAttribute('aria-pressed', 'true', { timeout: 10000 });
3482
+ logger.info(`Selected Private Mode "${mode}"`);
3483
+ }
3484
+ /** Assert which mode is currently selected. Uses `aria-pressed` + `data-state`. */
3485
+ async function expectPrivateModeSelected(scope, mode) {
3486
+ await expect(getPrivateModeCard(scope, mode)).toHaveAttribute('aria-pressed', 'true', {
3487
+ timeout: 10000,
3488
+ });
3489
+ await expect(getPrivateModeCard(scope, mode)).toHaveAttribute('data-state', 'selected', {
3490
+ timeout: 10000,
3491
+ });
3492
+ }
3493
+ /** Assert every card is rendered. Useful as a "tab loaded" sanity check. */
3494
+ async function expectPrivateModeTabReady(scope) {
3495
+ await expect(scope.getByTestId('chat-privacy-tab-body')).toBeVisible({ timeout: 10000 });
3496
+ await expect(getPrivateModeCard(scope, 'normal')).toBeVisible();
3497
+ await expect(getPrivateModeCard(scope, 'anonymized')).toBeVisible();
3498
+ await expect(getPrivateModeCard(scope, 'disabled')).toBeVisible();
3499
+ }
3500
+ // ──────────────────────────────────────────────────────────────────────
3501
+ // 3. Tenant admin gate (ChatPrivacyContent in Advanced settings)
3502
+ // ──────────────────────────────────────────────────────────────────────
3503
+ /** Locator for the tenant-wide "Allow users to control chat privacy" switch. */
3504
+ function getTenantChatPrivacySwitch(scope) {
3505
+ return scope.getByTestId('tenant-chat-privacy-switch');
3506
+ }
3507
+ /** Locator for the surrounding row (useful for scoping label / spinner queries). */
3508
+ function getTenantChatPrivacyRow(scope) {
3509
+ return scope.getByTestId('tenant-chat-privacy-row');
3510
+ }
3511
+ async function expectTenantChatPrivacyVisible(scope, visible) {
3512
+ if (visible) {
3513
+ await expect(getTenantChatPrivacyRow(scope)).toBeVisible({ timeout: 10000 });
3514
+ }
3515
+ else {
3516
+ await expect(getTenantChatPrivacyRow(scope)).toBeHidden();
3517
+ }
3518
+ }
3519
+ /** Assert the tenant gate's current state via `aria-checked` on the Radix switch. */
3520
+ async function expectTenantChatPrivacyEnabled(scope, enabled) {
3521
+ await expect(getTenantChatPrivacySwitch(scope)).toHaveAttribute('aria-checked', String(enabled), { timeout: 10000 });
3522
+ }
3523
+ /**
3524
+ * Flip the tenant gate to the desired state. Idempotent — does nothing if
3525
+ * the switch is already in the target state. Backend rejects this for
3526
+ * non-admins (403) and the component surfaces an error toast in that case.
3527
+ */
3528
+ async function setTenantChatPrivacyEnabled(scope, enabled) {
3529
+ const sw = getTenantChatPrivacySwitch(scope);
3530
+ await expect(sw).toBeVisible({ timeout: 10000 });
3531
+ const current = (await sw.getAttribute('aria-checked')) === 'true';
3532
+ if (current === enabled) {
3533
+ logger.info(`Tenant chat-privacy already ${enabled ? 'enabled' : 'disabled'}`);
3534
+ return;
3535
+ }
3536
+ await sw.click();
3537
+ await expect(sw).toHaveAttribute('aria-checked', String(enabled), { timeout: 10000 });
3538
+ logger.info(`Tenant chat-privacy set to ${enabled ? 'enabled' : 'disabled'}`);
3539
+ }
3540
+
3307
3541
  /**
3308
3542
  * Voice tab helpers — Playwright bindings for the `AgentVoiceTab` component
3309
3543
  * from `@iblai/web-containers`.
@@ -4403,5 +4637,5 @@ function createPlaywrightConfig(options) {
4403
4637
  });
4404
4638
  }
4405
4639
 
4406
- export { AuthFlowBuilder, CustomReporter, MailsacClient, PRIVACY_LABELS, SCREENSHARE_LABELS, TASKS_LABELS, VOICE_LABELS, addMemory, archiveFirstMemory, archiveMemoryByContent, billingAutoRechargeSection, billingCreditsSection, billingPlanSection, buildReportUrl, canChatWithEmbedMentor, cancelDeleteInstance, cancelDeleteSkill, cancelDisconnectInstance, cancelNewInstanceDialog, checkAdminStatus, clearDateRangeFilter, clearInstanceSearch, clickBackHome, clickBillingAddCredits, clickBillingManageBilling, clickBillingManageUsage, clickBillingUpgrade, clickDownloadAgain, clickManualDownloadLink, closeCreditBalanceDropdown, closeWithEsc, connectToInstance, createAuthSetup, createEnvConfig, createInstance, createPlaywrightConfig, createSkill, creditBalancePanel, creditBalancePlanBadge, creditBalanceTrigger, deleteFirstMemory, deleteInstance, deleteMemoryByContent, deleteSkill, deleteTask, disableSkill, disconnectInstance, editAgentPrompt, editInstance, editSkill, enableSkill, expectBillingAutoRechargeSection, expectBillingCreditsSection, expectBillingPlanSection, expectBillingTabForCurrentPlan, expectBillingTabForFreePlan, expectBillingTabForPremiumPlan, expectBillingTabForTrialPlan, expectCallConfigVisible, expectCallConfigVoiceTriggerShows, expectCompletedTasks, expectCreditBalanceForCurrentPlan, expectCreditBalancePanelForFreePlan, expectCreditBalancePanelForPremiumPlan, expectCreditBalancePanelForTrialPlan, expectCreditBalanceVisibilityForTenant, expectEntitySelected, expectFailedTasks, expectLogDetailsStatus, expectLogsForTask, expectMentorVoiceTriggerShows, expectNoAccessibilityViolations, expectNoAccessibilityViolationsOnDialogs, expectNoLogsForSelectedTask, expectOutputFilterEnabled, expectPrivacyFieldsHidden, expectPrivacyFieldsVisible, expectPrivacyRouterEnabled, expectScheduleStartTimeInPastError, expectScreenShareDisabledHint, expectSttSelectDisabled, expectTaskInList, expectTaskNotInList, expectTaskStatus, expectTasksEmpty, expectTotalTasks, expectTtsSelectDisabled, expectVoiceProviderSelected, expectVoiceVisible, filterByAction, filterByActionAndVerify, filterByActor, filterByActorAndVerify, filterByDateRange, generateBrowserSetupProjects, generateProjectConfig, getAuditLogRowCount, getAvailableActors, getBillingAutoRechargeStatus, getBillingPlanLabel, getBrowserKey, getCallConfigForm, getCreditBalancePlanLabel, getCreditBalanceRemaining, getCurrentModel, getCurrentTenantShowPaywall, getEntityChip, getInstanceHealthLabel, getInstanceRowCount, getInstanceStatusLabel, getMemoryCount, getMentorIdFromUrl, getOutputFilterSwitch, getPaginationInfo, getPrivacyRouterSwitch, getScheduleTaskButton, getSearchInput, getSkillRowCount, getTaskRow, getVoiceProviderCard, getVoiceRow, goToFirstPage, goToLastPage, goToNextPage, goToPage, goToPreviousPage, inviteUserTest, isFirefox, isJSON, isMemoryTabVisible, isOnFirstPage, isOnLastPage, isPrivacyTabVisible, isSandboxTabVisible, isScreenShareTabVisible, isSkillEnabled, isTasksTabVisible, isVoiceTabVisible, logger, loginWithEmailAndPassword, loginWithMicrosoftIdp, navigateToAccountComponent, navigateToAuditLog, navigateToAuditLogAndWaitForData, navigateToDataReports, navigateToReportDownload, openAddMemoryDialog, openAgentPromptEditModal, openCallConfigVoicePicker, openCreditBalanceDropdown, openEditInstanceDialog, openEditSkillDialog, openFirstLogDetails, openInstanceActionsMenu, openLLMProviderPicker, openMentorVoicePicker, openNewInstanceDialog, openNewSkillDialog, openScheduleTaskDialog, openScreenSharePromptEditor, openSkillActionsMenu, parseReportUrlParams, previewCallConfigVoiceInline, previewMentorVoiceInline, previewVoice, pushConfiguration, reliableClick, reliableFill, resetCallConfig, retry, runConnectedInstanceChecks, runInstanceChecks, safeWaitForURL, saveCallConfig, saveScreenSharePrompts, saveVoiceSettings, scheduleTask, searchInstances, searchTasks, searchVoices, selectCallMode, selectDateFromCalendar, selectLLMModel, selectLlmProvider, selectPrivacyAction, selectSttProvider, selectTaskInList, selectTtsProvider, selectVoice, selectVoiceProvider, setBlockMessage, setCallLanguage, setEnableVideo, setEntitySelected, setOutputFilterEnabled, setPrivacyRouterEnabled, setScreenSharePrompt, setUseFunctionCallingEnabled, setupSandboxInstance, shouldAddNewRowWhenClickingAddRowButton, shouldAllowEditingCellValuesInCSVEditor, shouldCancelCombiningReports, shouldCloseCSVEditorWhenClickingCloseButton, shouldCloseCSVEditorWithoutSavingWhenClickingCancel, shouldCombineRecommendationReports, shouldDirectlyDownloadChatHistoryReportWithoutCSVEditor, shouldDisableOtherDownloadButtonsWhileGeneratingReport, shouldDisplayCSVInEditableTableFormat, shouldDisplayReportCards, shouldHaveCombinedReportDataTestIds, shouldOpenCSVEditorDialog, shouldOpenCSVEditorForUserMetadataReport, shouldSaveEditedCSVAndTriggerDownload, shouldShowCombiningReportsDialog, shouldVerifyCSVEditorDialogAccessibility, signUpWithEmailAndPassword, switchToMemoryTab, switchToPrivacyTab, switchToSandboxTab, switchToScreenShareTab, switchToSkillsTab, switchToTasksTab, switchToVoiceSubTab, switchToVoiceTab, teardownSandboxInstance, test, toggleAutoPush, toggleMemorySwitch, toggleSkill, verifyAgentConfigPromptsVisible, verifyAuditLogEmptyState, verifyAuditLogEntryStructure, verifyAuditLogGenericError, verifyAuditLogLoading, verifyAuditLogPermissionError, verifyAuditLogTableVisible, verifyConnectDisabledForUnhealthy, verifyConnectedInstanceCard, verifyCurrentPage, verifyDonePhase, verifyDownloadingPhase, verifyErrorPhase, verifyInstanceTableEmpty, verifyInstanceTableVisible, verifyMemoryExists, verifyMemoryNotExists, verifyMemoryTabMemoriesList, verifyMemoryTabSettings, verifyPreparingPhase, verifySkillVisible, verifySkillsEmptyState, verifySkillsTabVisible, waitForAuditLogDataLoaded, waitForBillingTabReady, waitForCreditBalanceLoaded, waitForDialogReady, waitForElementStable, waitForPageLoad, waitForPageReady, waitForReportDownload };
4640
+ export { AuthFlowBuilder, CHAT_PRIVACY_LABELS, CustomReporter, MailsacClient, PRIVACY_LABELS, SCREENSHARE_LABELS, TASKS_LABELS, VOICE_LABELS, addMemory, archiveFirstMemory, archiveMemoryByContent, billingAutoRechargeSection, billingCreditsSection, billingPlanSection, buildReportUrl, canChatWithEmbedMentor, cancelDeleteInstance, cancelDeleteSkill, cancelDisconnectInstance, cancelEnableChatPrivacyMidSession, cancelNewInstanceDialog, checkAdminStatus, clearDateRangeFilter, clearInstanceSearch, clickBackHome, clickBillingAddCredits, clickBillingManageBilling, clickBillingManageUsage, clickBillingUpgrade, clickChatPrivacyToggle, clickDownloadAgain, clickManualDownloadLink, closeCreditBalanceDropdown, closeWithEsc, confirmEnableChatPrivacyMidSession, connectToInstance, createAuthSetup, createEnvConfig, createInstance, createPlaywrightConfig, createSkill, creditBalancePanel, creditBalancePlanBadge, creditBalanceTrigger, deleteFirstMemory, deleteInstance, deleteMemoryByContent, deleteSkill, deleteTask, disableSkill, disconnectInstance, editAgentPrompt, editInstance, editSkill, enableSkill, expectBillingAutoRechargeSection, expectBillingCreditsSection, expectBillingPlanSection, expectBillingTabForCurrentPlan, expectBillingTabForFreePlan, expectBillingTabForPremiumPlan, expectBillingTabForTrialPlan, expectCallConfigVisible, expectCallConfigVoiceTriggerShows, expectChatPrivacyConfirmDialogOpen, expectChatPrivacyLocked, expectChatPrivacySource, expectChatPrivacyState, expectChatPrivacyToggleVisible, expectCompletedTasks, expectCreditBalanceForCurrentPlan, expectCreditBalancePanelForFreePlan, expectCreditBalancePanelForPremiumPlan, expectCreditBalancePanelForTrialPlan, expectCreditBalanceVisibilityForTenant, expectEntitySelected, expectFailedTasks, expectLogDetailsStatus, expectLogsForTask, expectMentorVoiceTriggerShows, expectNoAccessibilityViolations, expectNoAccessibilityViolationsOnDialogs, expectNoLogsForSelectedTask, expectOutputFilterEnabled, expectPrivacyFieldsHidden, expectPrivacyFieldsVisible, expectPrivateModeSelected, expectPrivateModeTabReady, expectScheduleStartTimeInPastError, expectScreenShareDisabledHint, expectSttSelectDisabled, expectTaskInList, expectTaskNotInList, expectTaskStatus, expectTasksEmpty, expectTenantChatPrivacyEnabled, expectTenantChatPrivacyVisible, expectTotalTasks, expectTtsSelectDisabled, expectVoiceProviderSelected, expectVoiceVisible, filterByAction, filterByActionAndVerify, filterByActor, filterByActorAndVerify, filterByDateRange, generateBrowserSetupProjects, generateProjectConfig, getAuditLogRowCount, getAvailableActors, getBillingAutoRechargeStatus, getBillingPlanLabel, getBrowserKey, getCallConfigForm, getChatPrivacyConfirmDialog, getChatPrivacyToggle, getCreditBalancePlanLabel, getCreditBalanceRemaining, getCurrentModel, getCurrentTenantShowPaywall, getEntityChip, getInstanceHealthLabel, getInstanceRowCount, getInstanceStatusLabel, getMemoryCount, getMentorIdFromUrl, getOutputFilterSwitch, getPaginationInfo, getPrivateModeCard, getScheduleTaskButton, getSearchInput, getSkillRowCount, getTaskRow, getTenantChatPrivacyRow, getTenantChatPrivacySwitch, getVoiceProviderCard, getVoiceRow, goToFirstPage, goToLastPage, goToNextPage, goToPage, goToPreviousPage, inviteUserTest, isFirefox, isJSON, isMemoryTabVisible, isOnFirstPage, isOnLastPage, isPrivacyTabVisible, isPrivateModeTabVisible, isSandboxTabVisible, isScreenShareTabVisible, isSkillEnabled, isTasksTabVisible, isVoiceTabVisible, logger, loginWithEmailAndPassword, loginWithMicrosoftIdp, navigateToAccountComponent, navigateToAuditLog, navigateToAuditLogAndWaitForData, navigateToDataReports, navigateToReportDownload, openAddMemoryDialog, openAgentPromptEditModal, openCallConfigVoicePicker, openCreditBalanceDropdown, openEditInstanceDialog, openEditSkillDialog, openFirstLogDetails, openInstanceActionsMenu, openLLMProviderPicker, openMentorVoicePicker, openNewInstanceDialog, openNewSkillDialog, openScheduleTaskDialog, openScreenSharePromptEditor, openSkillActionsMenu, parseReportUrlParams, previewCallConfigVoiceInline, previewMentorVoiceInline, previewVoice, pushConfiguration, reliableClick, reliableFill, resetCallConfig, retry, runConnectedInstanceChecks, runInstanceChecks, safeWaitForURL, saveCallConfig, saveScreenSharePrompts, saveVoiceSettings, scheduleTask, searchInstances, searchTasks, searchVoices, selectCallMode, selectDateFromCalendar, selectLLMModel, selectLlmProvider, selectPrivacyAction, selectPrivateMode, selectSttProvider, selectTaskInList, selectTtsProvider, selectVoice, selectVoiceProvider, setBlockMessage, setCallLanguage, setEnableVideo, setEntitySelected, setOutputFilterEnabled, setScreenSharePrompt, setTenantChatPrivacyEnabled, setUseFunctionCallingEnabled, setupSandboxInstance, shouldAddNewRowWhenClickingAddRowButton, shouldAllowEditingCellValuesInCSVEditor, shouldCancelCombiningReports, shouldCloseCSVEditorWhenClickingCloseButton, shouldCloseCSVEditorWithoutSavingWhenClickingCancel, shouldCombineRecommendationReports, shouldDirectlyDownloadChatHistoryReportWithoutCSVEditor, shouldDisableOtherDownloadButtonsWhileGeneratingReport, shouldDisplayCSVInEditableTableFormat, shouldDisplayReportCards, shouldHaveCombinedReportDataTestIds, shouldOpenCSVEditorDialog, shouldOpenCSVEditorForUserMetadataReport, shouldSaveEditedCSVAndTriggerDownload, shouldShowCombiningReportsDialog, shouldVerifyCSVEditorDialogAccessibility, signUpWithEmailAndPassword, switchToMemoryTab, switchToPrivacyTab, switchToPrivateModeTab, switchToSandboxTab, switchToScreenShareTab, switchToSkillsTab, switchToTasksTab, switchToVoiceSubTab, switchToVoiceTab, teardownSandboxInstance, test, toggleAutoPush, toggleMemorySwitch, toggleSkill, verifyAgentConfigPromptsVisible, verifyAuditLogEmptyState, verifyAuditLogEntryStructure, verifyAuditLogGenericError, verifyAuditLogLoading, verifyAuditLogPermissionError, verifyAuditLogTableVisible, verifyConnectDisabledForUnhealthy, verifyConnectedInstanceCard, verifyCurrentPage, verifyDonePhase, verifyDownloadingPhase, verifyErrorPhase, verifyInstanceTableEmpty, verifyInstanceTableVisible, verifyMemoryExists, verifyMemoryNotExists, verifyMemoryTabMemoriesList, verifyMemoryTabSettings, verifyPreparingPhase, verifySkillVisible, verifySkillsEmptyState, verifySkillsTabVisible, waitForAuditLogDataLoaded, waitForBillingTabReady, waitForCreditBalanceLoaded, waitForDialogReady, waitForElementStable, waitForPageLoad, waitForPageReady, waitForReportDownload };
4407
4641
  //# sourceMappingURL=index.esm.js.map