donobu 2.15.0 → 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/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/apis/FlowsFilesApi.js +5 -2
- package/dist/apis/FlowsFilesApi.js.map +1 -1
- package/dist/assets/control-panel.js +30 -3
- package/dist/assets/generated/parameter-schemas.json +118 -17
- 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 +29 -5
- 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/clients/AnthropicAwsBedrockGptClient.d.ts +1 -20
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.js +12 -329
- package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/clients/AnthropicGptClient.d.ts +0 -8
- package/dist/clients/AnthropicGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicGptClient.js +8 -22
- package/dist/clients/AnthropicGptClient.js.map +1 -1
- package/dist/clients/GoogleGptClient.d.ts +4 -20
- package/dist/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/clients/GoogleGptClient.js +23 -299
- package/dist/clients/GoogleGptClient.js.map +1 -1
- package/dist/clients/OpenAiGptClient.d.ts +0 -6
- package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/clients/OpenAiGptClient.js +4 -8
- package/dist/clients/OpenAiGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.d.ts +3 -1
- package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/clients/VercelAiGptClient.js +18 -14
- package/dist/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.js +5 -2
- package/dist/esm/apis/FlowsFilesApi.js.map +1 -1
- package/dist/esm/assets/control-panel.js +30 -3
- package/dist/esm/assets/generated/parameter-schemas.json +118 -17
- 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 +29 -5
- 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/clients/AnthropicAwsBedrockGptClient.d.ts +1 -20
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +12 -329
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.d.ts +0 -8
- package/dist/esm/clients/AnthropicGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.js +8 -22
- package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
- package/dist/esm/clients/GoogleGptClient.d.ts +4 -20
- package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/esm/clients/GoogleGptClient.js +23 -299
- package/dist/esm/clients/GoogleGptClient.js.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.d.ts +0 -6
- package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.js +4 -8
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts +3 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.js +18 -14
- package/dist/esm/clients/VercelAiGptClient.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 +9 -13
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +123 -172
- 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 +4 -6
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/GptMessage.d.ts +3 -3
- package/dist/esm/models/GptMessage.d.ts.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/persistence/FlowsPersistence.d.ts +4 -4
- package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js +8 -6
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js +5 -4
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +7 -5
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +2 -3
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSqlite.js +8 -6
- package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +2 -2
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceSupabase.js +5 -3
- package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +2 -2
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceVolatile.js +5 -3
- package/dist/esm/persistence/FlowsPersistenceVolatile.js.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 +56 -17
- 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 +5 -5
- 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.d.ts.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +5 -3
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +4 -4
- 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 +10 -13
- package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
- package/dist/esm/utils/MiscUtils.js +92 -56
- package/dist/esm/utils/MiscUtils.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts +32 -130
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +140 -938
- 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 +9 -13
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +123 -172
- 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 +4 -6
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/GptMessage.d.ts +3 -3
- package/dist/models/GptMessage.d.ts.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/persistence/FlowsPersistence.d.ts +4 -4
- package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceAwsS3.js +8 -6
- package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceFilesystem.js +5 -4
- package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +7 -5
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
- package/dist/persistence/FlowsPersistenceSqlite.d.ts +2 -3
- package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceSqlite.js +8 -6
- package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
- package/dist/persistence/FlowsPersistenceSupabase.d.ts +2 -2
- package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceSupabase.js +5 -3
- package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
- package/dist/persistence/FlowsPersistenceVolatile.d.ts +2 -2
- package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
- package/dist/persistence/FlowsPersistenceVolatile.js +5 -3
- package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
- package/dist/playwrightTestExtensions.d.ts +5 -0
- package/dist/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/playwrightTestExtensions.js +56 -17
- 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 +5 -5
- 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.d.ts.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +5 -3
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +4 -4
- 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 +10 -13
- package/dist/utils/MiscUtils.d.ts.map +1 -1
- package/dist/utils/MiscUtils.js +92 -56
- package/dist/utils/MiscUtils.js.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts +32 -130
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +140 -938
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +4 -2
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollPageTool.js","sourceRoot":"","sources":["../../../src/tools/ScrollPageTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;
|
|
1
|
+
{"version":3,"file":"ScrollPageTool.js","sourceRoot":"","sources":["../../../src/tools/ScrollPageTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ class WaitTool extends Tool_1.Tool {
|
|
|
8
8
|
super(WaitTool.NAME, 'Wait the given number of seconds.', 'WaitToolCoreParameters', 'WaitToolGptParameters');
|
|
9
9
|
}
|
|
10
10
|
async call(context, parameters) {
|
|
11
|
-
await context.page.waitForTimeout(parameters.seconds * 1000);
|
|
11
|
+
await context.page.current.waitForTimeout(parameters.seconds * 1000);
|
|
12
12
|
return ToolCallResult_1.ToolCallResult.successful();
|
|
13
13
|
}
|
|
14
14
|
async callFromGpt(context, parameters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaitTool.js","sourceRoot":"","sources":["../../../src/tools/WaitTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAE9B,6DAA0D;AAa1D,MAAa,QAAS,SAAQ,WAG7B;IAGC;QACE,KAAK,CACH,QAAQ,CAAC,IAAI,EACb,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAkC;QAElC,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WaitTool.js","sourceRoot":"","sources":["../../../src/tools/WaitTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAE9B,6DAA0D;AAa1D,MAAa,QAAS,SAAQ,WAG7B;IAGC;QACE,KAAK,CACH,QAAQ,CAAC,IAAI,EACb,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAkC;QAElC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACtE,OAAO,+BAAc,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,UAAiC;QAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;;AA5BH,4BA6BC;AAzBwB,aAAI,GAAG,MAAM,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { GptMessage } from '../models/GptMessage';
|
|
1
2
|
export declare class MiscUtils {
|
|
2
3
|
private constructor();
|
|
3
4
|
static readonly DONOBU_VERSION: string;
|
|
@@ -14,6 +15,7 @@ export declare class MiscUtils {
|
|
|
14
15
|
* If the BASE_WORKING_DIR environment variable is set, its value is returned.
|
|
15
16
|
*/
|
|
16
17
|
static baseWorkingDirectory(): string;
|
|
18
|
+
static detectImageType(buffer: Uint8Array): 'png' | 'jpeg';
|
|
17
19
|
/**
|
|
18
20
|
* Updates token counts in flow metadata based on GPT response
|
|
19
21
|
*/
|
|
@@ -33,23 +35,14 @@ export declare class MiscUtils {
|
|
|
33
35
|
*/
|
|
34
36
|
static getResourceFileAsBytes(fileName: string): Buffer;
|
|
35
37
|
/**
|
|
36
|
-
*
|
|
38
|
+
* Resizes a PNG or JPEG image until its file size is below a specified maximum size.
|
|
37
39
|
*
|
|
38
|
-
* @param inputImageBytes - The input
|
|
39
|
-
* @returns A Promise that resolves to the resized PNG image as a Buffer.
|
|
40
|
-
* @throws Error if image processing fails
|
|
41
|
-
*/
|
|
42
|
-
static resizePngByHalf(inputImageBytes: Buffer): Promise<Buffer>;
|
|
43
|
-
/**
|
|
44
|
-
* Resizes a PNG image until its file size is below a specified maximum size.
|
|
45
|
-
*
|
|
46
|
-
* @param inputImageBytes - The input PNG image as a Buffer.
|
|
40
|
+
* @param inputImageBytes - The input image as a Buffer.
|
|
47
41
|
* @param maxSizeInBytes - The maximum allowed file size in bytes.
|
|
48
|
-
* @
|
|
49
|
-
* @returns A Promise that resolves to the resized PNG image as a Buffer.
|
|
42
|
+
* @returns A Promise that resolves to the resized image as a Buffer.
|
|
50
43
|
* @throws Error if the image cannot be resized to meet the size requirements or if processing fails.
|
|
51
44
|
*/
|
|
52
|
-
static
|
|
45
|
+
static resizeImageToMaxFileSize(input: Buffer, maxSizeInBytes: number): Promise<Buffer>;
|
|
53
46
|
/**
|
|
54
47
|
* Returns a duration (in milliseconds) that represents a statistically
|
|
55
48
|
* plausible human mouse-click press duration.
|
|
@@ -69,5 +62,9 @@ export declare class MiscUtils {
|
|
|
69
62
|
* @returns A string representing a unique tool call ID.
|
|
70
63
|
*/
|
|
71
64
|
static createAdHocToolCallId(): string;
|
|
65
|
+
/**
|
|
66
|
+
* Merges adjacent user messages (some LLMs like Gemini's or Anthropic's require this).
|
|
67
|
+
*/
|
|
68
|
+
static mergeAdjacentUserMessages(messages: GptMessage[]): GptMessage[];
|
|
72
69
|
}
|
|
73
70
|
//# sourceMappingURL=MiscUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/MiscUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MiscUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/MiscUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAe,MAAM,sBAAsB,CAAC;AAE/D,qBAAa,SAAS;IACpB,OAAO;IAEP,gBAAuB,cAAc,SAEnC;IAEF;;;;;;;;;;;OAWG;WACW,oBAAoB,IAAI,MAAM;WAkC9B,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM;IA8BjE;;OAEG;WACW,iBAAiB,CAC7B,WAAW,EAAE;QACX,gBAAgB,EAAE,MAAM,CAAC;QACzB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,EACD,YAAY,EAAE;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;KAC9B,GACA,IAAI;IAKP;;OAEG;WACW,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK/D;;OAEG;WACW,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAS9D;;;;;;;OAOG;WACiB,wBAAwB,CAC1C,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAyDlB;;;OAGG;WACW,kCAAkC,IAAI,MAAM;IAkB1D;;;OAGG;WACW,qCAAqC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAoDxE;;;;;;;OAOG;WACW,qBAAqB,IAAI,MAAM;IAI7C;;OAEG;WACW,yBAAyB,CACrC,QAAQ,EAAE,UAAU,EAAE,GACrB,UAAU,EAAE;CA2BhB"}
|
|
@@ -42,6 +42,29 @@ class MiscUtils {
|
|
|
42
42
|
return (0, path_1.join)((0, os_1.homedir)(), `.${appName}`);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
static detectImageType(buffer) {
|
|
46
|
+
// Check for PNG signature (89 50 4E 47 0D 0A 1A 0A)
|
|
47
|
+
if (buffer.length >= 8 &&
|
|
48
|
+
buffer[0] === 0x89 &&
|
|
49
|
+
buffer[1] === 0x50 &&
|
|
50
|
+
buffer[2] === 0x4e &&
|
|
51
|
+
buffer[3] === 0x47 &&
|
|
52
|
+
buffer[4] === 0x0d &&
|
|
53
|
+
buffer[5] === 0x0a &&
|
|
54
|
+
buffer[6] === 0x1a &&
|
|
55
|
+
buffer[7] === 0x0a) {
|
|
56
|
+
return 'png';
|
|
57
|
+
}
|
|
58
|
+
// Check for JPEG signature (FF D8 FF)
|
|
59
|
+
if (buffer.length >= 3 &&
|
|
60
|
+
buffer[0] === 0xff &&
|
|
61
|
+
buffer[1] === 0xd8 &&
|
|
62
|
+
buffer[2] === 0xff) {
|
|
63
|
+
return 'jpeg';
|
|
64
|
+
}
|
|
65
|
+
// Default to PNG if unknown (or throw an error if preferred)
|
|
66
|
+
return 'png';
|
|
67
|
+
}
|
|
45
68
|
/**
|
|
46
69
|
* Updates token counts in flow metadata based on GPT response
|
|
47
70
|
*/
|
|
@@ -68,73 +91,59 @@ class MiscUtils {
|
|
|
68
91
|
return (0, fs_1.readFileSync)(assetPath);
|
|
69
92
|
}
|
|
70
93
|
/**
|
|
71
|
-
*
|
|
94
|
+
* Resizes a PNG or JPEG image until its file size is below a specified maximum size.
|
|
72
95
|
*
|
|
73
|
-
* @param inputImageBytes - The input
|
|
74
|
-
* @returns A Promise that resolves to the resized PNG image as a Buffer.
|
|
75
|
-
* @throws Error if image processing fails
|
|
76
|
-
*/
|
|
77
|
-
static async resizePngByHalf(inputImageBytes) {
|
|
78
|
-
const image = await jimp_1.Jimp.read(inputImageBytes);
|
|
79
|
-
image.resize({
|
|
80
|
-
w: Math.floor(image.bitmap.width / 2),
|
|
81
|
-
h: Math.floor(image.bitmap.height / 2),
|
|
82
|
-
});
|
|
83
|
-
return image.getBuffer('image/png');
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Resizes a PNG image until its file size is below a specified maximum size.
|
|
87
|
-
*
|
|
88
|
-
* @param inputImageBytes - The input PNG image as a Buffer.
|
|
96
|
+
* @param inputImageBytes - The input image as a Buffer.
|
|
89
97
|
* @param maxSizeInBytes - The maximum allowed file size in bytes.
|
|
90
|
-
* @
|
|
91
|
-
* @returns A Promise that resolves to the resized PNG image as a Buffer.
|
|
98
|
+
* @returns A Promise that resolves to the resized image as a Buffer.
|
|
92
99
|
* @throws Error if the image cannot be resized to meet the size requirements or if processing fails.
|
|
93
100
|
*/
|
|
94
|
-
static async
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
throw new Error('Maximum file size must be positive');
|
|
101
|
+
static async resizeImageToMaxFileSize(input, maxSizeInBytes) {
|
|
102
|
+
if (input.byteLength <= maxSizeInBytes) {
|
|
103
|
+
return input;
|
|
98
104
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return inputImageBytes;
|
|
105
|
+
else if (maxSizeInBytes <= 0) {
|
|
106
|
+
throw Error(`maxSizeInBytes (${maxSizeInBytes}) must be positive`);
|
|
102
107
|
}
|
|
103
|
-
//
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
scaleFactor = 0.7;
|
|
108
|
+
const kind = MiscUtils.detectImageType(input); // 'png' | 'jpeg'
|
|
109
|
+
const mime = kind === 'png' ? 'image/png' : 'image/jpeg'; // keep format
|
|
110
|
+
const base = await jimp_1.Jimp.read(input);
|
|
111
|
+
const { width: w0, height: h0 } = base.bitmap;
|
|
112
|
+
/** Encode a clone at the given linear scale factor */
|
|
113
|
+
const encode = async (scale) => {
|
|
114
|
+
const img = base.clone().resize({
|
|
115
|
+
w: Math.max(1, Math.round(w0 * scale)),
|
|
116
|
+
h: Math.max(1, Math.round(h0 * scale)),
|
|
117
|
+
});
|
|
118
|
+
if (mime === 'image/png') {
|
|
119
|
+
const buf = await img.getBuffer(mime, { compressionLevel: 9 });
|
|
120
|
+
return { buf, len: buf.byteLength };
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// JPEG: control size further with "quality" encoder option (30–95).
|
|
124
|
+
const buf = await img.getBuffer(mime, {
|
|
125
|
+
quality: Math.max(30, Math.round(95 * scale)),
|
|
126
|
+
});
|
|
127
|
+
return { buf, len: buf.byteLength };
|
|
124
128
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
};
|
|
130
|
+
// --- binary-search on scale factor (≤8 iterations covers 1 % precision) ---
|
|
131
|
+
let lo = 0; // infeasible
|
|
132
|
+
let hi = 1; // original size
|
|
133
|
+
let best = null;
|
|
134
|
+
for (let i = 0; i < 8; ++i) {
|
|
135
|
+
const mid = (lo + hi) / 2;
|
|
136
|
+
const { buf, len } = await encode(mid);
|
|
137
|
+
if (len <= maxSizeInBytes) {
|
|
138
|
+
return buf;
|
|
128
139
|
}
|
|
129
140
|
else {
|
|
130
|
-
//
|
|
131
|
-
scaleFactor = 0.9;
|
|
141
|
+
hi = mid; // too big – shrink more
|
|
132
142
|
}
|
|
133
|
-
// Update dimensions for next iteration
|
|
134
|
-
width = image.bitmap.width;
|
|
135
|
-
height = image.bitmap.height;
|
|
136
143
|
}
|
|
137
|
-
|
|
144
|
+
if (best)
|
|
145
|
+
return best;
|
|
146
|
+
throw new Error(`Cannot shrink image below ${maxSizeInBytes} bytes (limit too tight)`);
|
|
138
147
|
}
|
|
139
148
|
/**
|
|
140
149
|
* Returns a duration (in milliseconds) that represents a statistically
|
|
@@ -214,6 +223,33 @@ class MiscUtils {
|
|
|
214
223
|
static createAdHocToolCallId() {
|
|
215
224
|
return `adhoc_${(0, uuid_1.v4)().replace(/-/g, '')}`;
|
|
216
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Merges adjacent user messages (some LLMs like Gemini's or Anthropic's require this).
|
|
228
|
+
*/
|
|
229
|
+
static mergeAdjacentUserMessages(messages) {
|
|
230
|
+
let updatedMessages = [];
|
|
231
|
+
for (let i = 0; i < messages.length; ++i) {
|
|
232
|
+
if (i === messages.length - 1) {
|
|
233
|
+
updatedMessages.push(messages[i]);
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
const message = messages[i];
|
|
237
|
+
const adjacentMessage = messages[i + 1];
|
|
238
|
+
if (message.type === 'user' && adjacentMessage.type === 'user') {
|
|
239
|
+
const mergedMessage = {
|
|
240
|
+
type: 'user',
|
|
241
|
+
items: [...message.items, ...adjacentMessage.items],
|
|
242
|
+
};
|
|
243
|
+
updatedMessages.push(mergedMessage);
|
|
244
|
+
// Skip the next message.
|
|
245
|
+
++i;
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
updatedMessages.push(messages[i]);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return updatedMessages;
|
|
252
|
+
}
|
|
217
253
|
}
|
|
218
254
|
exports.MiscUtils = MiscUtils;
|
|
219
255
|
MiscUtils.DONOBU_VERSION = MiscUtils.getResourceFileAsString((0, path_1.join)('generated', 'version'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscUtils.js","sourceRoot":"","sources":["../../../src/utils/MiscUtils.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAClC,+BAAkC;AAClC,+BAA4B;AAC5B,2BAAuC;AACvC,+BAA4B;AAC5B,wCAA2C;
|
|
1
|
+
{"version":3,"file":"MiscUtils.js","sourceRoot":"","sources":["../../../src/utils/MiscUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
-
import { BrowserContext,
|
|
2
|
-
import { FlowMetadata, State } from '../models/FlowMetadata';
|
|
3
|
-
import { InteractableElement } from '../models/InteractableElement';
|
|
4
|
-
declare global {
|
|
5
|
-
interface Window {
|
|
6
|
-
donobuNextState: string | null;
|
|
7
|
-
donobuGetClickableElements: () => Element[];
|
|
8
|
-
donobuFocusPage: () => boolean;
|
|
9
|
-
donobuGenerateSmartSelectors: (element: Element) => string[];
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { BrowserContext, Page } from 'playwright';
|
|
12
2
|
/**
|
|
13
3
|
* Miscellaneous utility functions for working with the Playwright SDK. If you are looking to
|
|
14
4
|
* instantiate a Playwright instance, see PlaywrightSetup instead.
|
|
15
5
|
*/
|
|
16
6
|
export declare class PlaywrightUtils {
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
/**
|
|
8
|
+
* A JavaScript code snippet intended to run as an initialization
|
|
9
|
+
* script for `DonobuFlow` flows. This script helps flows handle/track
|
|
10
|
+
* prompts/confirmations. This is done specially since these browser actions
|
|
11
|
+
* pause the Javascript main thread and also cause issues with running various
|
|
12
|
+
* Playwright actions. See `DonobuFlow.onDialog(Dialog)` for details.
|
|
13
|
+
*/
|
|
19
14
|
private static readonly DIALOG_PROMPT_TRACKER_INIT_SCRIPT;
|
|
20
|
-
private static readonly SMART_SELECTOR_GENERATOR_INIT_SCRIPT;
|
|
21
|
-
private static readonly PAGE_INTERACTIONS_TRACKER_INIT_SCRIPT;
|
|
22
|
-
private static readonly DONOBU_CONTROL_PANEL_INIT_SCRIPT;
|
|
23
|
-
private static readonly DONOBU_CONTROL_PANEL_ELEMENT_ID;
|
|
24
|
-
private static readonly DONOBU_CONTROL_PANEL_HEADLINE_ELEMENT_ID;
|
|
25
|
-
static readonly DONOBU_INTERACTABLE_ATTRIBUTE = "data-donobu-interactable";
|
|
26
|
-
static readonly DONOBU_ANNOTATION_ATTRIBUTE = "data-donobu-annotation";
|
|
27
15
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
16
|
+
* Returns a JavaScript code snippet intended to run as an initialization
|
|
17
|
+
* script for `DonobuFlow` flows. This enables the {@link ReplayableInteraction}
|
|
18
|
+
* and {@link PageInteractionTracker.INIT_SCRIPT} to generate
|
|
19
|
+
* smart selectors.
|
|
20
|
+
*/
|
|
21
|
+
static readonly SMART_SELECTOR_GENERATOR_INIT_SCRIPT: string;
|
|
22
|
+
/**
|
|
23
|
+
* Attempts to take a screenshot of the given page, returning the raw byte
|
|
24
|
+
* array.
|
|
25
|
+
*
|
|
26
|
+
* If the operation fails, an empty array is returned.
|
|
27
|
+
*
|
|
30
28
|
* Note that if the Donobu control panel is present in the page, it will be
|
|
31
29
|
* excluded from the screenshot.
|
|
32
30
|
*/
|
|
33
|
-
static
|
|
31
|
+
static takeScreenshot(page: Page, type?: 'png' | 'jpeg'): Promise<Buffer>;
|
|
34
32
|
/**
|
|
35
33
|
* Generate valid selectors for the given element. The generated selectors are
|
|
36
34
|
* in a priority order based on their ability to identify the given element.
|
|
@@ -38,42 +36,9 @@ export declare class PlaywrightUtils {
|
|
|
38
36
|
* first in the list, and weaker selectors that match multiple elements are
|
|
39
37
|
* last.
|
|
40
38
|
*/
|
|
41
|
-
static generateSelectors(element:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
* script for `DonobuFlow` flows. This script helps other scripts to know
|
|
45
|
-
* which elements have mouse-click related event listeners attached to them
|
|
46
|
-
* via inspecting the {@code window.donobuGetClickableElements} element array.
|
|
47
|
-
*/
|
|
48
|
-
static clickableElementsTrackerInitScript(): string;
|
|
49
|
-
/**
|
|
50
|
-
* Returns a JavaScript code snippet intended to run as an initialization
|
|
51
|
-
* script for `DonobuFlow` flows. This script helps flows handle/track
|
|
52
|
-
* prompts/confirmations. This is done specially since these browser actions
|
|
53
|
-
* pause the Javascript main thread and also cause issues with running various
|
|
54
|
-
* Playwright actions. See `DonobuFlow.onDialog(Dialog)` for details.
|
|
55
|
-
*/
|
|
56
|
-
static dialogPromptTrackerInitScript(): string;
|
|
57
|
-
/**
|
|
58
|
-
* Returns a JavaScript code snippet intended to run as an initialization
|
|
59
|
-
* script for `DonobuFlow` flows. This is an in-page version of the
|
|
60
|
-
* `SelectorGenerator` class so that smart selectors can be generated in
|
|
61
|
-
* the web client. This is done so the
|
|
62
|
-
* {@link PlaywrightUtils.pageInteractionsTrackerInitScript()} can generate
|
|
63
|
-
* smart selectors on the fly and pass them to the `PageInteractionTracker`
|
|
64
|
-
* so the page interactions can be converted to synthetic `ToolCallResult`s.
|
|
65
|
-
*/
|
|
66
|
-
static smartSelectorGeneratorInitScript(): string;
|
|
67
|
-
/**
|
|
68
|
-
* This script is used by the `RunAccessibilityTestTool` to test the
|
|
69
|
-
* accessibility of a webpage. This script is injected on page load, rather
|
|
70
|
-
* than when running the `RunAccessibilityTestTool` because we need to bypass
|
|
71
|
-
* webpage Content Security Policy (CSP); this is done by injecting the
|
|
72
|
-
* script via `BrowserContext#addInitScript`.
|
|
73
|
-
*/
|
|
74
|
-
static accessibilityTestInitScript(): string;
|
|
75
|
-
static pageInteractionsTrackerInitScript(): string;
|
|
76
|
-
static donobuControlPanelInitScript(): string;
|
|
39
|
+
static generateSelectors(element: {
|
|
40
|
+
evaluate: (pageFunction: any) => Promise<any>;
|
|
41
|
+
}): Promise<string[]>;
|
|
77
42
|
/**
|
|
78
43
|
* Sets up the given browser context so that it can be minimally used by the
|
|
79
44
|
* rest of Donobu. This involves registering virtual routes for serving up
|
|
@@ -81,72 +46,6 @@ export declare class PlaywrightUtils {
|
|
|
81
46
|
* scripts.
|
|
82
47
|
*/
|
|
83
48
|
static setupBasicBrowserContext(browserContext: BrowserContext): Promise<void>;
|
|
84
|
-
/**
|
|
85
|
-
* Returns the given locator or its label, if it has one and is associated with a labelable element.
|
|
86
|
-
* Labelable elements include: button, input (except hidden), meter, output, progress, select, and textarea.
|
|
87
|
-
*/
|
|
88
|
-
static getLocatorOrItsLabel(element: Locator): Promise<Locator>;
|
|
89
|
-
/**
|
|
90
|
-
* Reads and clears the desired next state as directed by the in-flow control
|
|
91
|
-
* panel. Note that the control panel does not have carte blanche control, as
|
|
92
|
-
* we only support the control panel signaling an intent to pause and resume a
|
|
93
|
-
* flow.
|
|
94
|
-
*/
|
|
95
|
-
static popControlPanelNextDesiredState(page: Page): Promise<State | null>;
|
|
96
|
-
/**
|
|
97
|
-
* Hides the control panel by setting its display to 'none'. This ensures the
|
|
98
|
-
* panel is not visible and does not intercept mouse events.
|
|
99
|
-
*/
|
|
100
|
-
static hideControlPanel(focusedPage: Page, flowMetadata: FlowMetadata): Promise<void>;
|
|
101
|
-
/**
|
|
102
|
-
* Shows the control panel by resetting its display property. Assumes the
|
|
103
|
-
* original display was 'block'.
|
|
104
|
-
*/
|
|
105
|
-
static showControlPanel(focusedPage: Page, flowMetadata: FlowMetadata): Promise<void>;
|
|
106
|
-
/**
|
|
107
|
-
* Updates all control panels in the given browser context. If the provided
|
|
108
|
-
* headline is non-null, the headline in the control panel will be updated.
|
|
109
|
-
*/
|
|
110
|
-
static updateControlPanel(focusedPage: Page, flowMetadata: FlowMetadata, headline: string | null): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* Returns all elements that have the
|
|
113
|
-
* {@link PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE} HTML attribute.
|
|
114
|
-
**/
|
|
115
|
-
static getAttributedInteractableElements(page: Page): Promise<InteractableElement[]>;
|
|
116
|
-
/**
|
|
117
|
-
* Assigns a globally unique {@link PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE}
|
|
118
|
-
* attribute value to each visible, interactable, element in the given page.
|
|
119
|
-
* Any pre-existing {@link PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE}
|
|
120
|
-
* attributes will be removed.
|
|
121
|
-
*/
|
|
122
|
-
static attributeInteractableElements(page: Page): Promise<void>;
|
|
123
|
-
/**
|
|
124
|
-
* Annotate all elements in the given page that have a
|
|
125
|
-
* {@link PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE} HTML attribute.
|
|
126
|
-
*
|
|
127
|
-
* The annotations are placed in a shadow root to avoid site-specific CSS,
|
|
128
|
-
* each having a {@link PlaywrightUtils.DONOBU_ANNOTATION_ATTRIBUTE} attribute.
|
|
129
|
-
*/
|
|
130
|
-
static annotateInteractableElements(page: Page): Promise<void>;
|
|
131
|
-
/**
|
|
132
|
-
* Removes all annotations with a {@link PlaywrightUtils.DONOBU_ANNOTATION_ATTRIBUTE}
|
|
133
|
-
* HTML attribute in the given page, including any containers in shadow DOM.
|
|
134
|
-
*/
|
|
135
|
-
static removeDonobuAnnotations(page: Page): Promise<void>;
|
|
136
|
-
/**
|
|
137
|
-
* Removes the {@link PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE} HTML
|
|
138
|
-
* attribute for all elements in the given page. This attribute is normally
|
|
139
|
-
* added by the {@link PlaywrightUtils.attributeInteractableElements(Page)}
|
|
140
|
-
* function.
|
|
141
|
-
*/
|
|
142
|
-
static deattributeVisibleInteractableElements(page: Page): Promise<void>;
|
|
143
|
-
static parseUnambiguousSelector(elementHandle: ElementHandle): Promise<string>;
|
|
144
|
-
/**
|
|
145
|
-
* Converts an HTML attribute to a JavaScript attribute. For example,
|
|
146
|
-
* "data-foo-bar" is turned into "fooBar". Notice the dropping of the "data-"
|
|
147
|
-
* prefix, and the conversion from kebab-case to camelCase.
|
|
148
|
-
*/
|
|
149
|
-
static convertToJsAttribute(htmlAttribute: string): string;
|
|
150
49
|
/**
|
|
151
50
|
* Returned true IFF the given error is a Playwright error regarding page closing,
|
|
152
51
|
* of if the given error is an instance of {@link PageClosedException}.
|
|
@@ -160,12 +59,15 @@ export declare class PlaywrightUtils {
|
|
|
160
59
|
* it is logged and ignored. If page is null, this function has no effect.
|
|
161
60
|
*/
|
|
162
61
|
static waitForPageStability(page: Page | null): Promise<void>;
|
|
163
|
-
private static frameFilter;
|
|
164
62
|
/**
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
63
|
+
* Takes a screenshot of the webpage as if it were scrolled down by one viewport.
|
|
64
|
+
* If the page cannot be scrolled as a whole, tries to find and scroll individual
|
|
65
|
+
* scrollable elements on the page. After taking the screenshot, it reverts to
|
|
66
|
+
* the original scroll position.
|
|
67
|
+
*
|
|
68
|
+
* @param page The Playwright Page to take a screenshot of
|
|
69
|
+
* @returns An image buffer of the scrolled down view, or undefined if scrolling isn't possible
|
|
168
70
|
*/
|
|
169
|
-
|
|
71
|
+
static getScrolledDownScreenShot(page: Page): Promise<Buffer | undefined>;
|
|
170
72
|
}
|
|
171
73
|
//# sourceMappingURL=PlaywrightUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlaywrightUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/PlaywrightUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAUlD;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iCAAiC,CACkB;IAE3E;;;;;OAKG;IACH,gBAAuB,oCAAoC,SACmB;IAE9E;;;;;;;;OAQG;WACiB,cAAc,CAChC,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,KAAK,GAAG,MAAe,GAC5B,OAAO,CAAC,MAAM,CAAC;IAgBlB;;;;;;OAMG;WACiB,iBAAiB,CAAC,OAAO,EAAE;QAC7C,QAAQ,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/C,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrB;;;;;OAKG;WACiB,wBAAwB,CAC1C,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC;IAWhB;;;OAGG;WACW,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;WAkBhC,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;WAI7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDnE;;;;OAIG;WACiB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1E;;;;;;;;OAQG;WACiB,yBAAyB,CAC3C,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CA4I/B"}
|