donobu 2.20.1 → 2.21.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/AgentsApi.d.ts +45 -1
- package/dist/apis/AgentsApi.d.ts.map +1 -1
- package/dist/apis/AgentsApi.js +53 -4
- package/dist/apis/AgentsApi.js.map +1 -1
- package/dist/apis/AskAiApi.d.ts.map +1 -1
- package/dist/apis/AskAiApi.js +20 -9
- package/dist/apis/AskAiApi.js.map +1 -1
- package/dist/apis/DefaultApiAuthApi.d.ts +41 -5
- package/dist/apis/DefaultApiAuthApi.d.ts.map +1 -1
- package/dist/apis/DefaultApiAuthApi.js +45 -13
- package/dist/apis/DefaultApiAuthApi.js.map +1 -1
- package/dist/apis/EnvDataApi.d.ts.map +1 -1
- package/dist/apis/EnvDataApi.js +8 -13
- package/dist/apis/EnvDataApi.js.map +1 -1
- package/dist/apis/FlowsApi.d.ts +256 -12
- package/dist/apis/FlowsApi.d.ts.map +1 -1
- package/dist/apis/FlowsApi.js +265 -36
- package/dist/apis/FlowsApi.js.map +1 -1
- package/dist/apis/FlowsFilesApi.d.ts +46 -0
- package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/apis/FlowsFilesApi.js +46 -0
- package/dist/apis/FlowsFilesApi.js.map +1 -1
- package/dist/apis/FlowsToolCallsApi.d.ts +81 -3
- package/dist/apis/FlowsToolCallsApi.d.ts.map +1 -1
- package/dist/apis/FlowsToolCallsApi.js +84 -6
- package/dist/apis/FlowsToolCallsApi.js.map +1 -1
- package/dist/apis/GptConfigsApi.d.ts +74 -1
- package/dist/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/apis/GptConfigsApi.js +78 -4
- package/dist/apis/GptConfigsApi.js.map +1 -1
- package/dist/apis/PingApi.d.ts +0 -3
- package/dist/apis/PingApi.d.ts.map +1 -1
- package/dist/apis/PingApi.js +0 -3
- package/dist/apis/PingApi.js.map +1 -1
- package/dist/apis/SpecialFlowsApi.d.ts +0 -1
- package/dist/apis/SpecialFlowsApi.d.ts.map +1 -1
- package/dist/apis/SpecialFlowsApi.js +17 -36
- package/dist/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/apis/VersionApi.d.ts +1 -4
- package/dist/apis/VersionApi.d.ts.map +1 -1
- package/dist/apis/VersionApi.js +1 -4
- package/dist/apis/VersionApi.js.map +1 -1
- package/dist/assets/control-panel.js +58 -44
- package/dist/assets/generated/version +1 -1
- package/dist/bindings/NamedBindingCallback.d.ts +1 -1
- package/dist/bindings/NamedBindingCallback.d.ts.map +1 -1
- package/dist/bindings/ProposeToolCall.d.ts +1 -1
- package/dist/bindings/ProposeToolCall.d.ts.map +1 -1
- package/dist/bindings/ProposeToolCall.js +24 -4
- package/dist/bindings/ProposeToolCall.js.map +1 -1
- package/dist/bindings/ToggleDonobuAnnotations.d.ts +4 -4
- package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
- package/dist/bindings/ToggleDonobuAnnotations.js +24 -8
- package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +1 -2
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.js +6 -7
- package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/clients/GoogleGptClient.d.ts +1 -2
- package/dist/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/clients/GoogleGptClient.js +4 -5
- package/dist/clients/GoogleGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/clients/VercelAiGptClient.js +4 -0
- package/dist/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/apis/AgentsApi.d.ts +45 -1
- package/dist/esm/apis/AgentsApi.d.ts.map +1 -1
- package/dist/esm/apis/AgentsApi.js +53 -4
- package/dist/esm/apis/AgentsApi.js.map +1 -1
- package/dist/esm/apis/AskAiApi.d.ts.map +1 -1
- package/dist/esm/apis/AskAiApi.js +20 -9
- package/dist/esm/apis/AskAiApi.js.map +1 -1
- package/dist/esm/apis/DefaultApiAuthApi.d.ts +41 -5
- package/dist/esm/apis/DefaultApiAuthApi.d.ts.map +1 -1
- package/dist/esm/apis/DefaultApiAuthApi.js +45 -13
- package/dist/esm/apis/DefaultApiAuthApi.js.map +1 -1
- package/dist/esm/apis/EnvDataApi.d.ts.map +1 -1
- package/dist/esm/apis/EnvDataApi.js +8 -13
- package/dist/esm/apis/EnvDataApi.js.map +1 -1
- package/dist/esm/apis/FlowsApi.d.ts +256 -12
- package/dist/esm/apis/FlowsApi.d.ts.map +1 -1
- package/dist/esm/apis/FlowsApi.js +265 -36
- package/dist/esm/apis/FlowsApi.js.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.d.ts +46 -0
- package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
- package/dist/esm/apis/FlowsFilesApi.js +46 -0
- package/dist/esm/apis/FlowsFilesApi.js.map +1 -1
- package/dist/esm/apis/FlowsToolCallsApi.d.ts +81 -3
- package/dist/esm/apis/FlowsToolCallsApi.d.ts.map +1 -1
- package/dist/esm/apis/FlowsToolCallsApi.js +84 -6
- package/dist/esm/apis/FlowsToolCallsApi.js.map +1 -1
- package/dist/esm/apis/GptConfigsApi.d.ts +74 -1
- package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/esm/apis/GptConfigsApi.js +78 -4
- package/dist/esm/apis/GptConfigsApi.js.map +1 -1
- package/dist/esm/apis/PingApi.d.ts +0 -3
- package/dist/esm/apis/PingApi.d.ts.map +1 -1
- package/dist/esm/apis/PingApi.js +0 -3
- package/dist/esm/apis/PingApi.js.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.js +17 -36
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/esm/apis/VersionApi.d.ts +1 -4
- package/dist/esm/apis/VersionApi.d.ts.map +1 -1
- package/dist/esm/apis/VersionApi.js +1 -4
- package/dist/esm/apis/VersionApi.js.map +1 -1
- package/dist/esm/assets/control-panel.js +58 -44
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/bindings/NamedBindingCallback.d.ts +1 -1
- package/dist/esm/bindings/NamedBindingCallback.d.ts.map +1 -1
- package/dist/esm/bindings/ProposeToolCall.d.ts +1 -1
- package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -1
- package/dist/esm/bindings/ProposeToolCall.js +24 -4
- package/dist/esm/bindings/ProposeToolCall.js.map +1 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +4 -4
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.js +24 -8
- package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +1 -2
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +6 -7
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/esm/clients/GoogleGptClient.d.ts +1 -2
- package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
- package/dist/esm/clients/GoogleGptClient.js +4 -5
- package/dist/esm/clients/GoogleGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.js +4 -0
- package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js +1 -2
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts +76 -2
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +186 -89
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts +2 -2
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.d.ts +39 -3
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +88 -1
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +3 -7
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +70 -70
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +2 -1
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +7 -4
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/FlowDependencyAnalyzer.d.ts +1 -1
- package/dist/esm/managers/FlowDependencyAnalyzer.d.ts.map +1 -1
- package/dist/esm/managers/FlowDependencyAnalyzer.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts.map +1 -1
- package/dist/esm/managers/PageInspector.js +41 -29
- package/dist/esm/managers/PageInspector.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts +1 -1
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +26 -2
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/BrowserConfig.d.ts +10 -0
- package/dist/esm/models/BrowserConfig.d.ts.map +1 -1
- package/dist/esm/models/BrowserConfig.js +4 -0
- package/dist/esm/models/BrowserConfig.js.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.d.ts +358 -47
- package/dist/esm/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.js +49 -44
- package/dist/esm/models/CreateDonobuFlow.js.map +1 -1
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.d.ts +31 -5
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.d.ts.map +1 -1
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.js +50 -0
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.js.map +1 -1
- package/dist/esm/models/FlowMetadata.d.ts +9 -0
- package/dist/esm/models/FlowMetadata.d.ts.map +1 -1
- package/dist/esm/models/FlowMetadata.js +29 -11
- package/dist/esm/models/FlowMetadata.js.map +1 -1
- package/dist/esm/models/GptConfig.d.ts +185 -35
- package/dist/esm/models/GptConfig.d.ts.map +1 -1
- package/dist/esm/models/GptConfig.js +60 -0
- package/dist/esm/models/GptConfig.js.map +1 -1
- package/dist/esm/models/GptMessage.d.ts +1 -1
- package/dist/esm/models/GptMessage.d.ts.map +1 -1
- package/dist/esm/models/ProposedToolCall.d.ts +15 -16
- package/dist/esm/models/ProposedToolCall.d.ts.map +1 -1
- package/dist/esm/models/ProposedToolCall.js +16 -0
- package/dist/esm/models/ProposedToolCall.js.map +1 -1
- package/dist/esm/models/ToolCall.d.ts +1 -1
- package/dist/esm/models/ToolCall.d.ts.map +1 -1
- package/dist/esm/models/ToolCallContext.d.ts +1 -1
- package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
- package/dist/esm/models/ToolCallResult.d.ts +3 -3
- package/dist/esm/models/ToolCallResult.d.ts.map +1 -1
- package/dist/esm/models/ToolSchema.d.ts +2 -2
- package/dist/esm/models/ToolSchema.d.ts.map +1 -1
- package/dist/esm/models/ToolSchema.js +3 -3
- package/dist/esm/models/ToolSchema.js.map +1 -1
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts +4 -4
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts.map +1 -1
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js +1 -1
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js.map +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
- package/dist/esm/tools/AssertPageTextTool.js +1 -1
- package/dist/esm/tools/AssertPageTool.js +1 -1
- package/dist/esm/tools/AssertTool.js +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.js +1 -1
- package/dist/esm/tools/ClickTool.d.ts +3 -3
- package/dist/esm/tools/ClickTool.d.ts.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.d.ts +4 -4
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts.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 +0 -11
- package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js +5 -93
- package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/esm/tools/DownloadPdfTool.js +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts +32 -10
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts.map +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +112 -11
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts +3 -3
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts.map +1 -1
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js +2 -2
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js.map +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
- package/dist/esm/tools/GoToWebpageTool.js +1 -1
- package/dist/esm/tools/HandleBrowserDialogTool.js +1 -1
- package/dist/esm/tools/HoverOverElementTool.d.ts +3 -3
- 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/MakeCommentTool.js +1 -1
- package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts +3 -3
- package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts.map +1 -1
- package/dist/esm/tools/MarkObjectiveCompleteTool.js +2 -2
- package/dist/esm/tools/MarkObjectiveCompleteTool.js.map +1 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts +4 -4
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts.map +1 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js +1 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js.map +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
- package/dist/esm/tools/PauseForUserInteractionTool.d.ts +4 -4
- package/dist/esm/tools/PauseForUserInteractionTool.d.ts.map +1 -1
- package/dist/esm/tools/PauseForUserInteractionTool.js +1 -1
- package/dist/esm/tools/PauseForUserInteractionTool.js.map +1 -1
- package/dist/esm/tools/ReloadPageTool.d.ts +4 -4
- package/dist/esm/tools/ReloadPageTool.d.ts.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 +2 -3
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.js +1 -1
- package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +4 -4
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts +4 -4
- package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts.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.js +1 -1
- package/dist/esm/tools/SetRunModeTool.js +1 -1
- package/dist/esm/tools/SummarizeLearningsTool.js +1 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +963 -319
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.js +1 -1
- package/dist/esm/tools/WaitTool.js +1 -1
- package/dist/esm/utils/TemplateInterpolator.d.ts +1 -1
- package/dist/esm/utils/TemplateInterpolator.d.ts.map +1 -1
- package/dist/esm/utils/TemplateInterpolator.js.map +1 -1
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/lib/utils/donobuTestStack.js +1 -2
- package/dist/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts +76 -2
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +186 -89
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts +2 -2
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/DonobuFlow.d.ts +39 -3
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +88 -1
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +3 -7
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +70 -70
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +2 -1
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +7 -4
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/FlowDependencyAnalyzer.d.ts +1 -1
- package/dist/managers/FlowDependencyAnalyzer.d.ts.map +1 -1
- package/dist/managers/FlowDependencyAnalyzer.js.map +1 -1
- package/dist/managers/PageInspector.d.ts.map +1 -1
- package/dist/managers/PageInspector.js +41 -29
- package/dist/managers/PageInspector.js.map +1 -1
- package/dist/managers/ToolManager.d.ts +1 -1
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +26 -2
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/BrowserConfig.d.ts +10 -0
- package/dist/models/BrowserConfig.d.ts.map +1 -1
- package/dist/models/BrowserConfig.js +4 -0
- package/dist/models/BrowserConfig.js.map +1 -1
- package/dist/models/CreateDonobuFlow.d.ts +358 -47
- package/dist/models/CreateDonobuFlow.d.ts.map +1 -1
- package/dist/models/CreateDonobuFlow.js +49 -44
- package/dist/models/CreateDonobuFlow.js.map +1 -1
- package/dist/models/CreateGoogleSteetviewExtractionFlow.d.ts +31 -5
- package/dist/models/CreateGoogleSteetviewExtractionFlow.d.ts.map +1 -1
- package/dist/models/CreateGoogleSteetviewExtractionFlow.js +50 -0
- package/dist/models/CreateGoogleSteetviewExtractionFlow.js.map +1 -1
- package/dist/models/FlowMetadata.d.ts +9 -0
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/models/FlowMetadata.js +29 -11
- package/dist/models/FlowMetadata.js.map +1 -1
- package/dist/models/GptConfig.d.ts +185 -35
- package/dist/models/GptConfig.d.ts.map +1 -1
- package/dist/models/GptConfig.js +60 -0
- package/dist/models/GptConfig.js.map +1 -1
- package/dist/models/GptMessage.d.ts +1 -1
- package/dist/models/GptMessage.d.ts.map +1 -1
- package/dist/models/ProposedToolCall.d.ts +15 -16
- package/dist/models/ProposedToolCall.d.ts.map +1 -1
- package/dist/models/ProposedToolCall.js +16 -0
- package/dist/models/ProposedToolCall.js.map +1 -1
- package/dist/models/ToolCall.d.ts +1 -1
- package/dist/models/ToolCall.d.ts.map +1 -1
- package/dist/models/ToolCallContext.d.ts +1 -1
- package/dist/models/ToolCallContext.d.ts.map +1 -1
- package/dist/models/ToolCallResult.d.ts +3 -3
- package/dist/models/ToolCallResult.d.ts.map +1 -1
- package/dist/models/ToolSchema.d.ts +2 -2
- package/dist/models/ToolSchema.d.ts.map +1 -1
- package/dist/models/ToolSchema.js +3 -3
- package/dist/models/ToolSchema.js.map +1 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts +4 -4
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts.map +1 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.js +1 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.js.map +1 -1
- package/dist/tools/AnalyzePageTextTool.js +1 -1
- package/dist/tools/AssertPageTextTool.js +1 -1
- package/dist/tools/AssertPageTool.js +1 -1
- package/dist/tools/AssertTool.js +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.js +1 -1
- package/dist/tools/ClickTool.d.ts +3 -3
- package/dist/tools/ClickTool.d.ts.map +1 -1
- package/dist/tools/ClickTool.js +1 -1
- package/dist/tools/ClickTool.js.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.d.ts +4 -4
- package/dist/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/tools/CustomToolRunnerTool.d.ts +0 -11
- package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/tools/CustomToolRunnerTool.js +5 -93
- package/dist/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/tools/DownloadPdfTool.js +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts +32 -10
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts.map +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js +112 -11
- package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
- package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts +3 -3
- package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts.map +1 -1
- package/dist/tools/GetEntityDataFromGoogleMapResult.js +2 -2
- package/dist/tools/GetEntityDataFromGoogleMapResult.js.map +1 -1
- package/dist/tools/GoForwardOrBackTool.js +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
- package/dist/tools/GoToWebpageTool.js +1 -1
- package/dist/tools/HandleBrowserDialogTool.js +1 -1
- package/dist/tools/HoverOverElementTool.d.ts +3 -3
- 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/MakeCommentTool.js +1 -1
- package/dist/tools/MarkObjectiveCompleteTool.d.ts +3 -3
- package/dist/tools/MarkObjectiveCompleteTool.d.ts.map +1 -1
- package/dist/tools/MarkObjectiveCompleteTool.js +2 -2
- package/dist/tools/MarkObjectiveCompleteTool.js.map +1 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.d.ts +4 -4
- package/dist/tools/MarkObjectiveNotCompletableTool.d.ts.map +1 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.js +1 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.js.map +1 -1
- package/dist/tools/NavigateWithinStreetView.js +1 -1
- package/dist/tools/PauseForUserInteractionTool.d.ts +4 -4
- package/dist/tools/PauseForUserInteractionTool.d.ts.map +1 -1
- package/dist/tools/PauseForUserInteractionTool.js +1 -1
- package/dist/tools/PauseForUserInteractionTool.js.map +1 -1
- package/dist/tools/ReloadPageTool.d.ts +4 -4
- package/dist/tools/ReloadPageTool.d.ts.map +1 -1
- package/dist/tools/ReloadPageTool.js +1 -1
- package/dist/tools/ReloadPageTool.js.map +1 -1
- package/dist/tools/ReplayableInteraction.d.ts +2 -3
- package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/tools/ReplayableInteraction.js +1 -1
- package/dist/tools/ReplayableInteraction.js.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts +4 -4
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.js +1 -1
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.d.ts +4 -4
- package/dist/tools/SaveWebpageAsPdfTool.d.ts.map +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/tools/ScrollPageTool.js +1 -1
- package/dist/tools/SetRunModeTool.js +1 -1
- package/dist/tools/SummarizeLearningsTool.js +1 -1
- package/dist/tools/TriggerDonobuFlowTool.d.ts +963 -319
- package/dist/tools/TriggerDonobuFlowTool.d.ts.map +1 -1
- package/dist/tools/TriggerDonobuFlowTool.js +1 -1
- package/dist/tools/WaitTool.js +1 -1
- package/dist/utils/TemplateInterpolator.d.ts +1 -1
- package/dist/utils/TemplateInterpolator.d.ts.map +1 -1
- package/dist/utils/TemplateInterpolator.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,16 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowsApi = void 0;
|
|
4
|
+
const CreateDonobuFlow_1 = require("../models/CreateDonobuFlow");
|
|
4
5
|
const FlowMetadata_1 = require("../models/FlowMetadata");
|
|
5
6
|
const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueException");
|
|
6
|
-
const
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
/**
|
|
9
|
+
* API controller for managing Donobu flows throughout their lifecycle.
|
|
10
|
+
*
|
|
11
|
+
* The FlowsApi provides endpoints for creating, querying, controlling, and managing
|
|
12
|
+
* Donobu flows. It handles flow metadata operations, code generation, project export,
|
|
13
|
+
* and runtime control operations like pause/resume/cancel.
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* This class serves as the HTTP API layer for the {@link DonobuFlowsManager}, translating
|
|
17
|
+
* REST requests into appropriate manager method calls. All methods are designed to be
|
|
18
|
+
* used as Express.js route handlers.
|
|
19
|
+
*
|
|
20
|
+
* Flow States:
|
|
21
|
+
* - UNSTARTED: Flow created but not yet initialized
|
|
22
|
+
* - INITIALIZING: Setting up browser context and initial state
|
|
23
|
+
* - RUNNING_ACTION: Executing a tool call
|
|
24
|
+
* - QUERYING_LLM_FOR_NEXT_ACTION: AI determining next action (AUTONOMOUS mode)
|
|
25
|
+
* - WAITING_ON_USER_FOR_NEXT_ACTION: Waiting for user input (INSTRUCT mode)
|
|
26
|
+
* - PAUSED: Flow execution temporarily suspended
|
|
27
|
+
* - RESUMING: Transitioning from paused to active state
|
|
28
|
+
* - FAILED: Flow terminated unsuccessfully
|
|
29
|
+
* - SUCCESS: Flow completed successfully
|
|
30
|
+
*/
|
|
7
31
|
class FlowsApi {
|
|
8
32
|
constructor(donobuFlowsManager) {
|
|
9
33
|
this.donobuFlowsManager = donobuFlowsManager;
|
|
10
34
|
}
|
|
11
35
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
36
|
+
* Generates Playwright code that can replay a completed flow.
|
|
37
|
+
*
|
|
38
|
+
* Creates a Node.js Microsoft Playwright script that reproduces the actions
|
|
39
|
+
* taken during the specified flow. The generated code uses the Donobu Playwright
|
|
40
|
+
* extension and can be executed independently.
|
|
41
|
+
*
|
|
42
|
+
* @throws {@link FlowNotFoundException} When the specified flow doesn't exist
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```http
|
|
46
|
+
* GET /api/flows/abc123/code
|
|
47
|
+
*
|
|
48
|
+
* Response:
|
|
49
|
+
* {
|
|
50
|
+
* "script": "import { test } from 'donobu';\n\ntest('My Flow', async ({ page }) => {\n await page.goto('https://example.com');\n // ... more actions\n});"
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
14
53
|
*/
|
|
15
54
|
async getFlowAsCode(req, res) {
|
|
16
55
|
const flowId = req.params.flowId;
|
|
@@ -18,23 +57,64 @@ class FlowsApi {
|
|
|
18
57
|
res.send({ script: draftedPlaywrightScript });
|
|
19
58
|
}
|
|
20
59
|
/**
|
|
21
|
-
* Generates a complete Playwright project structure for multiple flows
|
|
60
|
+
* Generates a complete Playwright project structure for multiple flows.
|
|
61
|
+
*
|
|
62
|
+
* Creates a full Playwright project with proper dependency management, configuration,
|
|
63
|
+
* and test files. Automatically resolves and includes flow dependencies to ensure
|
|
64
|
+
* a complete, runnable project.
|
|
65
|
+
*
|
|
66
|
+
* @throws {@link FlowNotFoundException} When any specified flow doesn't exist
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```http
|
|
70
|
+
* POST /api/flows/project
|
|
71
|
+
* Content-Type: application/json
|
|
72
|
+
*
|
|
73
|
+
* {
|
|
74
|
+
* "flowIds": ["flow1", "flow2", "flow3"]
|
|
75
|
+
* }
|
|
76
|
+
*
|
|
77
|
+
* Response:
|
|
78
|
+
* {
|
|
79
|
+
* "files": [
|
|
80
|
+
* {
|
|
81
|
+
* "path": "tests/login-flow.spec.ts",
|
|
82
|
+
* "content": "import { test } from 'donobu';\n..."
|
|
83
|
+
* },
|
|
84
|
+
* {
|
|
85
|
+
* "path": "playwright.config.ts",
|
|
86
|
+
* "content": "import { defineConfig } from 'donobu';\n..."
|
|
87
|
+
* }
|
|
88
|
+
* ]
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
22
91
|
*/
|
|
23
92
|
async getFlowsAsProject(req, res) {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// Generate the project structure using the flows manager
|
|
29
|
-
const project = await this.donobuFlowsManager.getFlowsAsPlaywrightProject(flowIds);
|
|
93
|
+
const parsedBody = zod_1.z
|
|
94
|
+
.object({ flowIds: zod_1.z.array(zod_1.z.string()) })
|
|
95
|
+
.parse(req.body);
|
|
96
|
+
const project = await this.donobuFlowsManager.getFlowsAsPlaywrightProject(parsedBody.flowIds);
|
|
30
97
|
res.json({
|
|
31
98
|
files: project.files,
|
|
32
99
|
});
|
|
33
100
|
}
|
|
34
101
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* {@link
|
|
102
|
+
* Converts a flow into a rerunnable format.
|
|
103
|
+
*
|
|
104
|
+
* Returns a {@link CreateDonobuFlow} object that can be used to replay the specified
|
|
105
|
+
* flow deterministically. The returned parameters include all original tool calls
|
|
106
|
+
* configured for deterministic execution.
|
|
107
|
+
*
|
|
108
|
+
* @throws {@link FlowNotFoundException} When the specified flow doesn't exist
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```http
|
|
112
|
+
* GET /api/flows/abc123/rerun
|
|
113
|
+
*
|
|
114
|
+
* Response: CreateDonobuFlow object ready for POST to /api/flows
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @public
|
|
38
118
|
*/
|
|
39
119
|
async getFlowAsRerun(req, res) {
|
|
40
120
|
const flowId = req.params.flowId;
|
|
@@ -42,7 +122,41 @@ class FlowsApi {
|
|
|
42
122
|
res.json(createDonobuFlow);
|
|
43
123
|
}
|
|
44
124
|
/**
|
|
45
|
-
*
|
|
125
|
+
* Retrieves paginated flows with optional filtering.
|
|
126
|
+
*
|
|
127
|
+
* Returns a list of flow metadata objects matching the specified criteria.
|
|
128
|
+
* Supports pagination, filtering by name/state/runMode, and time-based filtering.
|
|
129
|
+
* Results are ordered by startedAt timestamp in descending order (newest first).
|
|
130
|
+
*
|
|
131
|
+
* @throws {@link InvalidParamValueException} When query parameters are invalid
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```http
|
|
135
|
+
* GET /api/flows?limit=10&state=SUCCESS&startedAfter=1640995200000
|
|
136
|
+
*
|
|
137
|
+
* Response:
|
|
138
|
+
* {
|
|
139
|
+
* "flows": [
|
|
140
|
+
* {
|
|
141
|
+
* "id": "abc123",
|
|
142
|
+
* "name": "Login Test",
|
|
143
|
+
* "state": "SUCCESS",
|
|
144
|
+
* "startedAt": 1641000000000,
|
|
145
|
+
* // ... other metadata
|
|
146
|
+
* }
|
|
147
|
+
* ],
|
|
148
|
+
* "nextPageToken": "eyJ..."
|
|
149
|
+
* }
|
|
150
|
+
* ```
|
|
151
|
+
*
|
|
152
|
+
* Query Parameters:
|
|
153
|
+
* - `pageToken`: Pagination token for subsequent pages
|
|
154
|
+
* - `limit`: Maximum results per page (1-100, default varies)
|
|
155
|
+
* - `name`: Filter by exact flow name
|
|
156
|
+
* - `runMode`: Filter by execution mode (AUTONOMOUS|INSTRUCT|DETERMINISTIC)
|
|
157
|
+
* - `state`: Filter by current state
|
|
158
|
+
* - `startedAfter`: Unix timestamp - flows started after this time
|
|
159
|
+
* - `startedBefore`: Unix timestamp - flows started before this time
|
|
46
160
|
*/
|
|
47
161
|
async getFlows(req, res) {
|
|
48
162
|
const query = {
|
|
@@ -82,52 +196,123 @@ class FlowsApi {
|
|
|
82
196
|
res.json({ flows: flows.items, nextPageToken: flows.nextPageToken });
|
|
83
197
|
}
|
|
84
198
|
/**
|
|
85
|
-
* Creates a new
|
|
199
|
+
* Creates and starts a new Donobu flow.
|
|
200
|
+
*
|
|
201
|
+
* Validates the provided parameters, creates a new flow instance, and begins
|
|
202
|
+
* execution according to the specified run mode. The flow runs asynchronously
|
|
203
|
+
* after this method returns.
|
|
204
|
+
*
|
|
205
|
+
* @throws {@link InvalidParamValueException} When flow parameters are invalid
|
|
206
|
+
* @throws {@link ToolRequiresGptException} When tools require GPT but none configured
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```http
|
|
210
|
+
* POST /api/flows
|
|
211
|
+
* Content-Type: application/json
|
|
212
|
+
*
|
|
213
|
+
* {
|
|
214
|
+
* "targetWebsite": "https://example.com",
|
|
215
|
+
* "overallObjective": "Sign up for an account",
|
|
216
|
+
* "initialRunMode": "AUTONOMOUS",
|
|
217
|
+
* "maxIterations": 20
|
|
218
|
+
* }
|
|
219
|
+
*
|
|
220
|
+
* Response: FlowMetadata object with state "UNSTARTED" or "INITIALIZING"
|
|
221
|
+
* ```
|
|
86
222
|
*/
|
|
87
223
|
async createFlow(req, res) {
|
|
88
|
-
const flowParams = req.body;
|
|
224
|
+
const flowParams = CreateDonobuFlow_1.CreateDonobuFlowSchema.parse(req.body);
|
|
89
225
|
const flow = (await this.donobuFlowsManager.createFlow(flowParams))
|
|
90
226
|
.donobuFlow;
|
|
91
227
|
res.json(flow.metadata);
|
|
92
228
|
}
|
|
93
229
|
/**
|
|
94
|
-
*
|
|
230
|
+
* Updates the name of an existing flow.
|
|
231
|
+
*
|
|
232
|
+
* Changes the display name of the specified flow. The name is used for
|
|
233
|
+
* identification and organization purposes and can be null to clear the name.
|
|
234
|
+
*
|
|
235
|
+
* @throws {@link FlowNotFoundException} When the specified flow doesn't exist
|
|
236
|
+
* @throws {@link InvalidParamValueException} When the name exceeds 255 characters
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```http
|
|
240
|
+
* POST /api/flows/abc123/rename
|
|
241
|
+
* Content-Type: application/json
|
|
242
|
+
*
|
|
243
|
+
* {
|
|
244
|
+
* "name": "Updated Flow Name"
|
|
245
|
+
* }
|
|
246
|
+
* ```
|
|
95
247
|
*/
|
|
96
248
|
async renameFlow(req, res) {
|
|
97
249
|
const flowId = req.params.flowId;
|
|
98
|
-
const flowParams = req.body;
|
|
99
|
-
|
|
100
|
-
if (!flowParams ||
|
|
101
|
-
typeof flowParams !== 'object' ||
|
|
102
|
-
Array.isArray(flowParams)) {
|
|
103
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('requestBody', '(non-object)', 'expected an object');
|
|
104
|
-
}
|
|
105
|
-
// Validate that name exists and is either a string or null
|
|
106
|
-
if (!('name' in flowParams)) {
|
|
107
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('name', 'undefined');
|
|
108
|
-
}
|
|
109
|
-
const { name } = flowParams;
|
|
110
|
-
if (name !== null && typeof name !== 'string') {
|
|
111
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('name', JsonUtils_1.JsonUtils.objectToJson(name), `expected a string or null value`);
|
|
112
|
-
}
|
|
113
|
-
const metadata = await this.donobuFlowsManager.renameFlow(flowId, name);
|
|
250
|
+
const flowParams = zod_1.z.object({ name: zod_1.z.string() }).parse(req.body);
|
|
251
|
+
const metadata = await this.donobuFlowsManager.renameFlow(flowId, flowParams.name);
|
|
114
252
|
res.json(metadata);
|
|
115
253
|
}
|
|
116
254
|
/**
|
|
117
|
-
*
|
|
255
|
+
* Permanently deletes a flow and all associated data.
|
|
256
|
+
*
|
|
257
|
+
* Removes the flow from storage including metadata, tool calls, screenshots,
|
|
258
|
+
* and video recordings. This operation cannot be undone.
|
|
259
|
+
*
|
|
260
|
+
* @throws {@link FlowNotFoundException} When the specified flow doesn't exist
|
|
261
|
+
* @throws {@link CannotDeleteRunningFlowException} When attempting to delete an active flow
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```http
|
|
265
|
+
* DELETE /api/flows/abc123
|
|
266
|
+
*
|
|
267
|
+
* Response: HTTP 200 OK
|
|
268
|
+
* ```
|
|
118
269
|
*/
|
|
119
270
|
async deleteFlow(req, res) {
|
|
120
271
|
const flowId = req.params.flowId;
|
|
121
272
|
await this.donobuFlowsManager.deleteFlowById(flowId);
|
|
122
273
|
res.sendStatus(200);
|
|
123
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Retrieves complete metadata for a specific flow.
|
|
277
|
+
*
|
|
278
|
+
* Returns the full {@link FlowMetadata} object containing current state,
|
|
279
|
+
* configuration, execution history, and results.
|
|
280
|
+
*
|
|
281
|
+
* @throws {@link FlowNotFoundException} When the specified flow doesn't exist
|
|
282
|
+
*
|
|
283
|
+
* @example
|
|
284
|
+
* ```http
|
|
285
|
+
* GET /api/flows/abc123
|
|
286
|
+
*
|
|
287
|
+
* Response: Complete FlowMetadata object
|
|
288
|
+
* ```
|
|
289
|
+
*
|
|
290
|
+
* @public
|
|
291
|
+
*/
|
|
124
292
|
async getFlowMetadata(req, res) {
|
|
125
293
|
const flowId = req.params.flowId;
|
|
126
294
|
const metadata = await this.donobuFlowsManager.getFlowById(flowId);
|
|
127
295
|
res.json(metadata);
|
|
128
296
|
}
|
|
129
297
|
/**
|
|
130
|
-
*
|
|
298
|
+
* Pauses execution of an active flow.
|
|
299
|
+
*
|
|
300
|
+
* Signals the flow to pause after completing its current action. The flow
|
|
301
|
+
* will transition to PAUSED state and can be resumed later. Only works
|
|
302
|
+
* for flows that are not already in a terminal state.
|
|
303
|
+
*
|
|
304
|
+
* @throws {@link ActiveFlowNotFoundException} When the flow is not active locally
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```http
|
|
308
|
+
* POST /api/flows/abc123/pause
|
|
309
|
+
*
|
|
310
|
+
* Response: FlowMetadata with nextState set to "PAUSED"
|
|
311
|
+
* ```
|
|
312
|
+
*
|
|
313
|
+
* @remarks
|
|
314
|
+
* This endpoint is only available in LOCAL deployment environments for security.
|
|
315
|
+
* The flow will complete its current action before pausing.
|
|
131
316
|
*/
|
|
132
317
|
async pauseFlow(req, res) {
|
|
133
318
|
const flowId = req.params.flowId;
|
|
@@ -138,7 +323,23 @@ class FlowsApi {
|
|
|
138
323
|
res.json(flow.metadata);
|
|
139
324
|
}
|
|
140
325
|
/**
|
|
141
|
-
*
|
|
326
|
+
* Resumes execution of a paused flow.
|
|
327
|
+
*
|
|
328
|
+
* Signals a paused flow to continue execution. The flow will transition
|
|
329
|
+
* from PAUSED to RESUMING state and then continue normal operation.
|
|
330
|
+
*
|
|
331
|
+
* @throws {@link ActiveFlowNotFoundException} When the flow is not active locally
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* ```http
|
|
335
|
+
* POST /api/flows/abc123/resume
|
|
336
|
+
*
|
|
337
|
+
* Response: FlowMetadata with nextState set to "RESUMING"
|
|
338
|
+
* ```
|
|
339
|
+
*
|
|
340
|
+
* @remarks
|
|
341
|
+
* This endpoint is only available in LOCAL deployment environments for security.
|
|
342
|
+
* Only works on flows currently in PAUSED state.
|
|
142
343
|
*/
|
|
143
344
|
async resumeFlow(req, res) {
|
|
144
345
|
const flowId = req.params.flowId;
|
|
@@ -148,11 +349,39 @@ class FlowsApi {
|
|
|
148
349
|
}
|
|
149
350
|
res.json(flow.metadata);
|
|
150
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Cancels and terminates an active flow.
|
|
354
|
+
*
|
|
355
|
+
* Forcibly stops flow execution and sets the state to FAILED. For active
|
|
356
|
+
* flows, this closes the browser context and terminates the execution thread.
|
|
357
|
+
*
|
|
358
|
+
* @throws {@link FlowNotFoundException} When the specified flow doesn't exist
|
|
359
|
+
*
|
|
360
|
+
* @example
|
|
361
|
+
* ```http
|
|
362
|
+
* POST /api/flows/abc123/cancel
|
|
363
|
+
*
|
|
364
|
+
* Response: FlowMetadata with state "FAILED"
|
|
365
|
+
* ```
|
|
366
|
+
*
|
|
367
|
+
* @remarks
|
|
368
|
+
* This endpoint is only available in LOCAL deployment environments for security.
|
|
369
|
+
* Cannot be undone - the flow will need to be recreated to retry.
|
|
370
|
+
*/
|
|
151
371
|
async cancelFlow(req, res) {
|
|
152
372
|
const flowId = req.params.flowId;
|
|
153
373
|
const metadata = await this.donobuFlowsManager.cancelFlow(flowId);
|
|
154
374
|
res.json(metadata);
|
|
155
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* Parses and validates the limit query parameter.
|
|
378
|
+
*
|
|
379
|
+
* Converts the limit string to a number with appropriate defaults and bounds.
|
|
380
|
+
* Returns Number.MAX_SAFE_INTEGER if parsing fails to avoid artificial limits.
|
|
381
|
+
*
|
|
382
|
+
* @param limit - The limit query parameter value
|
|
383
|
+
* @returns Parsed limit number or maximum safe integer
|
|
384
|
+
*/
|
|
156
385
|
parseLimit(limit) {
|
|
157
386
|
try {
|
|
158
387
|
return limit ? parseInt(limit) : Number.MAX_SAFE_INTEGER;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsApi.js","sourceRoot":"","sources":["../../../src/apis/FlowsApi.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"FlowsApi.js","sourceRoot":"","sources":["../../../src/apis/FlowsApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,55 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { FlowsPersistenceFactory } from '../persistence/flows/FlowsPersistenceFactory';
|
|
3
|
+
/**
|
|
4
|
+
* API controller for serving flow-related binary files including images and video content.
|
|
5
|
+
*
|
|
6
|
+
* The FlowsFilesApi provides HTTP endpoints for retrieving binary assets associated with
|
|
7
|
+
* Donobu flows, specifically screenshots and video recordings captured during flow execution.
|
|
8
|
+
* This class handles proper content type detection, HTTP range requests for video streaming,
|
|
9
|
+
* and multi-layer persistence fallback for file retrieval.
|
|
10
|
+
*/
|
|
3
11
|
export declare class FlowsFilesApi {
|
|
4
12
|
private readonly flowsPersistenceFactory;
|
|
5
13
|
constructor(flowsPersistenceFactory: FlowsPersistenceFactory);
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves and serves a flow-related image file (screenshot).
|
|
16
|
+
*
|
|
17
|
+
* This endpoint serves screenshot images captured during flow execution. The method:
|
|
18
|
+
* 1. Iterates through all available persistence layers in priority order
|
|
19
|
+
* 2. Attempts to locate the requested image in each layer
|
|
20
|
+
* 3. Automatically detects the image format (PNG/JPEG) and sets appropriate Content-Type
|
|
21
|
+
* 4. Returns 404 if the image is not found in any persistence layer
|
|
22
|
+
*
|
|
23
|
+
* **Supported Image Formats:**
|
|
24
|
+
* - PNG (`image/png`)
|
|
25
|
+
* - JPEG (`image/jpeg`)
|
|
26
|
+
*
|
|
27
|
+
* @throws {FlowNotFoundException} When the flow doesn't exist in any persistence layer
|
|
28
|
+
*/
|
|
6
29
|
getFlowImage(req: Request, res: Response): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves and serves flow video recordings with HTTP range request support.
|
|
32
|
+
*
|
|
33
|
+
* This endpoint serves video recordings of flow executions, typically in WebM format.
|
|
34
|
+
* The method supports HTTP range requests for efficient video streaming and seeking,
|
|
35
|
+
* allowing clients to request specific byte ranges of large video files.
|
|
36
|
+
*
|
|
37
|
+
* **Key Features:**
|
|
38
|
+
* - HTTP Range Request support for video streaming
|
|
39
|
+
* - Automatic Content-Type detection (typically `video/webm`)
|
|
40
|
+
* - Partial content responses (HTTP 206) for range requests
|
|
41
|
+
* - Multi-layer persistence fallback
|
|
42
|
+
* - Proper Accept-Ranges header for client compatibility
|
|
43
|
+
*
|
|
44
|
+
* **Range Request Handling:**
|
|
45
|
+
* - Parses Range header to determine requested byte range
|
|
46
|
+
* - Supports single-range requests (e.g., `bytes=0-1023`)
|
|
47
|
+
* - Supports open-ended ranges (e.g., `bytes=1024-`)
|
|
48
|
+
* - Returns appropriate Content-Range header for partial responses
|
|
49
|
+
* - Falls back to full video if no Range header is provided
|
|
50
|
+
*
|
|
51
|
+
* @throws {FlowNotFoundException} When the flow doesn't exist in any persistence layer
|
|
52
|
+
*/
|
|
7
53
|
getFlowVideo(req: Request, res: Response): Promise<void>;
|
|
8
54
|
}
|
|
9
55
|
//# sourceMappingURL=FlowsFilesApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsFilesApi.d.ts","sourceRoot":"","sources":["../../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAKvF,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAAvB,uBAAuB,EAAE,uBAAuB;
|
|
1
|
+
{"version":3,"file":"FlowsFilesApi.d.ts","sourceRoot":"","sources":["../../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAKvF;;;;;;;GAOG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAAvB,uBAAuB,EAAE,uBAAuB;IAGnE;;;;;;;;;;;;;;OAcG;IACU,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmEtE"}
|
|
@@ -4,10 +4,33 @@ exports.FlowsFilesApi = void 0;
|
|
|
4
4
|
const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
|
|
5
5
|
const Logger_1 = require("../utils/Logger");
|
|
6
6
|
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
7
|
+
/**
|
|
8
|
+
* API controller for serving flow-related binary files including images and video content.
|
|
9
|
+
*
|
|
10
|
+
* The FlowsFilesApi provides HTTP endpoints for retrieving binary assets associated with
|
|
11
|
+
* Donobu flows, specifically screenshots and video recordings captured during flow execution.
|
|
12
|
+
* This class handles proper content type detection, HTTP range requests for video streaming,
|
|
13
|
+
* and multi-layer persistence fallback for file retrieval.
|
|
14
|
+
*/
|
|
7
15
|
class FlowsFilesApi {
|
|
8
16
|
constructor(flowsPersistenceFactory) {
|
|
9
17
|
this.flowsPersistenceFactory = flowsPersistenceFactory;
|
|
10
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves and serves a flow-related image file (screenshot).
|
|
21
|
+
*
|
|
22
|
+
* This endpoint serves screenshot images captured during flow execution. The method:
|
|
23
|
+
* 1. Iterates through all available persistence layers in priority order
|
|
24
|
+
* 2. Attempts to locate the requested image in each layer
|
|
25
|
+
* 3. Automatically detects the image format (PNG/JPEG) and sets appropriate Content-Type
|
|
26
|
+
* 4. Returns 404 if the image is not found in any persistence layer
|
|
27
|
+
*
|
|
28
|
+
* **Supported Image Formats:**
|
|
29
|
+
* - PNG (`image/png`)
|
|
30
|
+
* - JPEG (`image/jpeg`)
|
|
31
|
+
*
|
|
32
|
+
* @throws {FlowNotFoundException} When the flow doesn't exist in any persistence layer
|
|
33
|
+
*/
|
|
11
34
|
async getFlowImage(req, res) {
|
|
12
35
|
const flowId = req.params.flowId;
|
|
13
36
|
const imageId = req.params.imageId;
|
|
@@ -33,6 +56,29 @@ class FlowsFilesApi {
|
|
|
33
56
|
}
|
|
34
57
|
res.sendStatus(404);
|
|
35
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Retrieves and serves flow video recordings with HTTP range request support.
|
|
61
|
+
*
|
|
62
|
+
* This endpoint serves video recordings of flow executions, typically in WebM format.
|
|
63
|
+
* The method supports HTTP range requests for efficient video streaming and seeking,
|
|
64
|
+
* allowing clients to request specific byte ranges of large video files.
|
|
65
|
+
*
|
|
66
|
+
* **Key Features:**
|
|
67
|
+
* - HTTP Range Request support for video streaming
|
|
68
|
+
* - Automatic Content-Type detection (typically `video/webm`)
|
|
69
|
+
* - Partial content responses (HTTP 206) for range requests
|
|
70
|
+
* - Multi-layer persistence fallback
|
|
71
|
+
* - Proper Accept-Ranges header for client compatibility
|
|
72
|
+
*
|
|
73
|
+
* **Range Request Handling:**
|
|
74
|
+
* - Parses Range header to determine requested byte range
|
|
75
|
+
* - Supports single-range requests (e.g., `bytes=0-1023`)
|
|
76
|
+
* - Supports open-ended ranges (e.g., `bytes=1024-`)
|
|
77
|
+
* - Returns appropriate Content-Range header for partial responses
|
|
78
|
+
* - Falls back to full video if no Range header is provided
|
|
79
|
+
*
|
|
80
|
+
* @throws {FlowNotFoundException} When the flow doesn't exist in any persistence layer
|
|
81
|
+
*/
|
|
36
82
|
async getFlowVideo(req, res) {
|
|
37
83
|
const flowId = req.params.flowId;
|
|
38
84
|
const rangeHeader = req.header('Range');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsFilesApi.js","sourceRoot":"","sources":["../../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":";;;AAEA,+EAA4E;AAC5E,4CAA4C;AAC5C,kDAA+C;AAE/C,MAAa,aAAa;IACxB,YACmB,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;IAChE,CAAC;
|
|
1
|
+
{"version":3,"file":"FlowsFilesApi.js","sourceRoot":"","sources":["../../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,96 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { DonobuFlowsManager } from '../managers/DonobuFlowsManager';
|
|
3
|
+
/**
|
|
4
|
+
* API controller for managing tool calls within Donobu flows.
|
|
5
|
+
*
|
|
6
|
+
* The FlowsToolCallsApi provides endpoints for retrieving and proposing tool calls
|
|
7
|
+
* that are executed during flow runs. Tool calls represent individual actions taken
|
|
8
|
+
* by flows, such as clicking elements, inputting text, or analyzing page content.
|
|
9
|
+
* This API enables both historical analysis of flow execution and real-time
|
|
10
|
+
* interaction with running flows.
|
|
11
|
+
*
|
|
12
|
+
* **Key Concepts:**
|
|
13
|
+
* - **Tool Call**: A completed action with parameters, results, and metadata
|
|
14
|
+
* - **Proposed Tool Call**: A queued action waiting to be executed
|
|
15
|
+
* - **Tool Call History**: Chronological sequence of all actions in a flow
|
|
16
|
+
* - **Interactive Flow Control**: Real-time tool call injection during execution
|
|
17
|
+
*
|
|
18
|
+
* **Use Cases:**
|
|
19
|
+
* - Debugging flow execution by examining tool call sequences
|
|
20
|
+
* - Analyzing flow performance and action outcomes
|
|
21
|
+
* - Manual intervention during INSTRUCT mode flows
|
|
22
|
+
* - Flow replay and deterministic execution
|
|
23
|
+
*
|
|
24
|
+
* **Security Considerations:**
|
|
25
|
+
* - Tool call proposal is restricted to LOCAL deployment environments
|
|
26
|
+
* - Only active flows accept new tool call proposals
|
|
27
|
+
* - Tool parameters are validated before execution
|
|
28
|
+
*/
|
|
3
29
|
export declare class FlowsToolCallsApi {
|
|
4
30
|
private readonly donobuFlowsManager;
|
|
5
31
|
constructor(donobuFlowsManager: DonobuFlowsManager);
|
|
6
32
|
/**
|
|
7
|
-
*
|
|
33
|
+
* Retrieves all tool calls for a specific flow.
|
|
34
|
+
*
|
|
35
|
+
* Returns the complete chronological history of tool calls executed within
|
|
36
|
+
* the specified flow. Each tool call includes comprehensive execution details
|
|
37
|
+
* including parameters, outcomes, timing information, and associated metadata.
|
|
38
|
+
* The results are ordered by execution time (startedAt) to provide a clear
|
|
39
|
+
* sequence of actions.
|
|
40
|
+
*
|
|
41
|
+
* **Returned Information:**
|
|
42
|
+
* - Tool call ID and name
|
|
43
|
+
* - Input parameters and execution context
|
|
44
|
+
* - Success/failure status and result messages
|
|
45
|
+
* - Execution timing (start and completion timestamps)
|
|
46
|
+
* - Page URLs
|
|
47
|
+
* - Error details and debugging information
|
|
48
|
+
* - Screenshot references are included but image data is served separately
|
|
49
|
+
* via the FlowsFilesApi
|
|
8
50
|
*/
|
|
9
51
|
getToolCalls(req: Request, res: Response): Promise<void>;
|
|
10
52
|
/**
|
|
11
|
-
*
|
|
53
|
+
* Retrieves a specific tool call by ID within a flow.
|
|
54
|
+
*
|
|
55
|
+
* Returns detailed information about a single tool call execution, including
|
|
56
|
+
* all parameters, results, and metadata. This endpoint is useful for detailed
|
|
57
|
+
* analysis of specific actions or troubleshooting particular tool call failures.
|
|
58
|
+
*
|
|
59
|
+
* **Response Details:**
|
|
60
|
+
* - Tool call ID and name
|
|
61
|
+
* - Input parameters and execution context
|
|
62
|
+
* - Success/failure status and result messages
|
|
63
|
+
* - Execution timing (start and completion timestamps)
|
|
64
|
+
* - Page URLs
|
|
65
|
+
* - Error details and debugging information
|
|
66
|
+
* - Screenshot references are included but image data is served separately
|
|
67
|
+
* via the FlowsFilesApi
|
|
12
68
|
*/
|
|
13
69
|
getToolCall(req: Request, res: Response): Promise<void>;
|
|
14
70
|
/**
|
|
15
|
-
*
|
|
71
|
+
* Proposes a new tool call for execution in an active flow.
|
|
72
|
+
*
|
|
73
|
+
* This endpoint allows real-time injection of tool calls into running flows,
|
|
74
|
+
* primarily used during INSTRUCT mode execution where manual intervention
|
|
75
|
+
* is required. The proposed tool call is validated and queued for execution
|
|
76
|
+
* by the flow's main execution loop.
|
|
77
|
+
*
|
|
78
|
+
* **Important Restrictions:**
|
|
79
|
+
* - Available only in LOCAL deployment environments for security
|
|
80
|
+
* - Target flow must be actively running (not completed or failed)
|
|
81
|
+
* - Tool name must correspond to a valid, available tool
|
|
82
|
+
* - Parameters must conform to the tool's expected schema
|
|
83
|
+
*
|
|
84
|
+
* **Execution Flow:**
|
|
85
|
+
* 1. Validates the tool name and parameters
|
|
86
|
+
* 2. Checks that the target flow is active and accepting proposals
|
|
87
|
+
* 3. Queues the tool call in the flow's execution pipeline
|
|
88
|
+
* 4. Returns success confirmation (execution happens asynchronously)
|
|
89
|
+
*
|
|
90
|
+
* **Integration with Flow States:**
|
|
91
|
+
* - INSTRUCT mode: Tool calls are executed when proposed
|
|
92
|
+
* - AUTONOMOUS mode: Proposals may be ignored in favor of AI decisions
|
|
93
|
+
* - PAUSED flows: Proposals are queued until flow resumes
|
|
16
94
|
*/
|
|
17
95
|
postToolCalls(req: Request, res: Response): Promise<void>;
|
|
18
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsToolCallsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/FlowsToolCallsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"FlowsToolCallsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/FlowsToolCallsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,iBAAiB;IACT,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE1E;;;;;;;;;;;;;;;;;;OAkBG;IACU,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE;;;;;;;;;;;;;;;;OAgBG;IACU,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAapE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAYvE"}
|