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
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ControlPanel = void 0;
|
|
7
|
+
const Logger_1 = require("../utils/Logger");
|
|
8
|
+
const PageClosedException_1 = require("../exceptions/PageClosedException");
|
|
9
|
+
const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
|
|
10
|
+
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
/**
|
|
13
|
+
* Manages the integration and interaction with the Donobu control panel in web pages.
|
|
14
|
+
* Note that if the `isControlPanelEnabled` flow metadata state is false, all
|
|
15
|
+
* operations are no-ops.
|
|
16
|
+
*
|
|
17
|
+
* The control panel provides a user interface for interacting with automated flows in the browser,
|
|
18
|
+
* allowing users to pause, resume, and stop flows. The panel includes visual indicators of the
|
|
19
|
+
* current flow state and can be dragged around the page.
|
|
20
|
+
*
|
|
21
|
+
* Key features:
|
|
22
|
+
* - Reading and processing user interactions from the control panel
|
|
23
|
+
* - Showing/hiding the control panel
|
|
24
|
+
* - Updating the control panel state and headline text
|
|
25
|
+
* - Maintaining consistency across multiple pages in the same browser context
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Check for user requests from the control panel
|
|
29
|
+
* const nextState = await controlPanel.popControlPanelNextDesiredState(browserContext);
|
|
30
|
+
* if (nextState === 'PAUSED') {
|
|
31
|
+
* // Handle pause request
|
|
32
|
+
* }
|
|
33
|
+
*
|
|
34
|
+
* // Update the control panel with current flow state
|
|
35
|
+
* await controlPanel.update(browserContext, "Executing action...");
|
|
36
|
+
*/
|
|
37
|
+
class ControlPanel {
|
|
38
|
+
constructor(flowMetadata) {
|
|
39
|
+
this.flowMetadata = flowMetadata;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Reads and clears the next desired state from the control panel UI.
|
|
43
|
+
*
|
|
44
|
+
* This method checks if the user has requested a state change (pause, resume, or end)
|
|
45
|
+
* via the control panel interface. When called, it retrieves any pending state change
|
|
46
|
+
* request and clears the request from the UI to prevent duplicate processing.
|
|
47
|
+
*
|
|
48
|
+
* Note that the control panel does not have unlimited control over the flow -
|
|
49
|
+
* it is restricted to signaling intents to pause, resume, or end a flow.
|
|
50
|
+
*
|
|
51
|
+
* @param page - The Playwright Page object where the control panel exists
|
|
52
|
+
* @returns The requested state (as a State enum value) or null if no state change was requested
|
|
53
|
+
* @throws {PageClosedException} If the page has been closed while attempting to read the state
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* const nextState = await controlPanel.popNextDesiredState(page);
|
|
57
|
+
* if (nextState === 'PAUSED') {
|
|
58
|
+
* // Handle the pause request
|
|
59
|
+
* flowMetadata.state = State.PAUSED;
|
|
60
|
+
* }
|
|
61
|
+
*/
|
|
62
|
+
async popNextDesiredState(page) {
|
|
63
|
+
if (!this.flowMetadata.isControlPanelEnabled) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
await this.ensureControlPanelIsSetup(page.context());
|
|
67
|
+
try {
|
|
68
|
+
const desiredNextState = await page.evaluate(() => {
|
|
69
|
+
const tmpState = window.__donobu.nextState;
|
|
70
|
+
window.__donobu.nextState = null;
|
|
71
|
+
return tmpState;
|
|
72
|
+
});
|
|
73
|
+
if (desiredNextState) {
|
|
74
|
+
return desiredNextState;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
79
|
+
throw new PageClosedException_1.PageClosedException();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Hides the control panel on all pages in the browser context.
|
|
89
|
+
*
|
|
90
|
+
* Sets the control panel's display style to 'none', making it invisible and
|
|
91
|
+
* preventing it from intercepting mouse events. This is useful when taking
|
|
92
|
+
* screenshots or when the control panel might interfere with user interactions.
|
|
93
|
+
*
|
|
94
|
+
* This method operates on all pages in the same browser context, ensuring
|
|
95
|
+
* consistent behavior if multiple tabs/windows are open.
|
|
96
|
+
*
|
|
97
|
+
* @param browserContext - The browser context to update pages on
|
|
98
|
+
* @returns A Promise that resolves when the operation is complete
|
|
99
|
+
*/
|
|
100
|
+
async hide(browserContext) {
|
|
101
|
+
if (!this.flowMetadata.isControlPanelEnabled) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
for (const page of browserContext.pages()) {
|
|
105
|
+
try {
|
|
106
|
+
await page.evaluate((panelId) => {
|
|
107
|
+
const element = document.querySelector(`#${panelId}`);
|
|
108
|
+
if (element) {
|
|
109
|
+
element.style.display = 'none';
|
|
110
|
+
}
|
|
111
|
+
}, ControlPanel.DONOBU_CONTROL_PANEL_ELEMENT_ID);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
115
|
+
// Pass; this can happen normally.
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
Logger_1.appLogger.error(`Unexpected exception while attempting to show control panel`, error);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Shows the control panel on all pages in the browser context.
|
|
125
|
+
*
|
|
126
|
+
* Resets the control panel's display property to make it visible again.
|
|
127
|
+
* This method will only show the control panel if it is enabled in the
|
|
128
|
+
* flow metadata.
|
|
129
|
+
*
|
|
130
|
+
* Like other control panel methods, this operates on all pages in the
|
|
131
|
+
* same browser context for consistency.
|
|
132
|
+
*
|
|
133
|
+
* @param browserContext - The browser context to update pages on
|
|
134
|
+
* @returns A Promise that resolves when the operation is complete
|
|
135
|
+
*/
|
|
136
|
+
async show(browserContext) {
|
|
137
|
+
if (!this.flowMetadata.isControlPanelEnabled) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
await this.ensureControlPanelIsSetup(browserContext);
|
|
141
|
+
for (const page of browserContext.pages()) {
|
|
142
|
+
try {
|
|
143
|
+
await page.evaluate((panelId) => {
|
|
144
|
+
const element = document.querySelector(`#${panelId}`);
|
|
145
|
+
if (element) {
|
|
146
|
+
element.style.display = 'block';
|
|
147
|
+
}
|
|
148
|
+
}, ControlPanel.DONOBU_CONTROL_PANEL_ELEMENT_ID);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
152
|
+
// Pass; this can happen normally.
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
Logger_1.appLogger.error(`Unexpected exception while attempting to show control panel`, error);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Updates the control panel state and optionally its headline text.
|
|
162
|
+
*
|
|
163
|
+
* This method updates the control panel on all pages in the browser context with
|
|
164
|
+
* the current flow state.
|
|
165
|
+
*
|
|
166
|
+
* If a headline string is provided, it also updates the title text displayed
|
|
167
|
+
* in the control panel. If the headline string is not provided, a default message
|
|
168
|
+
* appropriate for the current flow state is displayed.
|
|
169
|
+
*
|
|
170
|
+
* This method helps keep the UI in sync with the actual flow state and provides
|
|
171
|
+
* visual feedback to the user about the current operation.
|
|
172
|
+
*
|
|
173
|
+
* @param browserContext - The browser context to update pages on
|
|
174
|
+
* @param headline - Optional text to display in the panel headline
|
|
175
|
+
* @returns A Promise that resolves when the update operation is complete
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* // Update all control panels with the current state and a custom message
|
|
179
|
+
* await controlPanel.update(
|
|
180
|
+
* browserContext,
|
|
181
|
+
* flowMetadata,
|
|
182
|
+
* "Entering login credentials..."
|
|
183
|
+
* );
|
|
184
|
+
*/
|
|
185
|
+
async update(browserContext, headline) {
|
|
186
|
+
if (!this.flowMetadata.isControlPanelEnabled) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
await this.ensureControlPanelIsSetup(browserContext);
|
|
190
|
+
if (!headline) {
|
|
191
|
+
headline = this.getDefaultControlPanelMessage();
|
|
192
|
+
}
|
|
193
|
+
const controlPanelQuerySelector = `#${ControlPanel.DONOBU_CONTROL_PANEL_ELEMENT_ID}`;
|
|
194
|
+
const controlPanelHeadlineQuerySelector = `#${ControlPanel.DONOBU_CONTROL_PANEL_HEADLINE_ELEMENT_ID}`;
|
|
195
|
+
for (const page of browserContext.pages()) {
|
|
196
|
+
try {
|
|
197
|
+
const controlPanel = page.locator(controlPanelQuerySelector).first();
|
|
198
|
+
if ((await controlPanel.count()) === 1) {
|
|
199
|
+
await controlPanel.evaluate((element, state) => {
|
|
200
|
+
element.donobuFlowState = state;
|
|
201
|
+
}, this.flowMetadata.state.toString());
|
|
202
|
+
if (headline) {
|
|
203
|
+
const controlPanelHeadline = page
|
|
204
|
+
.locator(controlPanelHeadlineQuerySelector)
|
|
205
|
+
.first();
|
|
206
|
+
if ((await controlPanelHeadline.count()) === 1) {
|
|
207
|
+
const escapedMessage = headline.replace(/[\\"']/g, '\\$&');
|
|
208
|
+
await controlPanelHeadline.evaluate((element, message) => {
|
|
209
|
+
element.textContent = message;
|
|
210
|
+
}, escapedMessage);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
217
|
+
// Pass; this can happen normally.
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
Logger_1.appLogger.error(`Unexpected exception while attempting to update control panel`, error);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
getDefaultControlPanelMessage() {
|
|
226
|
+
// If the strings here are updated, you should also update the corresponding
|
|
227
|
+
// strings in 'control-panel.js', otherwise, you will get flickering in the
|
|
228
|
+
// control panel.
|
|
229
|
+
switch (this.flowMetadata.state) {
|
|
230
|
+
case 'UNSTARTED':
|
|
231
|
+
return 'Unstarted';
|
|
232
|
+
case 'INITIALIZING':
|
|
233
|
+
return 'Initializing';
|
|
234
|
+
case 'QUERYING_LLM_FOR_NEXT_ACTION':
|
|
235
|
+
return 'Thinking...';
|
|
236
|
+
case 'WAITING_ON_USER_FOR_NEXT_ACTION':
|
|
237
|
+
return 'Waiting on user...';
|
|
238
|
+
case 'PAUSED':
|
|
239
|
+
return 'Paused';
|
|
240
|
+
case 'RESUMING':
|
|
241
|
+
return 'Resuming';
|
|
242
|
+
default:
|
|
243
|
+
return '';
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
isHeadless() {
|
|
247
|
+
return this.flowMetadata.browser.using.type === 'device' &&
|
|
248
|
+
this.flowMetadata.browser.using.headless
|
|
249
|
+
? true
|
|
250
|
+
: false;
|
|
251
|
+
}
|
|
252
|
+
async ensureControlPanelIsSetup(browserContext) {
|
|
253
|
+
if (this.isHeadless()) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
for (const page of browserContext.pages()) {
|
|
257
|
+
try {
|
|
258
|
+
await page.evaluate(ControlPanel.INIT_SCRIPT);
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
if (!PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
262
|
+
Logger_1.appLogger.error(`Error when evaluating ControlPanel.INIT_SCRIPT on page: ${page.url()})`, error);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
exports.ControlPanel = ControlPanel;
|
|
269
|
+
ControlPanel.INIT_SCRIPT = MiscUtils_1.MiscUtils.getResourceFileAsString(path_1.default.join('control-panel.js'));
|
|
270
|
+
/**
|
|
271
|
+
* The HTML element ID for the control panel container.
|
|
272
|
+
*
|
|
273
|
+
* WARNING: If this ID is changed, you must also update the corresponding ID in
|
|
274
|
+
* {@link ControlPanel.INIT_SCRIPT}.
|
|
275
|
+
*/
|
|
276
|
+
ControlPanel.DONOBU_CONTROL_PANEL_ELEMENT_ID = 'donobu-control-panel';
|
|
277
|
+
/**
|
|
278
|
+
* The HTML element ID for the headline text element in the control panel.
|
|
279
|
+
* This element displays the current state or action message.
|
|
280
|
+
*/
|
|
281
|
+
ControlPanel.DONOBU_CONTROL_PANEL_HEADLINE_ELEMENT_ID = 'donobu-control-panel-title-text';
|
|
282
|
+
//# sourceMappingURL=ControlPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlPanel.js","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ import { FocusedPage } from '../models/FocusedPage';
|
|
|
11
11
|
import { DonobuFlowsManager } from './DonobuFlowsManager';
|
|
12
12
|
import { BrowserFramework } from '../models/BrowserFramework';
|
|
13
13
|
import { JSONSchema7 } from 'json-schema';
|
|
14
|
+
import { PageInspector } from './PageInspector';
|
|
15
|
+
import { ControlPanel } from './ControlPanel';
|
|
14
16
|
/**
|
|
15
17
|
* Return an object conforming to the given JSON-schema. The object will be
|
|
16
18
|
* generated considering the given page and tool call history.
|
|
@@ -34,6 +36,8 @@ export declare class DonobuFlow {
|
|
|
34
36
|
readonly metadata: FlowMetadata;
|
|
35
37
|
private static readonly MAIN_MESSAGE_ELEMENT_LIST_MARKER;
|
|
36
38
|
static readonly MAX_IMAGE_BYTES_FOR_LLM: number;
|
|
39
|
+
readonly pageInspector: PageInspector;
|
|
40
|
+
readonly controlPanel: ControlPanel;
|
|
37
41
|
constructor(flowsManager: DonobuFlowsManager, browserFramework: BrowserFramework, persistence: FlowsPersistence, gptClient: GptClient | null, toolManager: ToolManager, interactionVisualizer: InteractionVisualizer, proposedToolCalls: ProposedToolCall<any>[], invokedToolCalls: ToolCall[], gptMessages: GptMessage[], focusedPage: FocusedPage, metadata: FlowMetadata);
|
|
38
42
|
run(): Promise<void>;
|
|
39
43
|
/**
|
|
@@ -64,7 +68,6 @@ export declare class DonobuFlow {
|
|
|
64
68
|
private static invokeFlowFinishedCallback;
|
|
65
69
|
private onDialog;
|
|
66
70
|
private maybeUpdateControlPanel;
|
|
67
|
-
private getControlPanelMessage;
|
|
68
71
|
/**
|
|
69
72
|
* Transitions the flow to its next state. After this method completes, the
|
|
70
73
|
* `this.metadata.state` will have been updated and the
|
|
@@ -72,7 +75,6 @@ export declare class DonobuFlow {
|
|
|
72
75
|
*/
|
|
73
76
|
private transitionState;
|
|
74
77
|
private maybeForceEnableControlPanel;
|
|
75
|
-
private isHeadless;
|
|
76
78
|
private setupInitScriptsAndBindings;
|
|
77
79
|
/**
|
|
78
80
|
* Returns an object formatted according to the following priority:
|
|
@@ -113,15 +115,6 @@ export declare class DonobuFlow {
|
|
|
113
115
|
*/
|
|
114
116
|
private queryGptWithRetry;
|
|
115
117
|
private updateTokenCounts;
|
|
116
|
-
/**
|
|
117
|
-
* Takes a screenshot of the webpage as if it were scrolled down by one viewport.
|
|
118
|
-
* If the page cannot be scrolled down (already at the bottom), returns undefined.
|
|
119
|
-
* After taking the screenshot, it reverts to the original scroll position.
|
|
120
|
-
*
|
|
121
|
-
* @param page The Playwright Page to take a screenshot of
|
|
122
|
-
* @returns An image buffer of the scrolled down view, or undefined if scrolling isn't possible
|
|
123
|
-
*/
|
|
124
|
-
private getScrolledDownScreenShot;
|
|
125
118
|
private static createSystemMessageForOverallObjective;
|
|
126
119
|
private static createMainUserMessage;
|
|
127
120
|
/**
|
|
@@ -129,6 +122,5 @@ export declare class DonobuFlow {
|
|
|
129
122
|
* from old messages.
|
|
130
123
|
*/
|
|
131
124
|
private static createOptimizedHistoryForGptCall;
|
|
132
|
-
private setupDonobuControlPanel;
|
|
133
125
|
}
|
|
134
126
|
//# sourceMappingURL=DonobuFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuFlow.d.ts","sourceRoot":"","sources":["../../../src/managers/DonobuFlow.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,IAAI,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,UAAU,EAEV,uBAAuB,EAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"DonobuFlow.d.ts","sourceRoot":"","sources":["../../../src/managers/DonobuFlow.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,IAAI,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAc,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,UAAU,EAEV,uBAAuB,EAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAmBpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,WAAW,EACvB,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,eAAe,EAAE,QAAQ,EAAE,EAC3B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAkElC;AAED;;;GAGG;AACH,qBAAa,UAAU;aAQH,YAAY,EAAE,kBAAkB;aAChC,gBAAgB,EAAE,gBAAgB;aAClC,WAAW,EAAE,gBAAgB;aAC7B,SAAS,EAAE,SAAS,GAAG,IAAI;aAC3B,WAAW,EAAE,WAAW;aACxB,qBAAqB,EAAE,qBAAqB;aAC5C,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE;aAC1C,gBAAgB,EAAE,QAAQ,EAAE;aAC5B,WAAW,EAAE,UAAU,EAAE;aACzB,WAAW,EAAE,WAAW;aACxB,QAAQ,EAAE,YAAY;IAjBxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAC8C;IACtG,gBAAuB,uBAAuB,SAAmB;IACjE,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,YAAY,EAAE,YAAY,CAAC;gBAGzB,YAAY,EAAE,kBAAkB,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,qBAAqB,EAC5C,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAC1C,gBAAgB,EAAE,QAAQ,EAAE,EAC5B,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY;IAM3B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDjC;;;;OAIG;YACW,mBAAmB;IAkBjC;;;OAGG;YACW,sBAAsB;IAepC;;;OAGG;YACW,qBAAqB;IASnC;;OAEG;YACW,UAAU;IAsBxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;YA+B3B,QAAQ;YA0OR,uBAAuB;IAMrC;;;;OAIG;YACW,eAAe;YAgHf,4BAA4B;YAc5B,2BAA2B;IAsBzC;;;;;;;;;;;;;OAaG;YACW,gBAAgB;IAqC9B;;OAEG;YACW,WAAW;IAIzB;;;OAGG;YACW,cAAc;YA0Bd,eAAe;YAmDf,0BAA0B;YAqB1B,6BAA6B;YAY7B,QAAQ;YAgBR,UAAU;YAIV,QAAQ;YAQR,SAAS;IAQvB,OAAO,CAAC,yCAAyC;YAkFnC,4BAA4B;IA8I1C;;;OAGG;YACW,iBAAiB;IAoC/B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,MAAM,CAAC,sCAAsC;IA4CrD,OAAO,CAAC,MAAM,CAAC,qBAAqB;IA0BpC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;CAmFhD"}
|