donobu 2.15.1 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/control-panel.js +30 -3
- package/dist/assets/generated/parameter-schemas.json +33 -33
- package/dist/assets/generated/version +1 -1
- package/dist/assets/interactive-elements-tracker.js +351 -0
- package/dist/assets/page-interactions-tracker.js +39 -20
- package/dist/assets/smart-selector-generator.js +38 -15
- package/dist/bindings/FocusPage.d.ts +6 -1
- package/dist/bindings/FocusPage.d.ts.map +1 -1
- package/dist/bindings/FocusPage.js +2 -8
- package/dist/bindings/FocusPage.js.map +1 -1
- package/dist/bindings/PageInteractionTracker.d.ts +9 -2
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +27 -3
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/bindings/ProposeToolCall.d.ts +20 -0
- package/dist/bindings/ProposeToolCall.d.ts.map +1 -0
- package/dist/bindings/ProposeToolCall.js +29 -0
- package/dist/bindings/ProposeToolCall.js.map +1 -0
- package/dist/bindings/ToggleDonobuAnnotations.d.ts +5 -2
- package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
- package/dist/bindings/ToggleDonobuAnnotations.js +12 -6
- package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
- package/dist/esm/assets/control-panel.js +30 -3
- package/dist/esm/assets/generated/parameter-schemas.json +33 -33
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/assets/interactive-elements-tracker.js +351 -0
- package/dist/esm/assets/page-interactions-tracker.js +39 -20
- package/dist/esm/assets/smart-selector-generator.js +38 -15
- package/dist/esm/bindings/FocusPage.d.ts +6 -1
- package/dist/esm/bindings/FocusPage.d.ts.map +1 -1
- package/dist/esm/bindings/FocusPage.js +2 -8
- package/dist/esm/bindings/FocusPage.js.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.d.ts +9 -2
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +27 -3
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/bindings/ProposeToolCall.d.ts +20 -0
- package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -0
- package/dist/esm/bindings/ProposeToolCall.js +29 -0
- package/dist/esm/bindings/ProposeToolCall.js.map +1 -0
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +5 -2
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.js +12 -6
- package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +2 -1
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/ControlPanel.d.ts +124 -0
- package/dist/esm/managers/ControlPanel.d.ts.map +1 -0
- package/dist/esm/managers/ControlPanel.js +282 -0
- package/dist/esm/managers/ControlPanel.js.map +1 -0
- package/dist/esm/managers/DonobuFlow.d.ts +4 -12
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +35 -140
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts +9 -15
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.js +44 -44
- package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts +242 -0
- package/dist/esm/managers/PageInspector.d.ts.map +1 -0
- package/dist/esm/managers/PageInspector.js +783 -0
- package/dist/esm/managers/PageInspector.js.map +1 -0
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +3 -5
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/InteractableElement.d.ts +2 -2
- package/dist/esm/models/ToolCallContext.d.ts +6 -2
- package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
- package/dist/esm/playwrightTestExtensions.d.ts +5 -0
- package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/esm/playwrightTestExtensions.js +52 -13
- package/dist/esm/playwrightTestExtensions.js.map +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -1
- package/dist/esm/tools/AssertPageTextTool.js +1 -1
- package/dist/esm/tools/AssertPageTextTool.js.map +1 -1
- package/dist/esm/tools/AssertTool.d.ts.map +1 -1
- package/dist/esm/tools/AssertTool.js +4 -4
- package/dist/esm/tools/AssertTool.js.map +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.js +8 -7
- package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -1
- package/dist/esm/tools/ClickTool.js +1 -1
- package/dist/esm/tools/ClickTool.js.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/esm/tools/GoToWebpageTool.js +1 -1
- package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
- package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
- package/dist/esm/tools/HoverOverElementTool.js +1 -1
- package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -1
- package/dist/esm/tools/PressKeyTool.js +1 -1
- package/dist/esm/tools/PressKeyTool.js.map +1 -1
- package/dist/esm/tools/ReloadPageTool.js +1 -1
- package/dist/esm/tools/ReloadPageTool.js.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts +16 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.js +169 -16
- package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +8 -0
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js +15 -2
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/esm/tools/ScrollPageTool.d.ts +1 -1
- package/dist/esm/tools/ScrollPageTool.d.ts.map +1 -1
- package/dist/esm/tools/ScrollPageTool.js +47 -4
- package/dist/esm/tools/ScrollPageTool.js.map +1 -1
- package/dist/esm/tools/WaitTool.js +1 -1
- package/dist/esm/tools/WaitTool.js.map +1 -1
- package/dist/esm/utils/MiscUtils.d.ts +2 -2
- package/dist/esm/utils/MiscUtils.js +2 -2
- package/dist/esm/utils/PlaywrightUtils.d.ts +26 -127
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +133 -935
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +2 -1
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/ControlPanel.d.ts +124 -0
- package/dist/managers/ControlPanel.d.ts.map +1 -0
- package/dist/managers/ControlPanel.js +282 -0
- package/dist/managers/ControlPanel.js.map +1 -0
- package/dist/managers/DonobuFlow.d.ts +4 -12
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +35 -140
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/InteractionVisualizer.d.ts +9 -15
- package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.js +44 -44
- package/dist/managers/InteractionVisualizer.js.map +1 -1
- package/dist/managers/PageInspector.d.ts +242 -0
- package/dist/managers/PageInspector.d.ts.map +1 -0
- package/dist/managers/PageInspector.js +783 -0
- package/dist/managers/PageInspector.js.map +1 -0
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +3 -5
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/InteractableElement.d.ts +2 -2
- package/dist/models/ToolCallContext.d.ts +6 -2
- package/dist/models/ToolCallContext.d.ts.map +1 -1
- package/dist/playwrightTestExtensions.d.ts +5 -0
- package/dist/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/playwrightTestExtensions.js +52 -13
- package/dist/playwrightTestExtensions.js.map +1 -1
- package/dist/tools/AnalyzePageTextTool.js +1 -1
- package/dist/tools/AnalyzePageTextTool.js.map +1 -1
- package/dist/tools/AssertPageTextTool.js +1 -1
- package/dist/tools/AssertPageTextTool.js.map +1 -1
- package/dist/tools/AssertTool.d.ts.map +1 -1
- package/dist/tools/AssertTool.js +4 -4
- package/dist/tools/AssertTool.js.map +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.js +8 -7
- package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -1
- package/dist/tools/ClickTool.js +1 -1
- package/dist/tools/ClickTool.js.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/tools/CustomToolRunnerTool.js +1 -1
- package/dist/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/tools/GoForwardOrBackTool.js +1 -1
- package/dist/tools/GoForwardOrBackTool.js.map +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/tools/GoToWebpageTool.js +1 -1
- package/dist/tools/GoToWebpageTool.js.map +1 -1
- package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
- package/dist/tools/HoverOverElementTool.js +1 -1
- package/dist/tools/HoverOverElementTool.js.map +1 -1
- package/dist/tools/NavigateWithinStreetView.js +1 -1
- package/dist/tools/NavigateWithinStreetView.js.map +1 -1
- package/dist/tools/PressKeyTool.js +1 -1
- package/dist/tools/PressKeyTool.js.map +1 -1
- package/dist/tools/ReloadPageTool.js +1 -1
- package/dist/tools/ReloadPageTool.js.map +1 -1
- package/dist/tools/ReplayableInteraction.d.ts +16 -1
- package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/tools/ReplayableInteraction.js +169 -16
- package/dist/tools/ReplayableInteraction.js.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts +8 -0
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.js +15 -2
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/tools/ScrollPageTool.d.ts +1 -1
- package/dist/tools/ScrollPageTool.d.ts.map +1 -1
- package/dist/tools/ScrollPageTool.js +47 -4
- package/dist/tools/ScrollPageTool.js.map +1 -1
- package/dist/tools/WaitTool.js +1 -1
- package/dist/tools/WaitTool.js.map +1 -1
- package/dist/utils/MiscUtils.d.ts +2 -2
- package/dist/utils/MiscUtils.js +2 -2
- package/dist/utils/PlaywrightUtils.d.ts +26 -127
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +133 -935
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/clickable-elements-tracker.js +0 -63
- package/dist/assets/zaru-eyes.html +0 -141
- package/dist/esm/assets/clickable-elements-tracker.js +0 -63
- package/dist/esm/assets/zaru-eyes.html +0 -141
- package/dist/esm/managers/TemplateInterpolator.d.ts +0 -19
- package/dist/esm/managers/TemplateInterpolator.d.ts.map +0 -1
- package/dist/esm/managers/TemplateInterpolator.js +0 -86
- package/dist/esm/managers/TemplateInterpolator.js.map +0 -1
- package/dist/esm/managers/ToolTipper.d.ts +0 -32
- package/dist/esm/managers/ToolTipper.d.ts.map +0 -1
- package/dist/esm/managers/ToolTipper.js +0 -229
- package/dist/esm/managers/ToolTipper.js.map +0 -1
- package/dist/esm/models/BrowserState.d.ts +0 -26
- package/dist/esm/models/BrowserState.d.ts.map +0 -1
- package/dist/esm/models/BrowserState.js +0 -3
- package/dist/esm/models/BrowserState.js.map +0 -1
- package/dist/esm/models/ResolverContext.d.ts +0 -7
- package/dist/esm/models/ResolverContext.d.ts.map +0 -1
- package/dist/esm/models/ResolverContext.js +0 -3
- package/dist/esm/models/ResolverContext.js.map +0 -1
- package/dist/esm/models/ToolTemplateDataSource.d.ts +0 -36
- package/dist/esm/models/ToolTemplateDataSource.d.ts.map +0 -1
- package/dist/esm/models/ToolTemplateDataSource.js +0 -3
- package/dist/esm/models/ToolTemplateDataSource.js.map +0 -1
- package/dist/esm/test.d.ts +0 -78
- package/dist/esm/test.d.ts.map +0 -1
- package/dist/esm/test.js +0 -423
- package/dist/esm/test.js.map +0 -1
- package/dist/esm/utils/TemplateInterpolator.d.ts +0 -29
- package/dist/esm/utils/TemplateInterpolator.d.ts.map +0 -1
- package/dist/esm/utils/TemplateInterpolator.js +0 -206
- package/dist/esm/utils/TemplateInterpolator.js.map +0 -1
- package/dist/managers/TemplateInterpolator.d.ts +0 -19
- package/dist/managers/TemplateInterpolator.d.ts.map +0 -1
- package/dist/managers/TemplateInterpolator.js +0 -86
- package/dist/managers/TemplateInterpolator.js.map +0 -1
- package/dist/managers/ToolTipper.d.ts +0 -32
- package/dist/managers/ToolTipper.d.ts.map +0 -1
- package/dist/managers/ToolTipper.js +0 -229
- package/dist/managers/ToolTipper.js.map +0 -1
- package/dist/models/BrowserState.d.ts +0 -26
- package/dist/models/BrowserState.d.ts.map +0 -1
- package/dist/models/BrowserState.js +0 -3
- package/dist/models/BrowserState.js.map +0 -1
- package/dist/models/ResolverContext.d.ts +0 -7
- package/dist/models/ResolverContext.d.ts.map +0 -1
- package/dist/models/ResolverContext.js +0 -3
- package/dist/models/ResolverContext.js.map +0 -1
- package/dist/models/ToolTemplateDataSource.d.ts +0 -36
- package/dist/models/ToolTemplateDataSource.d.ts.map +0 -1
- package/dist/models/ToolTemplateDataSource.js +0 -3
- package/dist/models/ToolTemplateDataSource.js.map +0 -1
- package/dist/test.d.ts +0 -78
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -423
- package/dist/test.js.map +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/utils/TemplateInterpolator.d.ts +0 -29
- package/dist/utils/TemplateInterpolator.d.ts.map +0 -1
- package/dist/utils/TemplateInterpolator.js +0 -211
- package/dist/utils/TemplateInterpolator.js.map +0 -1
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.PageInteractionTracker = void 0;
|
|
4
7
|
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
@@ -6,12 +9,31 @@ const ClickTool_1 = require("../tools/ClickTool");
|
|
|
6
9
|
const PressKeyTool_1 = require("../tools/PressKeyTool");
|
|
7
10
|
const Logger_1 = require("../utils/Logger");
|
|
8
11
|
const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
9
13
|
/**
|
|
10
14
|
* Tracks direct user actions that have occurred in the web browser.
|
|
11
15
|
* This differs from normal Donobu flows which use GPT to analyze pages and propose actions.
|
|
12
16
|
* This tracker records direct user actions for reliable replay and GPT visibility.
|
|
13
17
|
*/
|
|
14
18
|
class PageInteractionTracker {
|
|
19
|
+
static async register(donobuFlow, browserContext) {
|
|
20
|
+
const instance = new PageInteractionTracker(donobuFlow);
|
|
21
|
+
await browserContext.addInitScript(PlaywrightUtils_1.PlaywrightUtils.SMART_SELECTOR_GENERATOR_INIT_SCRIPT);
|
|
22
|
+
browserContext.on('page', async (page) => {
|
|
23
|
+
page.on('framenavigated', async (frame) => {
|
|
24
|
+
try {
|
|
25
|
+
await frame.evaluate(PageInteractionTracker.INIT_SCRIPT);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
if (!PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
29
|
+
Logger_1.appLogger.error('Error when evaluating PageInteractionTracker.INIT_SCRIPT', error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
|
|
35
|
+
return instance;
|
|
36
|
+
}
|
|
15
37
|
constructor(donobuFlow) {
|
|
16
38
|
this.donobuFlow = donobuFlow;
|
|
17
39
|
}
|
|
@@ -35,7 +57,7 @@ class PageInteractionTracker {
|
|
|
35
57
|
const postCallImageId = await this.donobuFlow.persistence.saveScreenShot(this.donobuFlow.metadata.id, postCallImage);
|
|
36
58
|
const frameSelector = source.frame.url() === source.page.url()
|
|
37
59
|
? null
|
|
38
|
-
: await PlaywrightUtils_1.PlaywrightUtils.
|
|
60
|
+
: (await PlaywrightUtils_1.PlaywrightUtils.generateSelectors(await source.frame.frameElement()))[0];
|
|
39
61
|
const elementSelectors = event.selectors;
|
|
40
62
|
const externalToolCall = await this.createToolCall(event, elementSelectors, frameSelector, postCallImageId, source.page.url(), timestamp);
|
|
41
63
|
if (externalToolCall) {
|
|
@@ -79,7 +101,7 @@ class PageInteractionTracker {
|
|
|
79
101
|
},
|
|
80
102
|
outcome: {
|
|
81
103
|
isSuccessful: true,
|
|
82
|
-
forLlm:
|
|
104
|
+
forLlm: `Pressed the '${event.key}' key at the element.`,
|
|
83
105
|
metadata: selectorForReplay,
|
|
84
106
|
},
|
|
85
107
|
postCallImageId: postCallImageId,
|
|
@@ -94,5 +116,7 @@ class PageInteractionTracker {
|
|
|
94
116
|
}
|
|
95
117
|
}
|
|
96
118
|
exports.PageInteractionTracker = PageInteractionTracker;
|
|
97
|
-
PageInteractionTracker.
|
|
119
|
+
PageInteractionTracker.INIT_SCRIPT = MiscUtils_1.MiscUtils.getResourceFileAsString(path_1.default.join('page-interactions-tracker.js'));
|
|
120
|
+
// If this name is updated, the init script must also be updated.
|
|
121
|
+
PageInteractionTracker.NAME = '__donobuTrackInteraction';
|
|
98
122
|
//# sourceMappingURL=PageInteractionTracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageInteractionTracker.js","sourceRoot":"","sources":["../../../src/bindings/PageInteractionTracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PageInteractionTracker.js","sourceRoot":"","sources":["../../../src/bindings/PageInteractionTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BrowserContext, Page, Frame } from 'playwright';
|
|
2
|
+
import { NamedBindingCallback } from './NamedBindingCallback';
|
|
3
|
+
import { DonobuFlow } from '../managers/DonobuFlow';
|
|
4
|
+
/**
|
|
5
|
+
* A binding to allow arbitrary tool calls to be proposed from the frontend.
|
|
6
|
+
* This is for debugging purposes only.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ProposeToolCall implements NamedBindingCallback {
|
|
9
|
+
private readonly donobuFlow;
|
|
10
|
+
static readonly NAME = "__donobuProposeToolCall";
|
|
11
|
+
static register(donobuFlow: DonobuFlow, browserContext: BrowserContext): Promise<ProposeToolCall>;
|
|
12
|
+
constructor(donobuFlow: DonobuFlow);
|
|
13
|
+
name(): string;
|
|
14
|
+
call(_source: {
|
|
15
|
+
context: BrowserContext;
|
|
16
|
+
page: Page;
|
|
17
|
+
frame: Frame;
|
|
18
|
+
}, ...args: any[]): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ProposeToolCall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProposeToolCall.d.ts","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,oBAAoB;IAevC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAd9C,gBAAuB,IAAI,6BAA6B;WAEpC,QAAQ,CAC1B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,eAAe,CAAC;gBASS,UAAU,EAAE,UAAU;IAEnD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,OAAO,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC9D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProposeToolCall = void 0;
|
|
4
|
+
const Logger_1 = require("../utils/Logger");
|
|
5
|
+
/**
|
|
6
|
+
* A binding to allow arbitrary tool calls to be proposed from the frontend.
|
|
7
|
+
* This is for debugging purposes only.
|
|
8
|
+
*/
|
|
9
|
+
class ProposeToolCall {
|
|
10
|
+
static async register(donobuFlow, browserContext) {
|
|
11
|
+
const instance = new ProposeToolCall(donobuFlow);
|
|
12
|
+
await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
|
|
13
|
+
return instance;
|
|
14
|
+
}
|
|
15
|
+
constructor(donobuFlow) {
|
|
16
|
+
this.donobuFlow = donobuFlow;
|
|
17
|
+
}
|
|
18
|
+
name() {
|
|
19
|
+
return ProposeToolCall.NAME;
|
|
20
|
+
}
|
|
21
|
+
async call(_source, ...args) {
|
|
22
|
+
Logger_1.appLogger.debug(`Proposed tool call from frontend: ${JSON.stringify(args[0])}`);
|
|
23
|
+
const proposedToolCall = args[0];
|
|
24
|
+
this.donobuFlow.proposedToolCalls.push(proposedToolCall);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ProposeToolCall = ProposeToolCall;
|
|
28
|
+
ProposeToolCall.NAME = '__donobuProposeToolCall';
|
|
29
|
+
//# sourceMappingURL=ProposeToolCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProposeToolCall.js","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":";;;AAGA,4CAA4C;AAG5C;;;GAGG;AACH,MAAa,eAAe;IAGnB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,UAAsB,EACtB,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,IAAI;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAA8D,EAC9D,GAAG,IAAW;QAEd,kBAAS,CAAC,KAAK,CACb,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAC/D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAA0B,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;;AA9BH,0CA+BC;AA9BwB,oBAAI,GAAG,yBAAyB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PageInspector } from '../managers/PageInspector';
|
|
1
2
|
import { NamedBindingCallback } from './NamedBindingCallback';
|
|
2
3
|
import { BrowserContext, Page, Frame } from 'playwright';
|
|
3
4
|
/**
|
|
@@ -6,8 +7,10 @@ import { BrowserContext, Page, Frame } from 'playwright';
|
|
|
6
7
|
* as understood by the Donobu engine.
|
|
7
8
|
*/
|
|
8
9
|
export declare class ToggleDonobuAnnotations implements NamedBindingCallback {
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
private readonly pageInspector;
|
|
11
|
+
static readonly NAME = "__donobuToggleAnnotations";
|
|
12
|
+
static register(pageInspector: PageInspector, browserContext: BrowserContext): Promise<ToggleDonobuAnnotations>;
|
|
13
|
+
constructor(pageInspector: PageInspector);
|
|
11
14
|
name(): string;
|
|
12
15
|
call(source: {
|
|
13
16
|
context: BrowserContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,oBAAoB;IAe/C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAdjD,gBAAuB,IAAI,+BAA+B;WAEtC,QAAQ,CAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,uBAAuB,CAAC;gBASC,aAAa,EAAE,aAAa;IAEzD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAYjB"}
|
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ToggleDonobuAnnotations = void 0;
|
|
4
|
-
const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
|
|
5
4
|
/**
|
|
6
5
|
* A binding that toggles the annotations on the page executing this callback.
|
|
7
6
|
* This is used for debugging purposes to show the interactable elements on the page
|
|
8
7
|
* as understood by the Donobu engine.
|
|
9
8
|
*/
|
|
10
9
|
class ToggleDonobuAnnotations {
|
|
11
|
-
|
|
10
|
+
static async register(pageInspector, browserContext) {
|
|
11
|
+
const instance = new ToggleDonobuAnnotations(pageInspector);
|
|
12
|
+
await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
|
|
13
|
+
return instance;
|
|
14
|
+
}
|
|
15
|
+
constructor(pageInspector) {
|
|
16
|
+
this.pageInspector = pageInspector;
|
|
17
|
+
}
|
|
12
18
|
name() {
|
|
13
19
|
return ToggleDonobuAnnotations.NAME;
|
|
14
20
|
}
|
|
15
21
|
async call(source, ...args) {
|
|
16
22
|
const isToggled = args[0];
|
|
17
23
|
if (isToggled) {
|
|
18
|
-
await
|
|
19
|
-
await
|
|
24
|
+
await this.pageInspector.attributeInteractableElements(source.page);
|
|
25
|
+
await this.pageInspector.annotateInteractableElements(source.page);
|
|
20
26
|
}
|
|
21
27
|
else {
|
|
22
|
-
await
|
|
28
|
+
await this.pageInspector.removeDonobuAnnotations(source.page);
|
|
23
29
|
}
|
|
24
30
|
return;
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
33
|
exports.ToggleDonobuAnnotations = ToggleDonobuAnnotations;
|
|
28
|
-
ToggleDonobuAnnotations.NAME = '
|
|
34
|
+
ToggleDonobuAnnotations.NAME = '__donobuToggleAnnotations';
|
|
29
35
|
//# sourceMappingURL=ToggleDonobuAnnotations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleDonobuAnnotations.js","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ToggleDonobuAnnotations.js","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,MAAa,uBAAuB;IAG3B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,aAA4B,EAC5B,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,IAAI;QACT,OAAO,uBAAuB,CAAC,IAAI,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAY,CAAC;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;IACT,CAAC;;AAnCH,0DAoCC;AAnCwB,4BAAI,GAAG,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeGenerator.d.ts","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeGenerator.d.ts","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AA4B9D,qBAAa,aAAa;IACxB,8EAA8E;IACjE,yBAAyB,CACpC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,GACjC,OAAO,CAAC,MAAM,CAAC;IA0FlB;;;OAGG;WACW,uCAAuC,CACnD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,MAAM;YAqEK,YAAY;IAY1B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CASnC"}
|
|
@@ -133,7 +133,8 @@ ${resultJson}
|
|
|
133
133
|
return `${rationale}await page.visuallyAssert(${serializedParams});`;
|
|
134
134
|
}
|
|
135
135
|
case ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME: {
|
|
136
|
-
|
|
136
|
+
const url = proposedToolCall.parameters;
|
|
137
|
+
return `${rationale}page = await page.changeTab(${url.tabUrl});`;
|
|
137
138
|
}
|
|
138
139
|
case ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME: {
|
|
139
140
|
return `${rationale}await page.chooseSelectOption(${serializedParams});`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeGenerator.js","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,oEAAiE;AACjE,oDAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"CodeGenerator.js","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BrowserContext, Page } from 'playwright';
|
|
2
|
+
import { FlowMetadata, State } from '../models/FlowMetadata';
|
|
3
|
+
/**
|
|
4
|
+
* Manages the integration and interaction with the Donobu control panel in web pages.
|
|
5
|
+
* Note that if the `isControlPanelEnabled` flow metadata state is false, all
|
|
6
|
+
* operations are no-ops.
|
|
7
|
+
*
|
|
8
|
+
* The control panel provides a user interface for interacting with automated flows in the browser,
|
|
9
|
+
* allowing users to pause, resume, and stop flows. The panel includes visual indicators of the
|
|
10
|
+
* current flow state and can be dragged around the page.
|
|
11
|
+
*
|
|
12
|
+
* Key features:
|
|
13
|
+
* - Reading and processing user interactions from the control panel
|
|
14
|
+
* - Showing/hiding the control panel
|
|
15
|
+
* - Updating the control panel state and headline text
|
|
16
|
+
* - Maintaining consistency across multiple pages in the same browser context
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Check for user requests from the control panel
|
|
20
|
+
* const nextState = await controlPanel.popControlPanelNextDesiredState(browserContext);
|
|
21
|
+
* if (nextState === 'PAUSED') {
|
|
22
|
+
* // Handle pause request
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* // Update the control panel with current flow state
|
|
26
|
+
* await controlPanel.update(browserContext, "Executing action...");
|
|
27
|
+
*/
|
|
28
|
+
export declare class ControlPanel {
|
|
29
|
+
private readonly flowMetadata;
|
|
30
|
+
static readonly INIT_SCRIPT: string;
|
|
31
|
+
/**
|
|
32
|
+
* The HTML element ID for the control panel container.
|
|
33
|
+
*
|
|
34
|
+
* WARNING: If this ID is changed, you must also update the corresponding ID in
|
|
35
|
+
* {@link ControlPanel.INIT_SCRIPT}.
|
|
36
|
+
*/
|
|
37
|
+
static readonly DONOBU_CONTROL_PANEL_ELEMENT_ID = "donobu-control-panel";
|
|
38
|
+
/**
|
|
39
|
+
* The HTML element ID for the headline text element in the control panel.
|
|
40
|
+
* This element displays the current state or action message.
|
|
41
|
+
*/
|
|
42
|
+
static readonly DONOBU_CONTROL_PANEL_HEADLINE_ELEMENT_ID = "donobu-control-panel-title-text";
|
|
43
|
+
constructor(flowMetadata: FlowMetadata);
|
|
44
|
+
/**
|
|
45
|
+
* Reads and clears the next desired state from the control panel UI.
|
|
46
|
+
*
|
|
47
|
+
* This method checks if the user has requested a state change (pause, resume, or end)
|
|
48
|
+
* via the control panel interface. When called, it retrieves any pending state change
|
|
49
|
+
* request and clears the request from the UI to prevent duplicate processing.
|
|
50
|
+
*
|
|
51
|
+
* Note that the control panel does not have unlimited control over the flow -
|
|
52
|
+
* it is restricted to signaling intents to pause, resume, or end a flow.
|
|
53
|
+
*
|
|
54
|
+
* @param page - The Playwright Page object where the control panel exists
|
|
55
|
+
* @returns The requested state (as a State enum value) or null if no state change was requested
|
|
56
|
+
* @throws {PageClosedException} If the page has been closed while attempting to read the state
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* const nextState = await controlPanel.popNextDesiredState(page);
|
|
60
|
+
* if (nextState === 'PAUSED') {
|
|
61
|
+
* // Handle the pause request
|
|
62
|
+
* flowMetadata.state = State.PAUSED;
|
|
63
|
+
* }
|
|
64
|
+
*/
|
|
65
|
+
popNextDesiredState(page: Page): Promise<State | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Hides the control panel on all pages in the browser context.
|
|
68
|
+
*
|
|
69
|
+
* Sets the control panel's display style to 'none', making it invisible and
|
|
70
|
+
* preventing it from intercepting mouse events. This is useful when taking
|
|
71
|
+
* screenshots or when the control panel might interfere with user interactions.
|
|
72
|
+
*
|
|
73
|
+
* This method operates on all pages in the same browser context, ensuring
|
|
74
|
+
* consistent behavior if multiple tabs/windows are open.
|
|
75
|
+
*
|
|
76
|
+
* @param browserContext - The browser context to update pages on
|
|
77
|
+
* @returns A Promise that resolves when the operation is complete
|
|
78
|
+
*/
|
|
79
|
+
hide(browserContext: BrowserContext): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Shows the control panel on all pages in the browser context.
|
|
82
|
+
*
|
|
83
|
+
* Resets the control panel's display property to make it visible again.
|
|
84
|
+
* This method will only show the control panel if it is enabled in the
|
|
85
|
+
* flow metadata.
|
|
86
|
+
*
|
|
87
|
+
* Like other control panel methods, this operates on all pages in the
|
|
88
|
+
* same browser context for consistency.
|
|
89
|
+
*
|
|
90
|
+
* @param browserContext - The browser context to update pages on
|
|
91
|
+
* @returns A Promise that resolves when the operation is complete
|
|
92
|
+
*/
|
|
93
|
+
show(browserContext: BrowserContext): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Updates the control panel state and optionally its headline text.
|
|
96
|
+
*
|
|
97
|
+
* This method updates the control panel on all pages in the browser context with
|
|
98
|
+
* the current flow state.
|
|
99
|
+
*
|
|
100
|
+
* If a headline string is provided, it also updates the title text displayed
|
|
101
|
+
* in the control panel. If the headline string is not provided, a default message
|
|
102
|
+
* appropriate for the current flow state is displayed.
|
|
103
|
+
*
|
|
104
|
+
* This method helps keep the UI in sync with the actual flow state and provides
|
|
105
|
+
* visual feedback to the user about the current operation.
|
|
106
|
+
*
|
|
107
|
+
* @param browserContext - The browser context to update pages on
|
|
108
|
+
* @param headline - Optional text to display in the panel headline
|
|
109
|
+
* @returns A Promise that resolves when the update operation is complete
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* // Update all control panels with the current state and a custom message
|
|
113
|
+
* await controlPanel.update(
|
|
114
|
+
* browserContext,
|
|
115
|
+
* flowMetadata,
|
|
116
|
+
* "Entering login credentials..."
|
|
117
|
+
* );
|
|
118
|
+
*/
|
|
119
|
+
update(browserContext: BrowserContext, headline?: string): Promise<void>;
|
|
120
|
+
private getDefaultControlPanelMessage;
|
|
121
|
+
private isHeadless;
|
|
122
|
+
private ensureControlPanelIsSetup;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=ControlPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAO7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAY;IAqBJ,OAAO,CAAC,QAAQ,CAAC,YAAY;IApBhD,gBAAuB,WAAW,SAEhC;IAEF;;;;;OAKG;IACH,gBAAuB,+BAA+B,0BAC7B;IAEzB;;;OAGG;IACH,gBAAuB,wCAAwC,qCAC3B;gBAEA,YAAY,EAAE,YAAY;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA4BnE;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhE;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CACjB,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAiDhB,OAAO,CAAC,6BAA6B;IAsBrC,OAAO,CAAC,UAAU;YAOJ,yBAAyB;CAoBxC"}
|