donobu 2.19.1 → 2.20.1
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/AskAiApi.d.ts.map +1 -1
- package/dist/apis/AskAiApi.js +2 -1
- package/dist/apis/AskAiApi.js.map +1 -1
- package/dist/apis/DefaultApiAuthApi.js +1 -1
- package/dist/apis/DefaultApiAuthApi.js.map +1 -1
- package/dist/apis/SpecialFlowsApi.d.ts +0 -6
- package/dist/apis/SpecialFlowsApi.d.ts.map +1 -1
- package/dist/apis/SpecialFlowsApi.js +2 -46
- package/dist/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/apis/ToolsApi.d.ts +3 -1
- package/dist/apis/ToolsApi.d.ts.map +1 -1
- package/dist/apis/ToolsApi.js +9 -1
- package/dist/apis/ToolsApi.js.map +1 -1
- package/dist/assets/control-panel.js +0 -1
- package/dist/assets/generated/version +1 -1
- package/dist/assets/record.umd.min.cjs +10399 -0
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +2 -2
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/clients/AnthropicGptClient.d.ts +2 -2
- package/dist/clients/AnthropicGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicGptClient.js +9 -2
- package/dist/clients/AnthropicGptClient.js.map +1 -1
- package/dist/clients/GoogleGptClient.d.ts +2 -16
- package/dist/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/clients/GoogleGptClient.js +14 -63
- package/dist/clients/GoogleGptClient.js.map +1 -1
- package/dist/clients/GptClient.d.ts +3 -3
- package/dist/clients/GptClient.d.ts.map +1 -1
- package/dist/clients/OpenAiGptClient.d.ts +2 -2
- package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/clients/OpenAiGptClient.js +20 -4
- package/dist/clients/OpenAiGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.d.ts +2 -2
- package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/clients/VercelAiGptClient.js +2 -2
- package/dist/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/apis/AskAiApi.d.ts.map +1 -1
- package/dist/esm/apis/AskAiApi.js +2 -1
- package/dist/esm/apis/AskAiApi.js.map +1 -1
- package/dist/esm/apis/DefaultApiAuthApi.js +1 -1
- package/dist/esm/apis/DefaultApiAuthApi.js.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -6
- package/dist/esm/apis/SpecialFlowsApi.d.ts.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.js +2 -46
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/esm/apis/ToolsApi.d.ts +3 -1
- package/dist/esm/apis/ToolsApi.d.ts.map +1 -1
- package/dist/esm/apis/ToolsApi.js +9 -1
- package/dist/esm/apis/ToolsApi.js.map +1 -1
- package/dist/esm/assets/control-panel.js +0 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/assets/record.umd.min.cjs +10399 -0
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +2 -2
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.d.ts +2 -2
- package/dist/esm/clients/AnthropicGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.js +9 -2
- package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
- package/dist/esm/clients/GoogleGptClient.d.ts +2 -16
- package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/esm/clients/GoogleGptClient.js +14 -63
- package/dist/esm/clients/GoogleGptClient.js.map +1 -1
- package/dist/esm/clients/GptClient.d.ts +3 -3
- package/dist/esm/clients/GptClient.d.ts.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.d.ts +2 -2
- package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.js +20 -4
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts +2 -2
- package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.js +2 -2
- package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts +1 -1
- package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts.map +1 -1
- package/dist/esm/exceptions/UnparseableJsonBodyException.js +2 -3
- package/dist/esm/exceptions/UnparseableJsonBodyException.js.map +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +20 -20
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/browserState.d.ts +2 -0
- package/dist/esm/lib/fixtures/browserState.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/browserState.js +16 -0
- package/dist/esm/lib/fixtures/browserState.js.map +1 -1
- package/dist/esm/lib/testExtension.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.js +27 -4
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/lib/utils/selfHealing.d.ts +4 -3
- package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -1
- package/dist/esm/lib/utils/selfHealing.js +89 -17
- package/dist/esm/lib/utils/selfHealing.js.map +1 -1
- package/dist/esm/main.d.ts +6 -1
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +7 -4
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts +1 -0
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +48 -5
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +2 -2
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +6 -6
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +7 -2
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +63 -31
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/GptConfigsManager.js +13 -12
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts.map +1 -1
- package/dist/esm/managers/PageInspector.js +23 -8
- package/dist/esm/managers/PageInspector.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts +5 -4
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/BrowserConfig.d.ts +329 -48
- package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
- package/dist/esm/models/BrowserConfig.js +96 -0
- package/dist/esm/models/BrowserConfig.js.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.d.ts +380 -66
- package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.js +61 -0
- package/dist/esm/models/CreateDonobuFlow.js.map +1 -1
- package/dist/esm/models/CustomTool.d.ts +18 -9
- package/dist/esm/models/CustomTool.d.ts.map +1 -1
- package/dist/esm/models/CustomTool.js +14 -0
- package/dist/esm/models/CustomTool.js.map +1 -1
- package/dist/esm/models/DonobuToolPlugin.d.ts +5 -0
- package/dist/esm/models/DonobuToolPlugin.d.ts.map +1 -0
- package/dist/esm/models/DonobuToolPlugin.js +3 -0
- package/dist/esm/models/DonobuToolPlugin.js.map +1 -0
- package/dist/esm/models/ElementSelector.d.ts +12 -16
- package/dist/esm/models/ElementSelector.d.ts.map +1 -1
- package/dist/esm/models/ElementSelector.js +13 -0
- package/dist/esm/models/ElementSelector.js.map +1 -1
- package/dist/esm/models/FlowMetadata.d.ts +440 -104
- package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
- package/dist/esm/models/FlowMetadata.js +147 -4
- package/dist/esm/models/FlowMetadata.js.map +1 -1
- package/dist/esm/models/ToolSchema.d.ts +16 -0
- package/dist/esm/models/ToolSchema.d.ts.map +1 -0
- package/dist/esm/models/ToolSchema.js +17 -0
- package/dist/esm/models/ToolSchema.js.map +1 -0
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts +5 -8
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts.map +1 -1
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js +2 -1
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js.map +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.d.ts +26 -14
- package/dist/esm/tools/AnalyzePageTextTool.d.ts.map +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.js +13 -2
- package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -1
- package/dist/esm/tools/AssertPageTextTool.d.ts +21 -12
- package/dist/esm/tools/AssertPageTextTool.d.ts.map +1 -1
- package/dist/esm/tools/AssertPageTextTool.js +10 -2
- package/dist/esm/tools/AssertPageTextTool.js.map +1 -1
- package/dist/esm/tools/AssertPageTool.d.ts +33 -23
- package/dist/esm/tools/AssertPageTool.d.ts.map +1 -1
- package/dist/esm/tools/AssertPageTool.js +18 -2
- package/dist/esm/tools/AssertPageTool.js.map +1 -1
- package/dist/esm/tools/AssertTool.d.ts +21 -31
- package/dist/esm/tools/AssertTool.d.ts.map +1 -1
- package/dist/esm/tools/AssertTool.js +36 -18
- package/dist/esm/tools/AssertTool.js.map +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts +21 -11
- package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.js +8 -2
- package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -1
- package/dist/esm/tools/ChooseSelectOptionTool.d.ts +54 -12
- package/dist/esm/tools/ChooseSelectOptionTool.d.ts.map +1 -1
- package/dist/esm/tools/ChooseSelectOptionTool.js +11 -2
- package/dist/esm/tools/ChooseSelectOptionTool.js.map +1 -1
- package/dist/esm/tools/ClickTool.d.ts +5 -9
- package/dist/esm/tools/ClickTool.d.ts.map +1 -1
- package/dist/esm/tools/ClickTool.js +5 -4
- package/dist/esm/tools/ClickTool.js.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts +5 -8
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js +15 -28
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.d.ts +16 -3
- package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js +95 -9
- package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.d.ts +22 -12
- package/dist/esm/tools/DetectBrokenLinksTool.d.ts.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +11 -2
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/esm/tools/DownloadPdfTool.d.ts +21 -12
- package/dist/esm/tools/DownloadPdfTool.d.ts.map +1 -1
- package/dist/esm/tools/DownloadPdfTool.js +8 -2
- package/dist/esm/tools/DownloadPdfTool.js.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.d.ts +40 -29
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.d.ts.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +56 -68
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts +5 -9
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts.map +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +2 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.d.ts +28 -17
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.d.ts.map +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +75 -95
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts +17 -14
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts.map +1 -1
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js +12 -2
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js.map +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.d.ts +22 -16
- package/dist/esm/tools/GoForwardOrBackTool.d.ts.map +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.js +12 -9
- package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.d.ts +26 -17
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.d.ts.map +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +11 -2
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/esm/tools/GoToWebpageTool.d.ts +24 -8
- package/dist/esm/tools/GoToWebpageTool.d.ts.map +1 -1
- package/dist/esm/tools/GoToWebpageTool.js +13 -2
- package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
- package/dist/esm/tools/HandleBrowserDialogTool.d.ts +22 -16
- package/dist/esm/tools/HandleBrowserDialogTool.d.ts.map +1 -1
- package/dist/esm/tools/HandleBrowserDialogTool.js +11 -2
- package/dist/esm/tools/HandleBrowserDialogTool.js.map +1 -1
- package/dist/esm/tools/HoverOverElementTool.d.ts +6 -10
- package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
- package/dist/esm/tools/HoverOverElementTool.js +2 -1
- package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
- package/dist/esm/tools/InputRandomizedEmailAddressTool.d.ts +62 -15
- package/dist/esm/tools/InputRandomizedEmailAddressTool.d.ts.map +1 -1
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js +22 -9
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js.map +1 -1
- package/dist/esm/tools/InputTextTool.d.ts +62 -16
- package/dist/esm/tools/InputTextTool.d.ts.map +1 -1
- package/dist/esm/tools/InputTextTool.js +21 -9
- package/dist/esm/tools/InputTextTool.js.map +1 -1
- package/dist/esm/tools/MakeCommentTool.d.ts +21 -11
- package/dist/esm/tools/MakeCommentTool.d.ts.map +1 -1
- package/dist/esm/tools/MakeCommentTool.js +10 -4
- package/dist/esm/tools/MakeCommentTool.js.map +1 -1
- package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts +15 -17
- package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts.map +1 -1
- package/dist/esm/tools/MarkObjectiveCompleteTool.js +7 -2
- package/dist/esm/tools/MarkObjectiveCompleteTool.js.map +1 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts +5 -8
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts.map +1 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js +4 -3
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js.map +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.d.ts +30 -15
- package/dist/esm/tools/NavigateWithinStreetView.d.ts.map +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.js +26 -14
- package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -1
- package/dist/esm/tools/PauseForUserInteractionTool.d.ts +5 -9
- package/dist/esm/tools/PauseForUserInteractionTool.d.ts.map +1 -1
- package/dist/esm/tools/PauseForUserInteractionTool.js +2 -1
- package/dist/esm/tools/PauseForUserInteractionTool.js.map +1 -1
- package/dist/esm/tools/PressKeyTool.d.ts +54 -12
- package/dist/esm/tools/PressKeyTool.d.ts.map +1 -1
- package/dist/esm/tools/PressKeyTool.js +9 -3
- package/dist/esm/tools/PressKeyTool.js.map +1 -1
- package/dist/esm/tools/ReloadPageTool.d.ts +5 -8
- package/dist/esm/tools/ReloadPageTool.d.ts.map +1 -1
- package/dist/esm/tools/ReloadPageTool.js +2 -1
- package/dist/esm/tools/ReloadPageTool.js.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts +42 -26
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.js +21 -15
- package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +5 -8
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js +2 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts +21 -10
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +8 -2
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.d.ts +21 -11
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js +8 -2
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts +5 -9
- package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts.map +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js +2 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/esm/tools/ScrollPageTool.d.ts +22 -12
- package/dist/esm/tools/ScrollPageTool.d.ts.map +1 -1
- package/dist/esm/tools/ScrollPageTool.js +15 -7
- package/dist/esm/tools/ScrollPageTool.js.map +1 -1
- package/dist/esm/tools/SetRunModeTool.d.ts +22 -14
- package/dist/esm/tools/SetRunModeTool.d.ts.map +1 -1
- package/dist/esm/tools/SetRunModeTool.js +9 -2
- package/dist/esm/tools/SetRunModeTool.js.map +1 -1
- package/dist/esm/tools/SolveMfaChallenge.d.ts +70 -21
- package/dist/esm/tools/SolveMfaChallenge.d.ts.map +1 -1
- package/dist/esm/tools/SolveMfaChallenge.js +16 -2
- package/dist/esm/tools/SolveMfaChallenge.js.map +1 -1
- package/dist/esm/tools/SummarizeLearningsTool.d.ts +21 -11
- package/dist/esm/tools/SummarizeLearningsTool.d.ts.map +1 -1
- package/dist/esm/tools/SummarizeLearningsTool.js +8 -2
- package/dist/esm/tools/SummarizeLearningsTool.js.map +1 -1
- package/dist/esm/tools/Tool.d.ts +18 -21
- package/dist/esm/tools/Tool.d.ts.map +1 -1
- package/dist/esm/tools/Tool.js +15 -5
- package/dist/esm/tools/Tool.js.map +1 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +996 -13
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.js +9 -2
- package/dist/esm/tools/TriggerDonobuFlowTool.js.map +1 -1
- package/dist/esm/tools/WaitTool.d.ts +21 -11
- package/dist/esm/tools/WaitTool.d.ts.map +1 -1
- package/dist/esm/tools/WaitTool.js +8 -2
- package/dist/esm/tools/WaitTool.js.map +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.js +5 -2
- package/dist/esm/utils/BrowserUtils.js.map +1 -1
- package/dist/esm/utils/JsonSchemaUtils.d.ts +4 -0
- package/dist/esm/utils/JsonSchemaUtils.d.ts.map +1 -0
- package/dist/esm/utils/JsonSchemaUtils.js +179 -0
- package/dist/esm/utils/JsonSchemaUtils.js.map +1 -0
- package/dist/esm/utils/JsonUtils.d.ts +0 -2
- package/dist/esm/utils/JsonUtils.d.ts.map +1 -1
- package/dist/esm/utils/JsonUtils.js +0 -3
- package/dist/esm/utils/JsonUtils.js.map +1 -1
- package/dist/esm/utils/ToolPluginLoader.d.ts +2 -0
- package/dist/esm/utils/ToolPluginLoader.d.ts.map +1 -0
- package/dist/esm/utils/ToolPluginLoader.js +4 -0
- package/dist/esm/utils/ToolPluginLoader.js.map +1 -0
- package/dist/esm/utils/ToolsPluginsLoader.d.ts +52 -0
- package/dist/esm/utils/ToolsPluginsLoader.d.ts.map +1 -0
- package/dist/esm/utils/ToolsPluginsLoader.js +301 -0
- package/dist/esm/utils/ToolsPluginsLoader.js.map +1 -0
- package/dist/exceptions/UnparseableJsonBodyException.d.ts +1 -1
- package/dist/exceptions/UnparseableJsonBodyException.d.ts.map +1 -1
- package/dist/exceptions/UnparseableJsonBodyException.js +2 -3
- package/dist/exceptions/UnparseableJsonBodyException.js.map +1 -1
- package/dist/lib/DonobuExtendedPage.d.ts +20 -20
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/fixtures/browserState.d.ts +2 -0
- package/dist/lib/fixtures/browserState.d.ts.map +1 -1
- package/dist/lib/fixtures/browserState.js +16 -0
- package/dist/lib/fixtures/browserState.js.map +1 -1
- package/dist/lib/testExtension.d.ts.map +1 -1
- package/dist/lib/testExtension.js +27 -4
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/lib/utils/selfHealing.d.ts +4 -3
- package/dist/lib/utils/selfHealing.d.ts.map +1 -1
- package/dist/lib/utils/selfHealing.js +89 -17
- package/dist/lib/utils/selfHealing.js.map +1 -1
- package/dist/main.d.ts +6 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +7 -4
- package/dist/main.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts +1 -0
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +48 -5
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +2 -2
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +6 -6
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +7 -2
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +63 -31
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/GptConfigsManager.js +13 -12
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/PageInspector.d.ts.map +1 -1
- package/dist/managers/PageInspector.js +23 -8
- package/dist/managers/PageInspector.js.map +1 -1
- package/dist/managers/ToolManager.d.ts +5 -4
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/BrowserConfig.d.ts +329 -48
- package/dist/models/BrowserConfig.d.ts.map +1 -1
- package/dist/models/BrowserConfig.js +96 -0
- package/dist/models/BrowserConfig.js.map +1 -1
- package/dist/models/CreateDonobuFlow.d.ts +380 -66
- package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/models/CreateDonobuFlow.js +61 -0
- package/dist/models/CreateDonobuFlow.js.map +1 -1
- package/dist/models/CustomTool.d.ts +18 -9
- package/dist/models/CustomTool.d.ts.map +1 -1
- package/dist/models/CustomTool.js +14 -0
- package/dist/models/CustomTool.js.map +1 -1
- package/dist/models/DonobuToolPlugin.d.ts +5 -0
- package/dist/models/DonobuToolPlugin.d.ts.map +1 -0
- package/dist/models/DonobuToolPlugin.js +3 -0
- package/dist/models/DonobuToolPlugin.js.map +1 -0
- package/dist/models/ElementSelector.d.ts +12 -16
- package/dist/models/ElementSelector.d.ts.map +1 -1
- package/dist/models/ElementSelector.js +13 -0
- package/dist/models/ElementSelector.js.map +1 -1
- package/dist/models/FlowMetadata.d.ts +440 -104
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/models/FlowMetadata.js +147 -4
- package/dist/models/FlowMetadata.js.map +1 -1
- package/dist/models/ToolSchema.d.ts +16 -0
- package/dist/models/ToolSchema.d.ts.map +1 -0
- package/dist/models/ToolSchema.js +17 -0
- package/dist/models/ToolSchema.js.map +1 -0
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts +5 -8
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts.map +1 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.js +2 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.js.map +1 -1
- package/dist/tools/AnalyzePageTextTool.d.ts +26 -14
- package/dist/tools/AnalyzePageTextTool.d.ts.map +1 -1
- package/dist/tools/AnalyzePageTextTool.js +13 -2
- package/dist/tools/AnalyzePageTextTool.js.map +1 -1
- package/dist/tools/AssertPageTextTool.d.ts +21 -12
- package/dist/tools/AssertPageTextTool.d.ts.map +1 -1
- package/dist/tools/AssertPageTextTool.js +10 -2
- package/dist/tools/AssertPageTextTool.js.map +1 -1
- package/dist/tools/AssertPageTool.d.ts +33 -23
- package/dist/tools/AssertPageTool.d.ts.map +1 -1
- package/dist/tools/AssertPageTool.js +18 -2
- package/dist/tools/AssertPageTool.js.map +1 -1
- package/dist/tools/AssertTool.d.ts +21 -31
- package/dist/tools/AssertTool.d.ts.map +1 -1
- package/dist/tools/AssertTool.js +36 -18
- package/dist/tools/AssertTool.js.map +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.d.ts +21 -11
- package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.js +8 -2
- package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -1
- package/dist/tools/ChooseSelectOptionTool.d.ts +54 -12
- package/dist/tools/ChooseSelectOptionTool.d.ts.map +1 -1
- package/dist/tools/ChooseSelectOptionTool.js +11 -2
- package/dist/tools/ChooseSelectOptionTool.js.map +1 -1
- package/dist/tools/ClickTool.d.ts +5 -9
- package/dist/tools/ClickTool.d.ts.map +1 -1
- package/dist/tools/ClickTool.js +5 -4
- package/dist/tools/ClickTool.js.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.d.ts +5 -8
- package/dist/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js +15 -28
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/tools/CustomToolRunnerTool.d.ts +16 -3
- package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/tools/CustomToolRunnerTool.js +95 -9
- package/dist/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.d.ts +22 -12
- package/dist/tools/DetectBrokenLinksTool.d.ts.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +11 -2
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/tools/DownloadPdfTool.d.ts +21 -12
- package/dist/tools/DownloadPdfTool.d.ts.map +1 -1
- package/dist/tools/DownloadPdfTool.js +8 -2
- package/dist/tools/DownloadPdfTool.js.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.d.ts +40 -29
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.d.ts.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +56 -68
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts +5 -9
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts.map +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js +2 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.d.ts +28 -17
- package/dist/tools/ExtractPublicFacebookEntityDataTool.d.ts.map +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +75 -95
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts +17 -14
- package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts.map +1 -1
- package/dist/tools/GetEntityDataFromGoogleMapResult.js +12 -2
- package/dist/tools/GetEntityDataFromGoogleMapResult.js.map +1 -1
- package/dist/tools/GoForwardOrBackTool.d.ts +22 -16
- package/dist/tools/GoForwardOrBackTool.d.ts.map +1 -1
- package/dist/tools/GoForwardOrBackTool.js +12 -9
- package/dist/tools/GoForwardOrBackTool.js.map +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.d.ts +26 -17
- package/dist/tools/GoToGoogleMapsStreetViewTool.d.ts.map +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +11 -2
- package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/tools/GoToWebpageTool.d.ts +24 -8
- package/dist/tools/GoToWebpageTool.d.ts.map +1 -1
- package/dist/tools/GoToWebpageTool.js +13 -2
- package/dist/tools/GoToWebpageTool.js.map +1 -1
- package/dist/tools/HandleBrowserDialogTool.d.ts +22 -16
- package/dist/tools/HandleBrowserDialogTool.d.ts.map +1 -1
- package/dist/tools/HandleBrowserDialogTool.js +11 -2
- package/dist/tools/HandleBrowserDialogTool.js.map +1 -1
- package/dist/tools/HoverOverElementTool.d.ts +6 -10
- package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
- package/dist/tools/HoverOverElementTool.js +2 -1
- package/dist/tools/HoverOverElementTool.js.map +1 -1
- package/dist/tools/InputRandomizedEmailAddressTool.d.ts +62 -15
- package/dist/tools/InputRandomizedEmailAddressTool.d.ts.map +1 -1
- package/dist/tools/InputRandomizedEmailAddressTool.js +22 -9
- package/dist/tools/InputRandomizedEmailAddressTool.js.map +1 -1
- package/dist/tools/InputTextTool.d.ts +62 -16
- package/dist/tools/InputTextTool.d.ts.map +1 -1
- package/dist/tools/InputTextTool.js +21 -9
- package/dist/tools/InputTextTool.js.map +1 -1
- package/dist/tools/MakeCommentTool.d.ts +21 -11
- package/dist/tools/MakeCommentTool.d.ts.map +1 -1
- package/dist/tools/MakeCommentTool.js +10 -4
- package/dist/tools/MakeCommentTool.js.map +1 -1
- package/dist/tools/MarkObjectiveCompleteTool.d.ts +15 -17
- package/dist/tools/MarkObjectiveCompleteTool.d.ts.map +1 -1
- package/dist/tools/MarkObjectiveCompleteTool.js +7 -2
- package/dist/tools/MarkObjectiveCompleteTool.js.map +1 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.d.ts +5 -8
- package/dist/tools/MarkObjectiveNotCompletableTool.d.ts.map +1 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.js +4 -3
- package/dist/tools/MarkObjectiveNotCompletableTool.js.map +1 -1
- package/dist/tools/NavigateWithinStreetView.d.ts +30 -15
- package/dist/tools/NavigateWithinStreetView.d.ts.map +1 -1
- package/dist/tools/NavigateWithinStreetView.js +26 -14
- package/dist/tools/NavigateWithinStreetView.js.map +1 -1
- package/dist/tools/PauseForUserInteractionTool.d.ts +5 -9
- package/dist/tools/PauseForUserInteractionTool.d.ts.map +1 -1
- package/dist/tools/PauseForUserInteractionTool.js +2 -1
- package/dist/tools/PauseForUserInteractionTool.js.map +1 -1
- package/dist/tools/PressKeyTool.d.ts +54 -12
- package/dist/tools/PressKeyTool.d.ts.map +1 -1
- package/dist/tools/PressKeyTool.js +9 -3
- package/dist/tools/PressKeyTool.js.map +1 -1
- package/dist/tools/ReloadPageTool.d.ts +5 -8
- package/dist/tools/ReloadPageTool.d.ts.map +1 -1
- package/dist/tools/ReloadPageTool.js +2 -1
- package/dist/tools/ReloadPageTool.js.map +1 -1
- package/dist/tools/ReplayableInteraction.d.ts +42 -26
- package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/tools/ReplayableInteraction.js +21 -15
- package/dist/tools/ReplayableInteraction.js.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts +5 -8
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.js +2 -1
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.d.ts +21 -10
- package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js +8 -2
- package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.d.ts +21 -11
- package/dist/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js +8 -2
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.d.ts +5 -9
- package/dist/tools/SaveWebpageAsPdfTool.d.ts.map +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js +2 -1
- package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/tools/ScrollPageTool.d.ts +22 -12
- package/dist/tools/ScrollPageTool.d.ts.map +1 -1
- package/dist/tools/ScrollPageTool.js +15 -7
- package/dist/tools/ScrollPageTool.js.map +1 -1
- package/dist/tools/SetRunModeTool.d.ts +22 -14
- package/dist/tools/SetRunModeTool.d.ts.map +1 -1
- package/dist/tools/SetRunModeTool.js +9 -2
- package/dist/tools/SetRunModeTool.js.map +1 -1
- package/dist/tools/SolveMfaChallenge.d.ts +70 -21
- package/dist/tools/SolveMfaChallenge.d.ts.map +1 -1
- package/dist/tools/SolveMfaChallenge.js +16 -2
- package/dist/tools/SolveMfaChallenge.js.map +1 -1
- package/dist/tools/SummarizeLearningsTool.d.ts +21 -11
- package/dist/tools/SummarizeLearningsTool.d.ts.map +1 -1
- package/dist/tools/SummarizeLearningsTool.js +8 -2
- package/dist/tools/SummarizeLearningsTool.js.map +1 -1
- package/dist/tools/Tool.d.ts +18 -21
- package/dist/tools/Tool.d.ts.map +1 -1
- package/dist/tools/Tool.js +15 -5
- package/dist/tools/Tool.js.map +1 -1
- package/dist/tools/TriggerDonobuFlowTool.d.ts +996 -13
- package/dist/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
- package/dist/tools/TriggerDonobuFlowTool.js +9 -2
- package/dist/tools/TriggerDonobuFlowTool.js.map +1 -1
- package/dist/tools/WaitTool.d.ts +21 -11
- package/dist/tools/WaitTool.d.ts.map +1 -1
- package/dist/tools/WaitTool.js +8 -2
- package/dist/tools/WaitTool.js.map +1 -1
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +5 -2
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/dist/utils/JsonUtils.d.ts +0 -2
- package/dist/utils/JsonUtils.d.ts.map +1 -1
- package/dist/utils/JsonUtils.js +0 -3
- package/dist/utils/JsonUtils.js.map +1 -1
- package/dist/utils/ToolPluginLoader.d.ts +2 -0
- package/dist/utils/ToolPluginLoader.d.ts.map +1 -0
- package/dist/utils/ToolPluginLoader.js +4 -0
- package/dist/utils/ToolPluginLoader.js.map +1 -0
- package/dist/utils/ToolsPluginsLoader.d.ts +52 -0
- package/dist/utils/ToolsPluginsLoader.d.ts.map +1 -0
- package/dist/utils/ToolsPluginsLoader.js +301 -0
- package/dist/utils/ToolsPluginsLoader.js.map +1 -0
- package/dist/utils/jsonSchemaUtils.d.ts +4 -0
- package/dist/utils/jsonSchemaUtils.d.ts.map +1 -0
- package/dist/utils/jsonSchemaUtils.js +179 -0
- package/dist/utils/jsonSchemaUtils.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ToolsPluginsLoader = void 0;
|
|
37
|
+
const fs = __importStar(require("fs/promises"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const Logger_1 = require("./Logger");
|
|
40
|
+
const MiscUtils_1 = require("./MiscUtils");
|
|
41
|
+
/**
|
|
42
|
+
* Loads and manages tools plugins from the filesystem.
|
|
43
|
+
*
|
|
44
|
+
* Plugins are loaded from the 'plugins' directory within the base working directory.
|
|
45
|
+
* Each plugin should be a directory containing a package.json with a "main" field
|
|
46
|
+
* pointing to the plugin entry point that exports a class implementing DonobuToolPlugin.
|
|
47
|
+
*/
|
|
48
|
+
class ToolsPluginsLoader {
|
|
49
|
+
constructor() {
|
|
50
|
+
this.loadedPlugins = new Map();
|
|
51
|
+
this.loadedTools = new Map();
|
|
52
|
+
this.pluginsPath = path.join(MiscUtils_1.MiscUtils.baseWorkingDirectory(), ToolsPluginsLoader.PLUGINS_DIRECTORY);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Loads all available plugins and returns the tools they provide.
|
|
56
|
+
*
|
|
57
|
+
* @returns Promise<Tool[]> Array of all tools from all successfully loaded plugins
|
|
58
|
+
*/
|
|
59
|
+
async loadAllTools() {
|
|
60
|
+
Logger_1.appLogger.info(`Loading plugins from: ${this.pluginsPath}`);
|
|
61
|
+
try {
|
|
62
|
+
await this.ensurePluginsDirectoryExists();
|
|
63
|
+
const pluginDirectories = await this.discoverPluginDirectories();
|
|
64
|
+
Logger_1.appLogger.info(`Found ${pluginDirectories.length} potential plugin directories`);
|
|
65
|
+
// Load each plugin directory
|
|
66
|
+
for (const pluginDir of pluginDirectories) {
|
|
67
|
+
try {
|
|
68
|
+
await this.loadPlugin(pluginDir);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
Logger_1.appLogger.error(`Failed to load plugin from ${pluginDir}:`, error);
|
|
72
|
+
// Continue loading other plugins even if one fails
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Collect tools from all successfully loaded plugins
|
|
76
|
+
const allTools = [];
|
|
77
|
+
for (const [pluginName, plugin] of this.loadedPlugins) {
|
|
78
|
+
try {
|
|
79
|
+
const tools = await plugin.loadTools();
|
|
80
|
+
for (const tool of tools) {
|
|
81
|
+
// Validate that the tool has required properties
|
|
82
|
+
if (!tool.name ||
|
|
83
|
+
typeof tool.call !== 'function' ||
|
|
84
|
+
typeof tool.callFromGpt !== 'function') {
|
|
85
|
+
Logger_1.appLogger.warn(`Invalid tool from plugin ${pluginName}: missing required properties`);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
// Check for tool name conflicts
|
|
89
|
+
if (this.loadedTools.has(tool.name)) {
|
|
90
|
+
Logger_1.appLogger.warn(`Tool name conflict: '${tool.name}' is already loaded. Skipping duplicate from plugin ${pluginName}`);
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
this.loadedTools.set(tool.name, tool);
|
|
94
|
+
allTools.push(tool);
|
|
95
|
+
Logger_1.appLogger.info(`Loaded tool '${tool.name}' from plugin ${pluginName}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
Logger_1.appLogger.error(`Failed to load tools from plugin ${pluginName}:`, error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
Logger_1.appLogger.info(`Successfully loaded ${allTools.length} tools from ${this.loadedPlugins.size} plugins`);
|
|
103
|
+
return allTools;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
Logger_1.appLogger.error('Failed to load plugins:', error);
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Reloads all plugins. Useful for development or when plugins are updated.
|
|
112
|
+
*/
|
|
113
|
+
async reloadAllPlugins() {
|
|
114
|
+
Logger_1.appLogger.info('Reloading all plugins...');
|
|
115
|
+
// Clear existing loaded plugins and tools
|
|
116
|
+
this.loadedPlugins.clear();
|
|
117
|
+
this.loadedTools.clear();
|
|
118
|
+
// Clear the Node.js module cache for plugin directories
|
|
119
|
+
await this.clearPluginModuleCache();
|
|
120
|
+
return this.loadAllTools();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Gets information about currently loaded plugins.
|
|
124
|
+
*/
|
|
125
|
+
getLoadedPluginsInfo() {
|
|
126
|
+
const info = [];
|
|
127
|
+
for (const [pluginName, _plugin] of this.loadedPlugins) {
|
|
128
|
+
const toolNames = Array.from(this.loadedTools.entries())
|
|
129
|
+
.filter(([_, tool]) => tool.name) // This is a bit of a hack since we don't track which plugin provided which tool
|
|
130
|
+
.map(([name, _]) => name);
|
|
131
|
+
info.push({
|
|
132
|
+
name: pluginName,
|
|
133
|
+
toolCount: toolNames.length,
|
|
134
|
+
toolNames: toolNames,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return info;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Ensures the plugins directory exists.
|
|
141
|
+
*/
|
|
142
|
+
async ensurePluginsDirectoryExists() {
|
|
143
|
+
try {
|
|
144
|
+
await fs.access(this.pluginsPath);
|
|
145
|
+
}
|
|
146
|
+
catch (_error) {
|
|
147
|
+
// Directory doesn't exist, create it
|
|
148
|
+
Logger_1.appLogger.info(`Creating plugins directory: ${this.pluginsPath}`);
|
|
149
|
+
await fs.mkdir(this.pluginsPath, { recursive: true });
|
|
150
|
+
// Create a simple README file to explain the directory
|
|
151
|
+
const readmePath = path.join(this.pluginsPath, 'README.md');
|
|
152
|
+
const readmeContent = `# Donobu Tool Plugins
|
|
153
|
+
|
|
154
|
+
This directory contains custom tool plugins for Donobu.
|
|
155
|
+
|
|
156
|
+
## Creating a Plugin
|
|
157
|
+
|
|
158
|
+
Create a directory with a package.json file that has a "main" field pointing to your plugin entry point:
|
|
159
|
+
|
|
160
|
+
\`\`\`json
|
|
161
|
+
{
|
|
162
|
+
"name": "my-plugin",
|
|
163
|
+
"main": "dist/src/Plugin.js"
|
|
164
|
+
}
|
|
165
|
+
\`\`\`
|
|
166
|
+
|
|
167
|
+
The main file should export a class implementing the DonobuToolPlugin interface as the default export:
|
|
168
|
+
|
|
169
|
+
\`\`\`typescript
|
|
170
|
+
import { DonobuToolPlugin } from 'donobu/models/DonobuToolPlugin';
|
|
171
|
+
import { Tool } from 'donobu/tools/Tool';
|
|
172
|
+
|
|
173
|
+
export default class MyPlugin implements DonobuToolPlugin {
|
|
174
|
+
async loadTools(): Promise<Tool<any, any>[]> {
|
|
175
|
+
return [
|
|
176
|
+
// Your custom tools here
|
|
177
|
+
];
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
## Directory Structure
|
|
183
|
+
|
|
184
|
+
\`\`\`
|
|
185
|
+
plugins/
|
|
186
|
+
└── my-plugin/
|
|
187
|
+
├── package.json
|
|
188
|
+
└── dist/
|
|
189
|
+
└── src/
|
|
190
|
+
└── Plugin.js
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
## Error Handling
|
|
194
|
+
|
|
195
|
+
If a plugin fails to load, Donobu will log the error and continue loading other plugins.
|
|
196
|
+
`;
|
|
197
|
+
try {
|
|
198
|
+
await fs.writeFile(readmePath, readmeContent, 'utf8');
|
|
199
|
+
}
|
|
200
|
+
catch (writeError) {
|
|
201
|
+
// Don't fail if we can't write the README
|
|
202
|
+
Logger_1.appLogger.warn('Could not create plugins README file:', writeError);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Discovers plugin directories in the plugins directory.
|
|
208
|
+
* Only returns directories that contain a package.json file.
|
|
209
|
+
*/
|
|
210
|
+
async discoverPluginDirectories() {
|
|
211
|
+
try {
|
|
212
|
+
const entries = await fs.readdir(this.pluginsPath, {
|
|
213
|
+
withFileTypes: true,
|
|
214
|
+
});
|
|
215
|
+
const pluginDirectories = [];
|
|
216
|
+
for (const entry of entries) {
|
|
217
|
+
if (entry.isDirectory() && !entry.name.startsWith('.')) {
|
|
218
|
+
const pluginDir = path.join(this.pluginsPath, entry.name);
|
|
219
|
+
const packageJsonPath = path.join(pluginDir, 'package.json');
|
|
220
|
+
try {
|
|
221
|
+
await fs.access(packageJsonPath);
|
|
222
|
+
pluginDirectories.push(pluginDir);
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// No package.json, skip this directory
|
|
226
|
+
Logger_1.appLogger.debug(`Skipping directory ${entry.name} - no package.json found`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return pluginDirectories;
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
Logger_1.appLogger.error('Failed to read plugins directory:', error);
|
|
234
|
+
return [];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Loads a single plugin directory.
|
|
239
|
+
*/
|
|
240
|
+
async loadPlugin(pluginDir) {
|
|
241
|
+
const pluginName = path.basename(pluginDir);
|
|
242
|
+
Logger_1.appLogger.debug(`Loading plugin: ${pluginName} from ${pluginDir}`);
|
|
243
|
+
try {
|
|
244
|
+
// Clear any existing cache for this module
|
|
245
|
+
try {
|
|
246
|
+
const resolvedPath = require.resolve(pluginDir);
|
|
247
|
+
delete require.cache[resolvedPath];
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// Module not cached, continue
|
|
251
|
+
}
|
|
252
|
+
// Use require() which will automatically use package.json main field
|
|
253
|
+
let PluginClass = require(pluginDir);
|
|
254
|
+
// Handle both default export and direct export
|
|
255
|
+
if (PluginClass.default) {
|
|
256
|
+
PluginClass = PluginClass.default;
|
|
257
|
+
}
|
|
258
|
+
// Validate that we got a constructor function or class
|
|
259
|
+
if (typeof PluginClass !== 'function') {
|
|
260
|
+
throw new Error(`Plugin ${pluginName} does not export a constructor function or class`);
|
|
261
|
+
}
|
|
262
|
+
// Create an instance of the plugin
|
|
263
|
+
const pluginInstance = new PluginClass();
|
|
264
|
+
// Validate that the instance implements the DonobuToolPlugin interface
|
|
265
|
+
if (typeof pluginInstance.loadTools !== 'function') {
|
|
266
|
+
throw new Error(`Plugin ${pluginName} does not implement the DonobuToolPlugin interface (missing loadTools method)`);
|
|
267
|
+
}
|
|
268
|
+
// Store the successfully loaded plugin
|
|
269
|
+
this.loadedPlugins.set(pluginName, pluginInstance);
|
|
270
|
+
Logger_1.appLogger.info(`Successfully loaded plugin: ${pluginName}`);
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
Logger_1.appLogger.error(`Failed to load plugin ${pluginName}:`, error);
|
|
274
|
+
throw error;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Clears the Node.js module cache for plugin directories to enable reloading.
|
|
279
|
+
*/
|
|
280
|
+
async clearPluginModuleCache() {
|
|
281
|
+
try {
|
|
282
|
+
const pluginDirectories = await this.discoverPluginDirectories();
|
|
283
|
+
for (const pluginDir of pluginDirectories) {
|
|
284
|
+
try {
|
|
285
|
+
const resolvedPath = require.resolve(pluginDir);
|
|
286
|
+
delete require.cache[resolvedPath];
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
// It's okay if the module wasn't cached
|
|
290
|
+
Logger_1.appLogger.debug(`Could not clear cache for ${pluginDir}:`, error);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
Logger_1.appLogger.warn('Failed to clear plugin module cache:', error);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
exports.ToolsPluginsLoader = ToolsPluginsLoader;
|
|
300
|
+
ToolsPluginsLoader.PLUGINS_DIRECTORY = 'plugins';
|
|
301
|
+
//# sourceMappingURL=ToolsPluginsLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsPluginsLoader.js","sourceRoot":"","sources":["../../../src/utils/ToolsPluginsLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnparseableJsonBodyException.d.ts","sourceRoot":"","sources":["../../src/exceptions/UnparseableJsonBodyException.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"UnparseableJsonBodyException.d.ts","sourceRoot":"","sources":["../../src/exceptions/UnparseableJsonBodyException.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,4BAA6B,SAAQ,eAAe;;CAIhE"}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnparseableJsonBodyException = void 0;
|
|
4
4
|
const DonobuException_1 = require("./DonobuException");
|
|
5
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
6
5
|
class UnparseableJsonBodyException extends DonobuException_1.DonobuException {
|
|
7
|
-
constructor(
|
|
8
|
-
super(`The body for this request is not parseable to the expected JSON
|
|
6
|
+
constructor() {
|
|
7
|
+
super(`The body for this request is not parseable to the expected JSON`);
|
|
9
8
|
}
|
|
10
9
|
}
|
|
11
10
|
exports.UnparseableJsonBodyException = UnparseableJsonBodyException;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnparseableJsonBodyException.js","sourceRoot":"","sources":["../../src/exceptions/UnparseableJsonBodyException.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;
|
|
1
|
+
{"version":3,"file":"UnparseableJsonBodyException.js","sourceRoot":"","sources":["../../src/exceptions/UnparseableJsonBodyException.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAEpD,MAAa,4BAA6B,SAAQ,iCAAe;IAC/D;QACE,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC3E,CAAC;CACF;AAJD,oEAIC"}
|
|
@@ -2,18 +2,18 @@ import type { Page } from '@playwright/test';
|
|
|
2
2
|
import { ToolCallResult } from '../models/ToolCallResult';
|
|
3
3
|
import { GptClient } from '../clients/GptClient';
|
|
4
4
|
import { LanguageModel } from 'ai';
|
|
5
|
-
import {
|
|
5
|
+
import { AnalyzePageTextCoreParameters } from '../tools/AnalyzePageTextTool';
|
|
6
6
|
import { JSONSchema7 } from 'json-schema';
|
|
7
7
|
import { FlowMetadata } from '../models/FlowMetadata';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
8
|
+
import { AssertPageTextCoreParameters } from '../tools/AssertPageTextTool';
|
|
9
|
+
import { AssertCoreSchema } from '../tools/AssertTool';
|
|
10
|
+
import { ChooseSelectOptionNonGptSchema } from '../tools/ChooseSelectOptionTool';
|
|
11
|
+
import { InputRandomizedEmailAddressNonGptSchema } from '../tools/InputRandomizedEmailAddressTool';
|
|
12
|
+
import { InputTextNonGptSchema } from '../tools/InputTextTool';
|
|
13
|
+
import { PressKeyNonGptSchema } from '../tools/PressKeyTool';
|
|
14
|
+
import { ScrollPageCoreSchema } from '../tools/ScrollPageTool';
|
|
15
|
+
import { SelectorBasedSchema } from '../tools/ReplayableInteraction';
|
|
16
|
+
import { z } from 'zod';
|
|
17
17
|
/**
|
|
18
18
|
* Extends the Page object with additional test-related methods.
|
|
19
19
|
*/
|
|
@@ -32,11 +32,11 @@ export interface DonobuExtendedPage extends Page {
|
|
|
32
32
|
* perhaps context given in another message, prompt, overall object, etc, then provide it in the
|
|
33
33
|
* "additionalRelevantContext" parameter.
|
|
34
34
|
*/
|
|
35
|
-
analyzePageText(params:
|
|
35
|
+
analyzePageText(params: z.infer<typeof AnalyzePageTextCoreParameters>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
36
36
|
/**
|
|
37
37
|
* Assert that given text is visible in the current page.
|
|
38
38
|
*/
|
|
39
|
-
assertPageText(params:
|
|
39
|
+
assertPageText(params: z.infer<typeof AssertPageTextCoreParameters>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
40
40
|
/**
|
|
41
41
|
* Checks all of the pages in the current browser context and returns the one
|
|
42
42
|
* matching the given URL.
|
|
@@ -45,11 +45,11 @@ export interface DonobuExtendedPage extends Page {
|
|
|
45
45
|
/**
|
|
46
46
|
* Choose <option> values for a particular <select> HTML element.
|
|
47
47
|
*/
|
|
48
|
-
chooseSelectOption(params:
|
|
48
|
+
chooseSelectOption(params: z.infer<typeof ChooseSelectOptionNonGptSchema>): Promise<ToolCallResult>;
|
|
49
49
|
/**
|
|
50
50
|
* Click an element on a webpage.
|
|
51
51
|
*/
|
|
52
|
-
clickElement(params:
|
|
52
|
+
clickElement(params: z.infer<typeof SelectorBasedSchema>): Promise<ToolCallResult>;
|
|
53
53
|
/**
|
|
54
54
|
* Perform an analysis of the cookies for the current web browsing session.
|
|
55
55
|
*/
|
|
@@ -68,18 +68,18 @@ export interface DonobuExtendedPage extends Page {
|
|
|
68
68
|
/**
|
|
69
69
|
* Hover the mouse over a specified element on a webpage.
|
|
70
70
|
*/
|
|
71
|
-
hoverOverElement(params:
|
|
71
|
+
hoverOverElement(params: z.infer<typeof SelectorBasedSchema>): Promise<ToolCallResult>;
|
|
72
72
|
/**
|
|
73
73
|
* Create a new randomized email address based on a given email and inputs it to a specific input text field.
|
|
74
74
|
* For example if passed "foo@gmail.com", this tool will create "foo+SOMETHING_RANDOM@gmail.com", where
|
|
75
75
|
* SOMETHING_RANDOM is a random string of characters safe for use in an email address, and input it in the
|
|
76
76
|
* specified text field.
|
|
77
77
|
*/
|
|
78
|
-
inputRandomizedEmailAddress(params:
|
|
78
|
+
inputRandomizedEmailAddress(params: z.infer<typeof InputRandomizedEmailAddressNonGptSchema>): Promise<ToolCallResult>;
|
|
79
79
|
/**
|
|
80
80
|
* Input text to a webpage's text input box.
|
|
81
81
|
*/
|
|
82
|
-
inputText(params:
|
|
82
|
+
inputText(params: z.infer<typeof InputTextNonGptSchema>): Promise<ToolCallResult>;
|
|
83
83
|
/**
|
|
84
84
|
* Press a single key. Note that if there is existing text in the element, it is appended rather than cleared.
|
|
85
85
|
*
|
|
@@ -87,7 +87,7 @@ export interface DonobuExtendedPage extends Page {
|
|
|
87
87
|
* and it allows the input of multiple characters at a time. The only advantage this tool has is
|
|
88
88
|
* that it allows the passing of control keys like "Tab", "Backspace", etc.
|
|
89
89
|
*/
|
|
90
|
-
pressKey(params:
|
|
90
|
+
pressKey(params: z.infer<typeof PressKeyNonGptSchema>): Promise<ToolCallResult>;
|
|
91
91
|
/**
|
|
92
92
|
* Run an web accessibility (i.e. axe-core) test on the current webpage.
|
|
93
93
|
*/
|
|
@@ -95,12 +95,12 @@ export interface DonobuExtendedPage extends Page {
|
|
|
95
95
|
/**
|
|
96
96
|
* Scroll the current page up or down by one viewport.
|
|
97
97
|
*/
|
|
98
|
-
scroll(params:
|
|
98
|
+
scroll(params: z.infer<typeof ScrollPageCoreSchema>): Promise<ToolCallResult>;
|
|
99
99
|
/**
|
|
100
100
|
* Visually assert that a given condition (i.e. the 'assertionToTestFor' field) holds true, using a screenshot of
|
|
101
101
|
* the current webpage.
|
|
102
102
|
*/
|
|
103
|
-
visuallyAssert(params:
|
|
103
|
+
visuallyAssert(params: z.infer<typeof AssertCoreSchema>, gptClientOverride?: GptClient | LanguageModel): Promise<ToolCallResult>;
|
|
104
104
|
_donobuFlowMetadata: FlowMetadata;
|
|
105
105
|
}
|
|
106
106
|
//# sourceMappingURL=DonobuExtendedPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DonobuExtendedPage.d.ts","sourceRoot":"","sources":["../../src/lib/DonobuExtendedPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { TestFixture } from '@playwright/test';
|
|
2
2
|
import { BrowserStorageState } from '../../models/BrowserStorageState';
|
|
3
3
|
import { BrowserStateReference } from '../../models/BrowserStateFlowReference';
|
|
4
|
+
export * from '../../models/BrowserStorageState';
|
|
5
|
+
export * from '../../models/BrowserStateFlowReference';
|
|
4
6
|
export declare function getBrowserStorageState(flowIdOrName: BrowserStateReference): Promise<BrowserStorageState>;
|
|
5
7
|
export declare function getBrowserStorageStateFixture(flowIdOrName: BrowserStateReference): TestFixture<BrowserStorageState, any>;
|
|
6
8
|
//# sourceMappingURL=browserState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserState.d.ts","sourceRoot":"","sources":["../../../src/lib/fixtures/browserState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAG/E,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,qBAAqB,GAClC,WAAW,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAOvC"}
|
|
1
|
+
{"version":3,"file":"browserState.d.ts","sourceRoot":"","sources":["../../../src/lib/fixtures/browserState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAG/E,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AAEvD,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAgB,6BAA6B,CAC3C,YAAY,EAAE,qBAAqB,GAClC,WAAW,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAOvC"}
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
17
|
exports.getBrowserStorageState = getBrowserStorageState;
|
|
4
18
|
exports.getBrowserStorageStateFixture = getBrowserStorageStateFixture;
|
|
5
19
|
const donobuTestStack_1 = require("../utils/donobuTestStack");
|
|
20
|
+
__exportStar(require("../../models/BrowserStorageState"), exports);
|
|
21
|
+
__exportStar(require("../../models/BrowserStateFlowReference"), exports);
|
|
6
22
|
async function getBrowserStorageState(flowIdOrName) {
|
|
7
23
|
return (await (0, donobuTestStack_1.getOrCreateDonobuStack)()).flowsManager.getBrowserStorageState(flowIdOrName);
|
|
8
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserState.js","sourceRoot":"","sources":["../../../src/lib/fixtures/browserState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browserState.js","sourceRoot":"","sources":["../../../src/lib/fixtures/browserState.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAQA,wDAMC;AAED,sEASC;AAtBD,8DAAkE;AAElE,mEAAiD;AACjD,yEAAuD;AAEhD,KAAK,UAAU,sBAAsB,CAC1C,YAAmC;IAEnC,OAAO,CAAC,MAAM,IAAA,wCAAsB,GAAE,CAAC,CAAC,YAAY,CAAC,sBAAsB,CACzE,YAAY,CACb,CAAC;AACJ,CAAC;AAED,SAAgB,6BAA6B,CAC3C,YAAmC;IAEnC,OAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,IAAA,wCAAsB,GAAE,CAC/B,CAAC,YAAY,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../src/lib/testExtension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testExtension.d.ts","sourceRoot":"","sources":["../../src/lib/testExtension.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAoDjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAMpE,cAAc,iBAAiB,CAAC;AAIhC,eAAO,MAAM,IAAI;mBACA,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;gBACrD,SAAS;UACf,kBAAkB;wGAsaxB,CAAC"}
|
|
@@ -13,9 +13,13 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
13
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
16
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
20
|
exports.test = void 0;
|
|
18
21
|
const test_1 = require("@playwright/test");
|
|
22
|
+
const yn_1 = __importDefault(require("yn"));
|
|
19
23
|
const uuid_1 = require("uuid");
|
|
20
24
|
const GptClient_1 = require("../clients/GptClient");
|
|
21
25
|
const VercelAiGptClient_1 = require("../clients/VercelAiGptClient");
|
|
@@ -47,6 +51,7 @@ const PressKeyTool_1 = require("../tools/PressKeyTool");
|
|
|
47
51
|
const RunAccessibilityTestTool_1 = require("../tools/RunAccessibilityTestTool");
|
|
48
52
|
const ScrollPageTool_1 = require("../tools/ScrollPageTool");
|
|
49
53
|
const BrowserUtils_1 = require("../utils/BrowserUtils");
|
|
54
|
+
const JsonSchemaUtils_1 = require("../utils/JsonSchemaUtils");
|
|
50
55
|
__exportStar(require("playwright/test"), exports);
|
|
51
56
|
const PLACEHOLDER_FLOW_URL = 'https://example.com';
|
|
52
57
|
exports.test = test_1.test.extend({
|
|
@@ -298,7 +303,7 @@ exports.test = test_1.test.extend({
|
|
|
298
303
|
const persistenceLayer = await donobu.flowsPersistenceFactory.createPersistenceLayer();
|
|
299
304
|
const toolCallHistory = await persistenceLayer.getToolCalls(page._donobuFlowMetadata.id);
|
|
300
305
|
const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(params.instruction ??
|
|
301
|
-
'Generate an object conforming to the given JSON-schema', params.schema, page, toolCallHistory, finalGptClient);
|
|
306
|
+
'Generate an object conforming to the given JSON-schema', (0, JsonSchemaUtils_1.jsonSchemaToZod)(params.schema), page, toolCallHistory, finalGptClient);
|
|
302
307
|
page._donobuFlowMetadata.resultJsonSchema = params.schema;
|
|
303
308
|
page._donobuFlowMetadata.result = structuredOutputMessage.output;
|
|
304
309
|
await persistenceLayer.setFlowMetadata(page._donobuFlowMetadata);
|
|
@@ -363,9 +368,7 @@ exports.test = test_1.test.extend({
|
|
|
363
368
|
// Log but don't throw, to ensure cleanup continues.
|
|
364
369
|
Logger_1.appLogger.error('Error during test cleanup:', error);
|
|
365
370
|
}
|
|
366
|
-
|
|
367
|
-
if (page._donobuFlowMetadata.state === 'FAILED' &&
|
|
368
|
-
(isSelfHealEnabledEnvVar === 'true' || isSelfHealEnabledEnvVar === '1')) {
|
|
371
|
+
if (shouldSelfHeal(page._donobuFlowMetadata, testInfo)) {
|
|
369
372
|
if (gptClient) {
|
|
370
373
|
try {
|
|
371
374
|
await (0, selfHealing_1.selfHeal)(gptClient, testInfo, page._donobuFlowMetadata);
|
|
@@ -381,4 +384,24 @@ exports.test = test_1.test.extend({
|
|
|
381
384
|
}
|
|
382
385
|
},
|
|
383
386
|
});
|
|
387
|
+
/**
|
|
388
|
+
* Returns true IFF the given flow should attempt to be self healed.
|
|
389
|
+
*/
|
|
390
|
+
function shouldSelfHeal(flowMetadata, testInfo) {
|
|
391
|
+
if (flowMetadata.state !== 'FAILED') {
|
|
392
|
+
// Nothing to self-heal if the flow did not fail.
|
|
393
|
+
return false;
|
|
394
|
+
}
|
|
395
|
+
else if (envVars_1.ENV_VAR_NAMES.SELF_HEAL_TESTS_ENABLED in testInfo.project.metadata) {
|
|
396
|
+
// Check project-specific metadata. This takes priority if it exists.
|
|
397
|
+
const isSelfHealEnabledForProject = (0, yn_1.default)(testInfo.project.metadata[envVars_1.ENV_VAR_NAMES.SELF_HEAL_TESTS_ENABLED]) ??
|
|
398
|
+
false;
|
|
399
|
+
return isSelfHealEnabledForProject;
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
// Failover to checking the environment variable.
|
|
403
|
+
const isSelfHealEnabledViaEnvVar = (0, yn_1.default)(process.env[envVars_1.ENV_VAR_NAMES.SELF_HEAL_TESTS_ENABLED]?.trim()) ?? false;
|
|
404
|
+
return isSelfHealEnabledViaEnvVar;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
384
407
|
//# sourceMappingURL=testExtension.js.map
|