@iblai/iblai-js 1.26.2 → 1.26.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1569,6 +1569,402 @@ declare function expectNoLogsForSelectedTask(scope: Page | Locator): Promise<voi
1569
1569
  declare function openFirstLogDetails(scope: Page | Locator): Promise<void>;
1570
1570
  declare function expectLogDetailsStatus(scope: Page | Locator, status: 'success' | 'error' | 'running' | string): Promise<void>;
1571
1571
 
1572
+ /**
1573
+ * Evals tab helpers — Playwright bindings for the `AgentEvaluationTab`
1574
+ * component from `@iblai/web-containers` (edit-mentor modal > Evals tab),
1575
+ * including the embedded tenant Benchmarks management dialog.
1576
+ *
1577
+ * All UI strings below mirror `AGENT_EVALUATION_TAB_LABELS` from
1578
+ * `@iblai/web-containers/next` plus the `benchmarks*` i18n namespaces. If a
1579
+ * consumer renames a label via the `labels` prop, override these constants
1580
+ * per spec — don't edit this file.
1581
+ *
1582
+ * Every dialog spawned by this tab carries an explicit `aria-label` on its
1583
+ * `DialogContent` (see `dialogName` entries). Helpers ALWAYS resolve the
1584
+ * dialog once via `[role="dialog"][aria-label="…"]` — the attribute selector,
1585
+ * not the role accessible name, because a visible `DialogTitle` makes Radix's
1586
+ * `aria-labelledby` win the accessible-name computation — and then resolve
1587
+ * every in-dialog control from that scoped locator. This matters here more
1588
+ * than usual:
1589
+ * - the toolbar "New Evaluation" / "Manage benchmarks" buttons share their
1590
+ * text with the dialog titles they open;
1591
+ * - the LLM-judge dialog's title AND submit button both read "Evaluate";
1592
+ * - dialogs nest three deep (Manage benchmarks → benchmark items → add
1593
+ * Q&A), and the add-Q&A dialog has Manual / CSV Upload sub-tabs whose
1594
+ * footers each have their own Cancel button.
1595
+ *
1596
+ * The helpers assume the Edit Mentor dialog is already open. Call
1597
+ * `switchToEvaluationTab(page)` first; from then on, every helper accepts
1598
+ * either the `Page` or a scoping `Locator`.
1599
+ */
1600
+ declare const EVALS_LABELS: {
1601
+ readonly tabName: "Evals";
1602
+ readonly header: {
1603
+ readonly title: "Evals";
1604
+ readonly description: "Run this agent against a benchmark and score the responses.";
1605
+ };
1606
+ readonly benchmarkPicker: {
1607
+ readonly placeholder: "Select a benchmark";
1608
+ readonly searchPlaceholder: "Search benchmarks...";
1609
+ readonly empty: "No benchmarks found";
1610
+ /** `data-testid` on the combobox trigger button (its text is the selected benchmark, so it has no stable accessible name). */
1611
+ readonly triggerTestId: "benchmark-combobox";
1612
+ /** `data-testid` on the dropdown panel (rendered inline, not in a portal). */
1613
+ readonly dropdownTestId: "benchmark-combobox-dropdown";
1614
+ };
1615
+ readonly actions: {
1616
+ readonly newExperiment: "New Evaluation";
1617
+ readonly manageBenchmarks: "Manage benchmarks";
1618
+ readonly viewResults: "View results";
1619
+ readonly evaluate: "New review";
1620
+ readonly exportCsv: "Export CSV";
1621
+ readonly checkStatus: "Check status";
1622
+ readonly delete: "Delete";
1623
+ };
1624
+ readonly checkStatusToast: {
1625
+ readonly pending: "Evaluation is still running";
1626
+ readonly completed: "Evaluation completed";
1627
+ readonly failed: "Evaluation failed";
1628
+ };
1629
+ readonly emptyBenchmarks: "No benchmarks yet. Use \"Manage benchmarks\" above to create one.";
1630
+ readonly startDialog: {
1631
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1632
+ readonly dialogName: "start-evaluation";
1633
+ readonly experimentNameLabel: "Evaluation name";
1634
+ readonly cancel: "Cancel";
1635
+ readonly start: "Start Evaluation";
1636
+ };
1637
+ readonly manageBenchmarksDialog: {
1638
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1639
+ readonly dialogName: "manage-benchmarks";
1640
+ readonly searchAriaLabel: "Search benchmarks";
1641
+ readonly newBenchmark: "New Benchmark";
1642
+ readonly empty: "No benchmarks found";
1643
+ };
1644
+ readonly createBenchmarkDialog: {
1645
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1646
+ readonly dialogName: "create-benchmark";
1647
+ readonly nameLabel: "Name";
1648
+ readonly descriptionLabel: "Description";
1649
+ readonly cancel: "Cancel";
1650
+ readonly create: "Create";
1651
+ };
1652
+ readonly benchmarkItemsDialog: {
1653
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1654
+ readonly dialogName: "benchmark-items";
1655
+ readonly addItems: "Add Q&A";
1656
+ readonly deleteItemAriaLabel: "Delete Q&A";
1657
+ readonly empty: "No Q&A in this benchmark yet";
1658
+ };
1659
+ readonly addItemsDialog: {
1660
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1661
+ readonly dialogName: "add-benchmark-items";
1662
+ readonly manualTab: "Manual";
1663
+ readonly csvTab: "CSV Upload";
1664
+ readonly questionLabel: "Question";
1665
+ readonly answerLabel: "Answer";
1666
+ readonly addRow: "Add row";
1667
+ readonly removeRowAriaLabel: "Remove row";
1668
+ readonly add: "Add";
1669
+ readonly csvFileLabel: "CSV file";
1670
+ readonly upload: "Upload";
1671
+ readonly cancel: "Cancel";
1672
+ };
1673
+ readonly deleteItemDialog: {
1674
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1675
+ readonly dialogName: "delete-benchmark-item";
1676
+ readonly delete: "Delete";
1677
+ readonly cancel: "Cancel";
1678
+ };
1679
+ readonly detailDialog: {
1680
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1681
+ readonly dialogName: "evaluation-detail";
1682
+ readonly refreshAriaLabel: "Refresh";
1683
+ readonly newReview: "New review";
1684
+ readonly waitingHint: "Waiting for the evaluation to produce traces. This page auto-refreshes.";
1685
+ readonly noScoresHint: "No scores yet";
1686
+ readonly scoreNameLabel: "Score name";
1687
+ readonly scoreValueLabel: "Value";
1688
+ readonly scoreCommentLabel: "Comment";
1689
+ readonly addScore: "Add";
1690
+ readonly removeScoreAriaLabel: "Remove score";
1691
+ readonly reviewsHeading: "Reviews";
1692
+ readonly reviewDetailsAriaLabel: "Toggle review details";
1693
+ readonly reviewStatus: {
1694
+ readonly pending: "Queued";
1695
+ readonly running: "Running";
1696
+ readonly completed: "Complete";
1697
+ readonly failed: "Failed";
1698
+ };
1699
+ };
1700
+ readonly judgeDialog: {
1701
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1702
+ readonly dialogName: "llm-judge";
1703
+ readonly criteriaLabel: "Criteria";
1704
+ readonly scoreNameLabel: "Score name";
1705
+ readonly maxConcurrencyLabel: "Max concurrency";
1706
+ readonly selectorAriaLabel: "LLM Model Selector";
1707
+ readonly cancel: "Cancel";
1708
+ readonly submit: "Evaluate";
1709
+ };
1710
+ readonly llmPickerDialog: {
1711
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1712
+ readonly dialogName: "evaluate-llm-picker";
1713
+ readonly searchPlaceholder: "Search providers...";
1714
+ /** Title of the follow-up model-selection modal (llm-tab's `LLMProviderModal`, no aria-label of its own). */
1715
+ readonly modelDialogTitle: "LLM Selection";
1716
+ };
1717
+ readonly deleteDialog: {
1718
+ /** `aria-label` on the dialog's `DialogContent` — scopes in-dialog locators. */
1719
+ readonly dialogName: "delete-evaluation";
1720
+ readonly cancel: "Cancel";
1721
+ readonly confirm: "Delete";
1722
+ };
1723
+ };
1724
+ /** Status badge text in the runs table (component upper-cases the raw status). */
1725
+ type EvalRunStatus = 'COMPLETED' | 'FAILED' | 'PENDING' | 'IN_PROGRESS';
1726
+ /** Status pill states on a review row inside the detail dialog. */
1727
+ type EvalReviewStatus = keyof typeof EVALS_LABELS.detailDialog.reviewStatus;
1728
+ /**
1729
+ * Check whether the Evals tab is rendered in the Edit Mentor dialog.
1730
+ * Returns false instead of throwing so callers can guard permission-gated
1731
+ * tabs.
1732
+ */
1733
+ declare function isEvaluationTabVisible(page: Page): Promise<boolean>;
1734
+ /**
1735
+ * Switch to the Evals tab. Assumes the Edit Mentor dialog is open. Waits
1736
+ * for the toolbar "Manage benchmarks" button (unique to this pane) before
1737
+ * returning, so callers can rely on the panel being interactive.
1738
+ */
1739
+ declare function switchToEvaluationTab(page: Page): Promise<void>;
1740
+ /** Locator for the benchmark combobox trigger. Its text is the selected benchmark name. */
1741
+ declare function getBenchmarkCombobox(scope: Page | Locator): Locator;
1742
+ /** Locator for the combobox dropdown panel (rendered inline under the trigger, not in a portal). */
1743
+ declare function getBenchmarkComboboxDropdown(scope: Page | Locator): Locator;
1744
+ /** Locator for the toolbar "New Evaluation" button (opens the start dialog). */
1745
+ declare function getNewEvaluationButton(scope: Page | Locator): Locator;
1746
+ /** Locator for the toolbar "Manage benchmarks" button (opens the benchmarks dialog). */
1747
+ declare function getManageBenchmarksButton(scope: Page | Locator): Locator;
1748
+ /** Assert the currently selected benchmark shown on the combobox trigger. */
1749
+ declare function expectSelectedBenchmark(scope: Page | Locator, benchmarkName: string): Promise<void>;
1750
+ /**
1751
+ * Open the benchmark combobox, optionally filter via its search input, and
1752
+ * pick a benchmark by exact name. Waits for the dropdown to close and the
1753
+ * trigger to reflect the selection.
1754
+ */
1755
+ declare function selectBenchmark(scope: Page | Locator, benchmarkName: string, opts?: {
1756
+ search?: boolean;
1757
+ }): Promise<void>;
1758
+ /** Assert the "no benchmarks yet" empty notice is shown in the tab body. */
1759
+ declare function expectNoBenchmarksNotice(scope: Page | Locator): Promise<void>;
1760
+ /**
1761
+ * Locator for an evaluation run's table row, matched by an exact cell so a
1762
+ * run whose name is a substring of another ("smoke" vs "smoke-2") can't
1763
+ * cross-match.
1764
+ */
1765
+ declare function getRunRow(scope: Page | Locator, runName: string): Locator;
1766
+ declare function expectRunInTable(scope: Page | Locator, runName: string): Promise<void>;
1767
+ declare function expectRunNotInTable(scope: Page | Locator, runName: string): Promise<void>;
1768
+ /** Assert the status badge on a run's row (badge text is upper-cased by the UI). */
1769
+ declare function expectRunStatus(scope: Page | Locator, runName: string, status: EvalRunStatus): Promise<void>;
1770
+ /** Assert the empty-state row shown when the selected benchmark has no runs for this agent. */
1771
+ declare function expectRunsTableEmpty(scope: Page | Locator, benchmarkName: string): Promise<void>;
1772
+ /**
1773
+ * Open the three-dots actions menu on a run's row. The trigger carries
1774
+ * `aria-label="Actions for <runName>"`, so it can't collide with other rows.
1775
+ * Returns the menu locator (Radix portals it outside the table — page scope).
1776
+ */
1777
+ declare function openRunActionsMenu(scope: Page | Locator, runName: string): Promise<Locator>;
1778
+ /**
1779
+ * Row action: "View results" — opens the evaluation detail dialog.
1780
+ * Only enabled once the run is COMPLETED. Returns the scoped detail dialog.
1781
+ */
1782
+ declare function openRunResults(scope: Page | Locator, runName: string): Promise<Locator>;
1783
+ /**
1784
+ * Row action: "New review" — opens the LLM-judge dialog for the run.
1785
+ * Only enabled once the run is COMPLETED. Returns the scoped judge dialog.
1786
+ */
1787
+ declare function openNewReviewForRun(scope: Page | Locator, runName: string): Promise<Locator>;
1788
+ /**
1789
+ * Row action: "Check status" — triggers a fresh status fetch and waits for
1790
+ * the outcome toast. Returns which toast appeared. The menu stays open by
1791
+ * design (the item prevents default), so we close it with Escape.
1792
+ */
1793
+ declare function checkRunStatus(scope: Page | Locator, runName: string): Promise<'pending' | 'completed' | 'failed'>;
1794
+ /**
1795
+ * Row action: "Export CSV" — waits for the browser download and returns its
1796
+ * suggested filename (`<benchmark>_<run>_results.csv`).
1797
+ */
1798
+ declare function exportRunCsv(scope: Page | Locator, runName: string): Promise<string>;
1799
+ /** Locator for the "New Evaluation" dialog. Scoped by aria-label — its title text collides with the toolbar button that opens it. */
1800
+ declare function getStartEvaluationDialog(scope: Page | Locator): Locator;
1801
+ /** Open the start dialog via the toolbar button and wait for it to be interactive. */
1802
+ declare function openStartEvaluationDialog(scope: Page | Locator): Promise<Locator>;
1803
+ /**
1804
+ * End-to-end: open the "New Evaluation" dialog, optionally name the run,
1805
+ * submit, and wait for the dialog to close. When `name` is omitted the
1806
+ * backend auto-generates one.
1807
+ */
1808
+ declare function startEvaluation(scope: Page | Locator, opts?: {
1809
+ name?: string;
1810
+ }): Promise<void>;
1811
+ /** Cancel out of the start dialog and wait for it to close. */
1812
+ declare function cancelStartEvaluation(scope: Page | Locator): Promise<void>;
1813
+ /** Locator for the "Delete Evaluation" confirm dialog. */
1814
+ declare function getDeleteEvaluationDialog(scope: Page | Locator): Locator;
1815
+ /**
1816
+ * Delete a run from its row actions menu and confirm in the follow-up
1817
+ * dialog. The confirm button ("Delete") shares its name with the menu item
1818
+ * that opened the dialog, so the confirm click MUST stay dialog-scoped.
1819
+ */
1820
+ declare function deleteEvaluation(scope: Page | Locator, runName: string): Promise<void>;
1821
+ /** Open the delete confirm from the row menu, then cancel out of it. */
1822
+ declare function cancelDeleteEvaluation(scope: Page | Locator, runName: string): Promise<void>;
1823
+ /**
1824
+ * Locator for the LLM-judge dialog. Scoped by aria-label — its title AND its
1825
+ * submit button both read "Evaluate", and it can be stacked on top of the
1826
+ * evaluation-detail dialog.
1827
+ */
1828
+ declare function getLlmJudgeDialog(scope: Page | Locator): Locator;
1829
+ /** Locator for the judge dialog's LLM provider-picker dialog (stacked above it). */
1830
+ declare function getLlmPickerDialog(scope: Page | Locator): Locator;
1831
+ /**
1832
+ * Inside the judge dialog: pick the judging LLM. Opens the provider picker,
1833
+ * optionally filters, clicks the provider card, then picks the model in the
1834
+ * follow-up "LLM Selection" modal (llm-tab's `LLMProviderModal`; matched by
1835
+ * title text since it has no aria-label). Both pickers close on selection.
1836
+ */
1837
+ declare function selectJudgeLlm(scope: Page | Locator, providerName: string, modelName: string): Promise<void>;
1838
+ /**
1839
+ * Fill and submit the LLM-judge dialog (assumes it is already open — see
1840
+ * `openNewReviewForRun` / `openNewReviewFromDetail`). Waits for the dialog
1841
+ * to close on success.
1842
+ */
1843
+ declare function submitLlmJudge(scope: Page | Locator, opts: {
1844
+ criteria: string;
1845
+ scoreName: string;
1846
+ provider: string;
1847
+ model: string;
1848
+ maxConcurrency?: number;
1849
+ }): Promise<void>;
1850
+ /** Cancel out of the judge dialog and wait for it to close. */
1851
+ declare function cancelLlmJudge(scope: Page | Locator): Promise<void>;
1852
+ /** Locator for the evaluation-detail dialog. Its title is the run name (dynamic), hence the aria-label hook. */
1853
+ declare function getEvaluationDetailDialog(scope: Page | Locator): Locator;
1854
+ /** Click the detail dialog's refresh icon button (aria-label "Refresh"). */
1855
+ declare function refreshEvaluationDetail(scope: Page | Locator): Promise<void>;
1856
+ /** Open the LLM-judge dialog from the detail dialog's "New review" CTA. Returns the judge dialog. */
1857
+ declare function openNewReviewFromDetail(scope: Page | Locator): Promise<Locator>;
1858
+ /** Assert the detail dialog is still waiting for traces (auto-refreshing hint). */
1859
+ declare function expectDetailWaitingForTraces(scope: Page | Locator): Promise<void>;
1860
+ /**
1861
+ * Locator for a trace's expand/collapse row inside the detail dialog,
1862
+ * matched by (part of) its question text.
1863
+ */
1864
+ declare function getTraceRow(scope: Page | Locator, questionText: string): Locator;
1865
+ /** Expand a trace by its question text so its outputs and scores are visible. */
1866
+ declare function expandTrace(scope: Page | Locator, questionText: string): Promise<void>;
1867
+ /**
1868
+ * Add a manual score to the currently expanded trace. `value` must be
1869
+ * between 0 and 1 (the UI rejects anything else with an error toast).
1870
+ */
1871
+ declare function addManualScore(scope: Page | Locator, opts: {
1872
+ name: string;
1873
+ value: number;
1874
+ comment?: string;
1875
+ }): Promise<void>;
1876
+ /** Assert a score chip with the given name is visible on the expanded trace. */
1877
+ declare function expectTraceScore(scope: Page | Locator, scoreName: string): Promise<void>;
1878
+ /**
1879
+ * Remove a score chip from the expanded trace. The chip's trash button
1880
+ * carries `aria-label="Remove score"`; we scope through the chip matched by
1881
+ * score name so multiple chips can't cross-match.
1882
+ */
1883
+ declare function removeTraceScore(scope: Page | Locator, scoreName: string): Promise<void>;
1884
+ /**
1885
+ * Locator for a review row's expand toggle in the detail dialog's Reviews
1886
+ * list. All toggles share the "Toggle review details" aria-label, so the
1887
+ * row is disambiguated by the score name it displays.
1888
+ */
1889
+ declare function getReviewRow(scope: Page | Locator, scoreName: string): Locator;
1890
+ /** Assert a review with the given score name appears in the Reviews list. */
1891
+ declare function expectReviewInList(scope: Page | Locator, scoreName: string): Promise<void>;
1892
+ /** Assert a review row's status pill (Queued / Running / Complete / Failed). */
1893
+ declare function expectReviewStatus(scope: Page | Locator, scoreName: string, status: EvalReviewStatus): Promise<void>;
1894
+ /** Expand a review row to show its criteria and produced scores. */
1895
+ declare function expandReview(scope: Page | Locator, scoreName: string): Promise<void>;
1896
+ /** Close the detail dialog via Escape and wait for it to be gone. */
1897
+ declare function closeEvaluationDetailDialog(scope: Page | Locator): Promise<void>;
1898
+ /** Locator for the "Manage benchmarks" dialog. Scoped by aria-label — its title collides with the toolbar button that opens it. */
1899
+ declare function getManageBenchmarksDialog(scope: Page | Locator): Locator;
1900
+ /** Open the Manage benchmarks dialog from the toolbar and wait for its table UI. Returns the scoped dialog. */
1901
+ declare function openManageBenchmarksDialog(scope: Page | Locator): Promise<Locator>;
1902
+ /** Type into the benchmarks search input (aria-label "Search benchmarks") inside the manage dialog. */
1903
+ declare function searchBenchmarks(scope: Page | Locator, query: string): Promise<void>;
1904
+ /** Assert a benchmark appears in the manage dialog's table. */
1905
+ declare function expectBenchmarkListed(scope: Page | Locator, benchmarkName: string): Promise<void>;
1906
+ /** Locator for the "New Benchmark" dialog. Scoped by aria-label — its title collides with the button that opens it. */
1907
+ declare function getCreateBenchmarkDialog(scope: Page | Locator): Locator;
1908
+ /**
1909
+ * Create a benchmark from inside the manage dialog: open "New Benchmark",
1910
+ * fill the form, submit, and wait for both the dialog to close and the new
1911
+ * row to appear.
1912
+ */
1913
+ declare function createBenchmark(scope: Page | Locator, opts: {
1914
+ name: string;
1915
+ description?: string;
1916
+ }): Promise<void>;
1917
+ /** Locator for a benchmark's items dialog (Q&A list). Its title is the benchmark name (dynamic), hence the aria-label hook. */
1918
+ declare function getBenchmarkItemsDialog(scope: Page | Locator): Locator;
1919
+ /**
1920
+ * Open a benchmark's Q&A items dialog from its row's eye button
1921
+ * (`aria-label="View items in <name>"`). Returns the scoped items dialog.
1922
+ */
1923
+ declare function openBenchmarkItems(scope: Page | Locator, benchmarkName: string): Promise<Locator>;
1924
+ /** Assert a Q&A item (matched by its question text) is listed in the items dialog. */
1925
+ declare function expectQaItemListed(scope: Page | Locator, questionText: string): Promise<void>;
1926
+ /** Locator for the "Add Q&A" dialog (Manual / CSV Upload sub-tabs). */
1927
+ declare function getAddItemsDialog(scope: Page | Locator): Locator;
1928
+ /** Open the "Add Q&A" dialog from the items dialog. Returns the scoped add dialog. */
1929
+ declare function openAddItemsDialog(scope: Page | Locator): Promise<Locator>;
1930
+ /**
1931
+ * Switch to a sub-tab INSIDE the Add Q&A dialog. The tab query must stay
1932
+ * dialog-scoped: the edit-mentor modal behind it has its own `role="tab"`
1933
+ * strip, and an unscoped `getByRole('tab')` can cross-match. Returns the
1934
+ * active tabpanel so callers interact only with that sub-tab's controls
1935
+ * (each panel has its own footer with its own Cancel/submit buttons).
1936
+ */
1937
+ declare function switchToAddItemsSubTab(scope: Page | Locator, subTab: 'manual' | 'csv'): Promise<Locator>;
1938
+ /**
1939
+ * Add Q&A pairs via the Manual sub-tab. Fills one row per pair (clicking
1940
+ * "Add row" as needed), submits, and waits for the dialog to close. Row
1941
+ * inputs are matched by label WITHIN each row container so the Question /
1942
+ * Answer labels of sibling rows can't collide.
1943
+ */
1944
+ declare function addQaPairsManually(scope: Page | Locator, pairs: Array<{
1945
+ question: string;
1946
+ answer?: string;
1947
+ }>): Promise<void>;
1948
+ /**
1949
+ * Upload Q&A pairs via the CSV Upload sub-tab. `csvPath` is a path on the
1950
+ * test machine; the file needs `input` (required) and `expected_output`
1951
+ * (optional) columns. Waits for the dialog to close on success.
1952
+ */
1953
+ declare function uploadQaCsv(scope: Page | Locator, csvPath: string): Promise<void>;
1954
+ /** Locator for the Q&A delete-confirm dialog. */
1955
+ declare function getDeleteQaItemDialog(scope: Page | Locator): Locator;
1956
+ /**
1957
+ * Delete a Q&A item by its question text: click the row's trash button
1958
+ * (`aria-label="Delete Q&A"`) and confirm. The confirm "Delete" button must
1959
+ * stay scoped to the confirm dialog — the items dialog's rows keep their
1960
+ * own delete buttons mounted behind it.
1961
+ */
1962
+ declare function deleteQaItem(scope: Page | Locator, questionText: string): Promise<void>;
1963
+ /** Close the benchmark items dialog via Escape and wait for it to be gone. */
1964
+ declare function closeBenchmarkItemsDialog(scope: Page | Locator): Promise<void>;
1965
+ /** Close the Manage benchmarks dialog via Escape and wait for it to be gone. */
1966
+ declare function closeManageBenchmarksDialog(scope: Page | Locator): Promise<void>;
1967
+
1572
1968
  /**
1573
1969
  * LTI tab helpers — Playwright bindings for the `AgentLtiTab` component from
1574
1970
  * `@iblai/web-containers`.
@@ -1920,5 +2316,5 @@ declare function generateProjectConfig(platform: string, deviceName: string, dep
1920
2316
  */
1921
2317
  declare function createPlaywrightConfig(options: CreatePlaywrightConfigOptions): PlaywrightTestConfig;
1922
2318
 
1923
- export { AuthFlowBuilder, CHAT_PRIVACY_LABELS, CustomReporter, LTI_LABELS, LTI_TEST_IDS, MailsacClient, PRIVACY_LABELS, SCREENSHARE_LABELS, TASKS_LABELS, VOICE_LABELS, addMemory, archiveFirstMemory, archiveMemoryByContent, billingAutoRechargeSection, billingCreditsSection, billingPlanSection, buildReportUrl, canChatWithEmbedMentor, cancelDeleteInstance, cancelDeleteSkill, cancelDisconnectInstance, cancelEnableChatPrivacyMidSession, cancelKeyDelete, cancelNewInstanceDialog, checkAdminStatus, clearDateRangeFilter, clearInstanceSearch, clickBackHome, clickBillingAddCredits, clickBillingManageBilling, clickBillingManageUsage, clickBillingUpgrade, clickChatPrivacyToggle, clickDownloadAgain, clickManualDownloadLink, closeCreditBalanceDropdown, closeKeyDetail, closeWithEsc, confirmEnableChatPrivacyMidSession, confirmKeyDelete, connectToInstance, copyEndpoint, createAuthSetup, createEnvConfig, createInstance, createKey, createLink, createPlaywrightConfig, createSkill, createTool, creditBalancePanel, creditBalancePlanBadge, creditBalanceTrigger, deleteFirstMemory, deleteInstance, deleteKey, deleteMemoryByContent, deleteSkill, deleteTask, disableSkill, disconnectInstance, editAgentPrompt, editInstance, editLink, editSkill, editTool, enableSkill, expectAllEndpointsVisible, expectBillingAutoRechargeSection, expectBillingCreditsSection, expectBillingPlanSection, expectBillingTabForCurrentPlan, expectBillingTabForFreePlan, expectBillingTabForPremiumPlan, expectBillingTabForTrialPlan, expectCallConfigVisible, expectCallConfigVoiceTriggerShows, expectChatPrivacyConfirmDialogOpen, expectChatPrivacyLocked, expectChatPrivacySource, expectChatPrivacyState, expectChatPrivacyToggleVisible, expectCompletedTasks, expectCreditBalanceForCurrentPlan, expectCreditBalancePanelForFreePlan, expectCreditBalancePanelForPremiumPlan, expectCreditBalancePanelForTrialPlan, expectCreditBalanceVisibilityForTenant, expectEndpointUrl, expectEntitySelected, expectFailedTasks, expectKeyDeleteError, expectKeyInList, expectKeyNotInList, expectKeysEmpty, expectLinkInList, expectLinkNotInList, expectLinkTargetUri, expectLinksEmpty, expectLogDetailsStatus, expectLogsForTask, expectLtiHeader, expectMentorVoiceTriggerShows, expectNoAccessibilityViolations, expectNoAccessibilityViolationsOnDialogs, expectNoLogsForSelectedTask, expectOutputFilterEnabled, expectPrivacyFieldsHidden, expectPrivacyFieldsVisible, expectPrivateModeSelected, expectPrivateModeTabReady, expectScheduleStartTimeInPastError, expectScreenShareDisabledHint, expectSttSelectDisabled, expectTaskInList, expectTaskNotInList, expectTaskStatus, expectTasksEmpty, expectTenantChatPrivacyEnabled, expectTenantChatPrivacyVisible, expectToolInList, expectToolNotInList, expectToolsEmpty, expectTotalTasks, expectTtsSelectDisabled, expectVoiceProviderSelected, expectVoiceVisible, fillLinkName, fillToolForm, filterByAction, filterByActionAndVerify, filterByActor, filterByActorAndVerify, filterByDateRange, generateBrowserSetupProjects, generateProjectConfig, getAuditLogRowCount, getAvailableActors, getBillingAutoRechargeStatus, getBillingPlanLabel, getBrowserKey, getCallConfigForm, getChatPrivacyConfirmDialog, getChatPrivacyToggle, getCreateKeyButton, getCreateLinkButton, getCreateToolButton, getCreditBalancePlanLabel, getCreditBalanceRemaining, getCurrentModel, getCurrentTenantShowPaywall, getEndpoint, getEndpointCopyButton, getEndpointUrl, getEntityChip, getInstanceHealthLabel, getInstanceRowCount, getInstanceStatusLabel, getKeyActionsTrigger, getKeyCreateModal, getKeyCreateNameInput, getKeyDeleteModal, getKeyDetailModal, getKeyDetailNameInput, getKeyPublicJwkField, getKeyPublicKeyField, getKeyRow, getKeysEmptyState, getKeysSection, getLinkCopyTargetUriButton, getLinkEditButton, getLinkModal, getLinkNameInput, getLinkRow, getLinksEmptyState, getLinksSection, getLtiSubTab, getMemoryCount, getMentorIdFromUrl, getOutputFilterSwitch, getPaginationInfo, getPrivateModeCard, getScheduleTaskButton, getSearchInput, getSkillRowCount, getTaskRow, getTenantChatPrivacyRow, getTenantChatPrivacySwitch, getToolEditButton, getToolKeySelect, getToolModal, getToolRow, getToolsEmptyState, getToolsSection, getVoiceProviderCard, getVoiceRow, goToFirstPage, goToLastPage, goToNextPage, goToPage, goToPreviousPage, inviteUserTest, isFirefox, isJSON, isLtiTabVisible, isMemoryTabVisible, isOnFirstPage, isOnLastPage, isPrivacyTabVisible, isPrivateModeTabVisible, isSandboxTabVisible, isScreenShareTabVisible, isSkillEnabled, isTasksTabVisible, isVoiceTabVisible, logger, loginWithEmailAndPassword, loginWithMicrosoftIdp, navigateToAccountComponent, navigateToAuditLog, navigateToAuditLogAndWaitForData, navigateToDataReports, navigateToReportDownload, openAddMemoryDialog, openAgentPromptEditModal, openCallConfigVoicePicker, openCreateKeyModal, openCreateLinkModal, openCreateToolModal, openCreditBalanceDropdown, openEditInstanceDialog, openEditLinkModal, openEditSkillDialog, openEditToolModal, openFirstLogDetails, openInstanceActionsMenu, openKeyActionsMenu, openKeyDelete, openKeyDetail, openLLMProviderPicker, openMentorVoicePicker, openNewInstanceDialog, openNewSkillDialog, openScheduleTaskDialog, openScreenSharePromptEditor, openSkillActionsMenu, parseReportUrlParams, previewCallConfigVoiceInline, previewMentorVoiceInline, previewVoice, pushConfiguration, readEndpointUrl, readKeyPublicJwk, readKeyPublicKey, reliableClick, reliableFill, renameKey, resetCallConfig, retry, runConnectedInstanceChecks, runInstanceChecks, safeWaitForURL, saveCallConfig, saveScreenSharePrompts, saveVoiceSettings, scheduleTask, searchInstances, searchTasks, searchVoices, selectCallMode, selectDateFromCalendar, selectLLMModel, selectLlmProvider, selectPrivacyAction, selectPrivateMode, selectSttProvider, selectTaskInList, selectToolKeySetMode, selectToolSigningKey, 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, submitLinkModal, submitToolModal, switchToLtiSubTab, switchToLtiTab, switchToMemoryTab, switchToPrivacyTab, switchToPrivateModeTab, switchToSandboxTab, switchToScreenShareTab, switchToSkillsTab, switchToTasksTab, switchToVoiceSubTab, switchToVoiceTab, teardownSandboxInstance, test, toggleAutoPush, toggleMemorySwitch, toggleSkill, toolFields, 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 };
1924
- export type { AgentPromptField, AuthFlowType, AuthSetupConfig, BillingAutoRechargeStatus, CallMode, ChatPrivacyMode, ChatPrivacySource, ChatPrivacyToggleState, CreatePlaywrightConfigOptions, CreditBalancePlan, EnvConfig, LlmProvider, LtiEndpoint, LtiKeySetMode, LtiSubTab, LtiToolFormData, PlatformConfig, PrivacyAction, PrivacyEntity, ReportDownloadOptions, SafeWaitForURLOptions, ScreenSharePromptField, SignUpCredentials, SkillFormValues, StepFn, SttProvider, TaskRepeat, TaskStatus, TtsProvider, VoiceProvider };
2319
+ export { AuthFlowBuilder, CHAT_PRIVACY_LABELS, CustomReporter, EVALS_LABELS, LTI_LABELS, LTI_TEST_IDS, MailsacClient, PRIVACY_LABELS, SCREENSHARE_LABELS, TASKS_LABELS, VOICE_LABELS, addManualScore, addMemory, addQaPairsManually, archiveFirstMemory, archiveMemoryByContent, billingAutoRechargeSection, billingCreditsSection, billingPlanSection, buildReportUrl, canChatWithEmbedMentor, cancelDeleteEvaluation, cancelDeleteInstance, cancelDeleteSkill, cancelDisconnectInstance, cancelEnableChatPrivacyMidSession, cancelKeyDelete, cancelLlmJudge, cancelNewInstanceDialog, cancelStartEvaluation, checkAdminStatus, checkRunStatus, clearDateRangeFilter, clearInstanceSearch, clickBackHome, clickBillingAddCredits, clickBillingManageBilling, clickBillingManageUsage, clickBillingUpgrade, clickChatPrivacyToggle, clickDownloadAgain, clickManualDownloadLink, closeBenchmarkItemsDialog, closeCreditBalanceDropdown, closeEvaluationDetailDialog, closeKeyDetail, closeManageBenchmarksDialog, closeWithEsc, confirmEnableChatPrivacyMidSession, confirmKeyDelete, connectToInstance, copyEndpoint, createAuthSetup, createBenchmark, createEnvConfig, createInstance, createKey, createLink, createPlaywrightConfig, createSkill, createTool, creditBalancePanel, creditBalancePlanBadge, creditBalanceTrigger, deleteEvaluation, deleteFirstMemory, deleteInstance, deleteKey, deleteMemoryByContent, deleteQaItem, deleteSkill, deleteTask, disableSkill, disconnectInstance, editAgentPrompt, editInstance, editLink, editSkill, editTool, enableSkill, expandReview, expandTrace, expectAllEndpointsVisible, expectBenchmarkListed, expectBillingAutoRechargeSection, expectBillingCreditsSection, expectBillingPlanSection, expectBillingTabForCurrentPlan, expectBillingTabForFreePlan, expectBillingTabForPremiumPlan, expectBillingTabForTrialPlan, expectCallConfigVisible, expectCallConfigVoiceTriggerShows, expectChatPrivacyConfirmDialogOpen, expectChatPrivacyLocked, expectChatPrivacySource, expectChatPrivacyState, expectChatPrivacyToggleVisible, expectCompletedTasks, expectCreditBalanceForCurrentPlan, expectCreditBalancePanelForFreePlan, expectCreditBalancePanelForPremiumPlan, expectCreditBalancePanelForTrialPlan, expectCreditBalanceVisibilityForTenant, expectDetailWaitingForTraces, expectEndpointUrl, expectEntitySelected, expectFailedTasks, expectKeyDeleteError, expectKeyInList, expectKeyNotInList, expectKeysEmpty, expectLinkInList, expectLinkNotInList, expectLinkTargetUri, expectLinksEmpty, expectLogDetailsStatus, expectLogsForTask, expectLtiHeader, expectMentorVoiceTriggerShows, expectNoAccessibilityViolations, expectNoAccessibilityViolationsOnDialogs, expectNoBenchmarksNotice, expectNoLogsForSelectedTask, expectOutputFilterEnabled, expectPrivacyFieldsHidden, expectPrivacyFieldsVisible, expectPrivateModeSelected, expectPrivateModeTabReady, expectQaItemListed, expectReviewInList, expectReviewStatus, expectRunInTable, expectRunNotInTable, expectRunStatus, expectRunsTableEmpty, expectScheduleStartTimeInPastError, expectScreenShareDisabledHint, expectSelectedBenchmark, expectSttSelectDisabled, expectTaskInList, expectTaskNotInList, expectTaskStatus, expectTasksEmpty, expectTenantChatPrivacyEnabled, expectTenantChatPrivacyVisible, expectToolInList, expectToolNotInList, expectToolsEmpty, expectTotalTasks, expectTraceScore, expectTtsSelectDisabled, expectVoiceProviderSelected, expectVoiceVisible, exportRunCsv, fillLinkName, fillToolForm, filterByAction, filterByActionAndVerify, filterByActor, filterByActorAndVerify, filterByDateRange, generateBrowserSetupProjects, generateProjectConfig, getAddItemsDialog, getAuditLogRowCount, getAvailableActors, getBenchmarkCombobox, getBenchmarkComboboxDropdown, getBenchmarkItemsDialog, getBillingAutoRechargeStatus, getBillingPlanLabel, getBrowserKey, getCallConfigForm, getChatPrivacyConfirmDialog, getChatPrivacyToggle, getCreateBenchmarkDialog, getCreateKeyButton, getCreateLinkButton, getCreateToolButton, getCreditBalancePlanLabel, getCreditBalanceRemaining, getCurrentModel, getCurrentTenantShowPaywall, getDeleteEvaluationDialog, getDeleteQaItemDialog, getEndpoint, getEndpointCopyButton, getEndpointUrl, getEntityChip, getEvaluationDetailDialog, getInstanceHealthLabel, getInstanceRowCount, getInstanceStatusLabel, getKeyActionsTrigger, getKeyCreateModal, getKeyCreateNameInput, getKeyDeleteModal, getKeyDetailModal, getKeyDetailNameInput, getKeyPublicJwkField, getKeyPublicKeyField, getKeyRow, getKeysEmptyState, getKeysSection, getLinkCopyTargetUriButton, getLinkEditButton, getLinkModal, getLinkNameInput, getLinkRow, getLinksEmptyState, getLinksSection, getLlmJudgeDialog, getLlmPickerDialog, getLtiSubTab, getManageBenchmarksButton, getManageBenchmarksDialog, getMemoryCount, getMentorIdFromUrl, getNewEvaluationButton, getOutputFilterSwitch, getPaginationInfo, getPrivateModeCard, getReviewRow, getRunRow, getScheduleTaskButton, getSearchInput, getSkillRowCount, getStartEvaluationDialog, getTaskRow, getTenantChatPrivacyRow, getTenantChatPrivacySwitch, getToolEditButton, getToolKeySelect, getToolModal, getToolRow, getToolsEmptyState, getToolsSection, getTraceRow, getVoiceProviderCard, getVoiceRow, goToFirstPage, goToLastPage, goToNextPage, goToPage, goToPreviousPage, inviteUserTest, isEvaluationTabVisible, isFirefox, isJSON, isLtiTabVisible, isMemoryTabVisible, isOnFirstPage, isOnLastPage, isPrivacyTabVisible, isPrivateModeTabVisible, isSandboxTabVisible, isScreenShareTabVisible, isSkillEnabled, isTasksTabVisible, isVoiceTabVisible, logger, loginWithEmailAndPassword, loginWithMicrosoftIdp, navigateToAccountComponent, navigateToAuditLog, navigateToAuditLogAndWaitForData, navigateToDataReports, navigateToReportDownload, openAddItemsDialog, openAddMemoryDialog, openAgentPromptEditModal, openBenchmarkItems, openCallConfigVoicePicker, openCreateKeyModal, openCreateLinkModal, openCreateToolModal, openCreditBalanceDropdown, openEditInstanceDialog, openEditLinkModal, openEditSkillDialog, openEditToolModal, openFirstLogDetails, openInstanceActionsMenu, openKeyActionsMenu, openKeyDelete, openKeyDetail, openLLMProviderPicker, openManageBenchmarksDialog, openMentorVoicePicker, openNewInstanceDialog, openNewReviewForRun, openNewReviewFromDetail, openNewSkillDialog, openRunActionsMenu, openRunResults, openScheduleTaskDialog, openScreenSharePromptEditor, openSkillActionsMenu, openStartEvaluationDialog, parseReportUrlParams, previewCallConfigVoiceInline, previewMentorVoiceInline, previewVoice, pushConfiguration, readEndpointUrl, readKeyPublicJwk, readKeyPublicKey, refreshEvaluationDetail, reliableClick, reliableFill, removeTraceScore, renameKey, resetCallConfig, retry, runConnectedInstanceChecks, runInstanceChecks, safeWaitForURL, saveCallConfig, saveScreenSharePrompts, saveVoiceSettings, scheduleTask, searchBenchmarks, searchInstances, searchTasks, searchVoices, selectBenchmark, selectCallMode, selectDateFromCalendar, selectJudgeLlm, selectLLMModel, selectLlmProvider, selectPrivacyAction, selectPrivateMode, selectSttProvider, selectTaskInList, selectToolKeySetMode, selectToolSigningKey, 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, startEvaluation, submitLinkModal, submitLlmJudge, submitToolModal, switchToAddItemsSubTab, switchToEvaluationTab, switchToLtiSubTab, switchToLtiTab, switchToMemoryTab, switchToPrivacyTab, switchToPrivateModeTab, switchToSandboxTab, switchToScreenShareTab, switchToSkillsTab, switchToTasksTab, switchToVoiceSubTab, switchToVoiceTab, teardownSandboxInstance, test, toggleAutoPush, toggleMemorySwitch, toggleSkill, toolFields, uploadQaCsv, 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 };
2320
+ export type { AgentPromptField, AuthFlowType, AuthSetupConfig, BillingAutoRechargeStatus, CallMode, ChatPrivacyMode, ChatPrivacySource, ChatPrivacyToggleState, CreatePlaywrightConfigOptions, CreditBalancePlan, EnvConfig, EvalReviewStatus, EvalRunStatus, LlmProvider, LtiEndpoint, LtiKeySetMode, LtiSubTab, LtiToolFormData, PlatformConfig, PrivacyAction, PrivacyEntity, ReportDownloadOptions, SafeWaitForURLOptions, ScreenSharePromptField, SignUpCredentials, SkillFormValues, StepFn, SttProvider, TaskRepeat, TaskStatus, TtsProvider, VoiceProvider };