@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.
- package/dist/data-layer/playwright/chat-privacy-helpers.d.ts +127 -0
- package/dist/data-layer/playwright/index.d.ts +3 -1
- package/dist/data-layer/playwright/privacy-tab-helpers.d.ts +6 -11
- package/dist/playwright/index.cjs +289 -36
- package/dist/playwright/index.cjs.map +1 -1
- package/dist/playwright/index.d.ts +135 -13
- package/dist/playwright/index.esm.js +268 -34
- package/dist/playwright/index.esm.js.map +1 -1
- package/dist/playwright/playwright/chat-privacy-helpers.d.ts +127 -0
- package/dist/playwright/playwright/index.d.ts +3 -1
- package/dist/playwright/playwright/privacy-tab-helpers.d.ts +6 -11
- package/dist/web-containers/playwright/chat-privacy-helpers.d.ts +127 -0
- package/dist/web-containers/playwright/index.d.ts +3 -1
- package/dist/web-containers/playwright/privacy-tab-helpers.d.ts +6 -11
- package/dist/web-containers/source/index.esm.js +1279 -616
- package/dist/web-containers/source/next/index.esm.js +9805 -8739
- package/dist/web-utils/playwright/chat-privacy-helpers.d.ts +127 -0
- package/dist/web-utils/playwright/index.d.ts +3 -1
- package/dist/web-utils/playwright/privacy-tab-helpers.d.ts +6 -11
- package/package.json +5 -5
|
@@ -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
|
-
*
|
|
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,
|
|
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$
|
|
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
|
-
|
|
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
|
-
*
|
|
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$
|
|
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,
|
|
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
|