donobu 1.0.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 +12 -0
- package/dist/apis/AgentsApi.js +36 -0
- package/dist/apis/AgentsApi.js.map +1 -0
- package/dist/apis/AskAiApi.d.ts +17 -0
- package/dist/apis/AskAiApi.js +58 -0
- package/dist/apis/AskAiApi.js.map +1 -0
- package/dist/apis/DefaultApiAuthApi.d.ts +17 -0
- package/dist/apis/DefaultApiAuthApi.js +33 -0
- package/dist/apis/DefaultApiAuthApi.js.map +1 -0
- package/dist/apis/FlowsApi.d.ts +40 -0
- package/dist/apis/FlowsApi.js +129 -0
- package/dist/apis/FlowsApi.js.map +1 -0
- package/dist/apis/FlowsFilesApi.d.ts +8 -0
- package/dist/apis/FlowsFilesApi.js +87 -0
- package/dist/apis/FlowsFilesApi.js.map +1 -0
- package/dist/apis/FlowsToolCallsApi.d.ts +18 -0
- package/dist/apis/FlowsToolCallsApi.js +43 -0
- package/dist/apis/FlowsToolCallsApi.js.map +1 -0
- package/dist/apis/GptConfigsApi.d.ts +22 -0
- package/dist/apis/GptConfigsApi.js +77 -0
- package/dist/apis/GptConfigsApi.js.map +1 -0
- package/dist/apis/GptResourcesApi.d.ts +20 -0
- package/dist/apis/GptResourcesApi.js +53 -0
- package/dist/apis/GptResourcesApi.js.map +1 -0
- package/dist/apis/KeysApi.d.ts +25 -0
- package/dist/apis/KeysApi.js +64 -0
- package/dist/apis/KeysApi.js.map +1 -0
- package/dist/apis/PingApi.d.ts +13 -0
- package/dist/apis/PingApi.js +19 -0
- package/dist/apis/PingApi.js.map +1 -0
- package/dist/apis/SpecialFlowsApi.d.ts +17 -0
- package/dist/apis/SpecialFlowsApi.js +430 -0
- package/dist/apis/SpecialFlowsApi.js.map +1 -0
- package/dist/apis/ToolsApi.d.ts +20 -0
- package/dist/apis/ToolsApi.js +26 -0
- package/dist/apis/ToolsApi.js.map +1 -0
- package/dist/apis/VersionApi.d.ts +13 -0
- package/dist/apis/VersionApi.js +20 -0
- package/dist/apis/VersionApi.js.map +1 -0
- package/dist/assets/Donobu.entitlements.plist +28 -0
- package/dist/assets/axe.js +47397 -0
- package/dist/assets/clickable-elements-tracker.js +62 -0
- package/dist/assets/control-panel.js +447 -0
- package/dist/assets/devices.json +1403 -0
- package/dist/assets/dialog-prompt-tracker.js +20 -0
- package/dist/assets/generated/parameter-schemas.json +1518 -0
- package/dist/assets/generated/version +1 -0
- package/dist/assets/icon.png +0 -0
- package/dist/assets/page-interactions-tracker.js +222 -0
- package/dist/assets/smart-selector-generator.js +268 -0
- package/dist/assets/zaru-eyes.html +141 -0
- package/dist/bindings/FocusPage.d.ts +17 -0
- package/dist/bindings/FocusPage.js +27 -0
- package/dist/bindings/FocusPage.js.map +1 -0
- package/dist/bindings/NamedBindingCallback.d.ts +23 -0
- package/dist/bindings/NamedBindingCallback.js +3 -0
- package/dist/bindings/NamedBindingCallback.js.map +1 -0
- package/dist/bindings/PageInteractionTracker.d.ts +28 -0
- package/dist/bindings/PageInteractionTracker.js +102 -0
- package/dist/bindings/PageInteractionTracker.js.map +1 -0
- package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +36 -0
- package/dist/clients/AnthropicAwsBedrockGptClient.js +357 -0
- package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -0
- package/dist/clients/AnthropicGptClient.d.ts +36 -0
- package/dist/clients/AnthropicGptClient.js +309 -0
- package/dist/clients/AnthropicGptClient.js.map +1 -0
- package/dist/clients/GoogleGptClient.d.ts +49 -0
- package/dist/clients/GoogleGptClient.js +380 -0
- package/dist/clients/GoogleGptClient.js.map +1 -0
- package/dist/clients/GoogleGptClient2.d.ts +18 -0
- package/dist/clients/GoogleGptClient2.js +237 -0
- package/dist/clients/GoogleGptClient2.js.map +1 -0
- package/dist/clients/GptClient.d.ts +36 -0
- package/dist/clients/GptClient.js +12 -0
- package/dist/clients/GptClient.js.map +1 -0
- package/dist/clients/GptClientFactory.d.ts +5 -0
- package/dist/clients/GptClientFactory.js +39 -0
- package/dist/clients/GptClientFactory.js.map +1 -0
- package/dist/clients/OpenAiGptClient.d.ts +35 -0
- package/dist/clients/OpenAiGptClient.js +269 -0
- package/dist/clients/OpenAiGptClient.js.map +1 -0
- package/dist/clients/SupabaseClient.d.ts +16 -0
- package/dist/clients/SupabaseClient.js +200 -0
- package/dist/clients/SupabaseClient.js.map +1 -0
- package/dist/donobu.fixtures.d.ts +57 -0
- package/dist/donobu.fixtures.js +167 -0
- package/dist/donobu.fixtures.js.map +1 -0
- package/dist/esm/apis/AgentsApi.d.ts +12 -0
- package/dist/esm/apis/AgentsApi.js +36 -0
- package/dist/esm/apis/AgentsApi.js.map +1 -0
- package/dist/esm/apis/AskAiApi.d.ts +17 -0
- package/dist/esm/apis/AskAiApi.js +58 -0
- package/dist/esm/apis/AskAiApi.js.map +1 -0
- package/dist/esm/apis/DefaultApiAuthApi.d.ts +17 -0
- package/dist/esm/apis/DefaultApiAuthApi.js +33 -0
- package/dist/esm/apis/DefaultApiAuthApi.js.map +1 -0
- package/dist/esm/apis/FlowsApi.d.ts +40 -0
- package/dist/esm/apis/FlowsApi.js +129 -0
- package/dist/esm/apis/FlowsApi.js.map +1 -0
- package/dist/esm/apis/FlowsFilesApi.d.ts +8 -0
- package/dist/esm/apis/FlowsFilesApi.js +87 -0
- package/dist/esm/apis/FlowsFilesApi.js.map +1 -0
- package/dist/esm/apis/FlowsToolCallsApi.d.ts +18 -0
- package/dist/esm/apis/FlowsToolCallsApi.js +43 -0
- package/dist/esm/apis/FlowsToolCallsApi.js.map +1 -0
- package/dist/esm/apis/GptConfigsApi.d.ts +22 -0
- package/dist/esm/apis/GptConfigsApi.js +77 -0
- package/dist/esm/apis/GptConfigsApi.js.map +1 -0
- package/dist/esm/apis/GptResourcesApi.d.ts +20 -0
- package/dist/esm/apis/GptResourcesApi.js +53 -0
- package/dist/esm/apis/GptResourcesApi.js.map +1 -0
- package/dist/esm/apis/KeysApi.d.ts +25 -0
- package/dist/esm/apis/KeysApi.js +64 -0
- package/dist/esm/apis/KeysApi.js.map +1 -0
- package/dist/esm/apis/PingApi.d.ts +13 -0
- package/dist/esm/apis/PingApi.js +19 -0
- package/dist/esm/apis/PingApi.js.map +1 -0
- package/dist/esm/apis/SpecialFlowsApi.d.ts +17 -0
- package/dist/esm/apis/SpecialFlowsApi.js +430 -0
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -0
- package/dist/esm/apis/ToolsApi.d.ts +20 -0
- package/dist/esm/apis/ToolsApi.js +26 -0
- package/dist/esm/apis/ToolsApi.js.map +1 -0
- package/dist/esm/apis/VersionApi.d.ts +13 -0
- package/dist/esm/apis/VersionApi.js +20 -0
- package/dist/esm/apis/VersionApi.js.map +1 -0
- package/dist/esm/assets/Donobu.entitlements.plist +28 -0
- package/dist/esm/assets/axe.js +47397 -0
- package/dist/esm/assets/clickable-elements-tracker.js +62 -0
- package/dist/esm/assets/control-panel.js +447 -0
- package/dist/esm/assets/devices.json +1403 -0
- package/dist/esm/assets/dialog-prompt-tracker.js +20 -0
- package/dist/esm/assets/generated/parameter-schemas.json +1518 -0
- package/dist/esm/assets/generated/version +1 -0
- package/dist/esm/assets/icon.png +0 -0
- package/dist/esm/assets/page-interactions-tracker.js +222 -0
- package/dist/esm/assets/smart-selector-generator.js +268 -0
- package/dist/esm/assets/zaru-eyes.html +141 -0
- package/dist/esm/bindings/FocusPage.d.ts +17 -0
- package/dist/esm/bindings/FocusPage.js +27 -0
- package/dist/esm/bindings/FocusPage.js.map +1 -0
- package/dist/esm/bindings/NamedBindingCallback.d.ts +23 -0
- package/dist/esm/bindings/NamedBindingCallback.js +3 -0
- package/dist/esm/bindings/NamedBindingCallback.js.map +1 -0
- package/dist/esm/bindings/PageInteractionTracker.d.ts +28 -0
- package/dist/esm/bindings/PageInteractionTracker.js +102 -0
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -0
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +36 -0
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +357 -0
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -0
- package/dist/esm/clients/AnthropicGptClient.d.ts +36 -0
- package/dist/esm/clients/AnthropicGptClient.js +309 -0
- package/dist/esm/clients/AnthropicGptClient.js.map +1 -0
- package/dist/esm/clients/GoogleGptClient.d.ts +49 -0
- package/dist/esm/clients/GoogleGptClient.js +380 -0
- package/dist/esm/clients/GoogleGptClient.js.map +1 -0
- package/dist/esm/clients/GptClient.d.ts +36 -0
- package/dist/esm/clients/GptClient.js +12 -0
- package/dist/esm/clients/GptClient.js.map +1 -0
- package/dist/esm/clients/GptClientFactory.d.ts +5 -0
- package/dist/esm/clients/GptClientFactory.js +39 -0
- package/dist/esm/clients/GptClientFactory.js.map +1 -0
- package/dist/esm/clients/OpenAiGptClient.d.ts +35 -0
- package/dist/esm/clients/OpenAiGptClient.js +269 -0
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -0
- package/dist/esm/clients/SupabaseClient.d.ts +16 -0
- package/dist/esm/clients/SupabaseClient.js +200 -0
- package/dist/esm/clients/SupabaseClient.js.map +1 -0
- package/dist/esm/donobu.fixtures.d.ts +57 -0
- package/dist/esm/donobu.fixtures.js +167 -0
- package/dist/esm/donobu.fixtures.js.map +1 -0
- package/dist/esm/exceptions/ActiveFlowNotFoundException.d.ts +10 -0
- package/dist/esm/exceptions/ActiveFlowNotFoundException.js +19 -0
- package/dist/esm/exceptions/ActiveFlowNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/ApiKeyNotSetUpException.d.ts +14 -0
- package/dist/esm/exceptions/ApiKeyNotSetUpException.js +21 -0
- package/dist/esm/exceptions/ApiKeyNotSetUpException.js.map +1 -0
- package/dist/esm/exceptions/BrowserStateNotFoundException.d.ts +8 -0
- package/dist/esm/exceptions/BrowserStateNotFoundException.js +15 -0
- package/dist/esm/exceptions/BrowserStateNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/CannotDeleteRunningFlowException.d.ts +9 -0
- package/dist/esm/exceptions/CannotDeleteRunningFlowException.js +18 -0
- package/dist/esm/exceptions/CannotDeleteRunningFlowException.js.map +1 -0
- package/dist/esm/exceptions/DonobuException.d.ts +12 -0
- package/dist/esm/exceptions/DonobuException.js +39 -0
- package/dist/esm/exceptions/DonobuException.js.map +1 -0
- package/dist/esm/exceptions/FlowNotFoundException.d.ts +6 -0
- package/dist/esm/exceptions/FlowNotFoundException.js +17 -0
- package/dist/esm/exceptions/FlowNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/GptApiKeysNotSetupException.d.ts +4 -0
- package/dist/esm/exceptions/GptApiKeysNotSetupException.js +11 -0
- package/dist/esm/exceptions/GptApiKeysNotSetupException.js.map +1 -0
- package/dist/esm/exceptions/GptConfigNotFoundException.d.ts +8 -0
- package/dist/esm/exceptions/GptConfigNotFoundException.js +16 -0
- package/dist/esm/exceptions/GptConfigNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/GptModelNotFoundException.d.ts +9 -0
- package/dist/esm/exceptions/GptModelNotFoundException.js +18 -0
- package/dist/esm/exceptions/GptModelNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.d.ts +6 -0
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js +14 -0
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js.map +1 -0
- package/dist/esm/exceptions/GptPlatformInsufficientQuotaException.d.ts +5 -0
- package/dist/esm/exceptions/GptPlatformInsufficientQuotaException.js +13 -0
- package/dist/esm/exceptions/GptPlatformInsufficientQuotaException.js.map +1 -0
- package/dist/esm/exceptions/GptPlatformInternalErrorException.d.ts +5 -0
- package/dist/esm/exceptions/GptPlatformInternalErrorException.js +12 -0
- package/dist/esm/exceptions/GptPlatformInternalErrorException.js.map +1 -0
- package/dist/esm/exceptions/GptPlatformNotReachableException.d.ts +5 -0
- package/dist/esm/exceptions/GptPlatformNotReachableException.js +13 -0
- package/dist/esm/exceptions/GptPlatformNotReachableException.js.map +1 -0
- package/dist/esm/exceptions/GptPlatformRateLimitedException.d.ts +5 -0
- package/dist/esm/exceptions/GptPlatformRateLimitedException.js +13 -0
- package/dist/esm/exceptions/GptPlatformRateLimitedException.js.map +1 -0
- package/dist/esm/exceptions/GptResourceNotFoundException.d.ts +8 -0
- package/dist/esm/exceptions/GptResourceNotFoundException.js +16 -0
- package/dist/esm/exceptions/GptResourceNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/InvalidParamValueException.d.ts +13 -0
- package/dist/esm/exceptions/InvalidParamValueException.js +25 -0
- package/dist/esm/exceptions/InvalidParamValueException.js.map +1 -0
- package/dist/esm/exceptions/NoApiAccessTokenPresentException.d.ts +8 -0
- package/dist/esm/exceptions/NoApiAccessTokenPresentException.js +15 -0
- package/dist/esm/exceptions/NoApiAccessTokenPresentException.js.map +1 -0
- package/dist/esm/exceptions/PageClosedException.d.ts +6 -0
- package/dist/esm/exceptions/PageClosedException.js +13 -0
- package/dist/esm/exceptions/PageClosedException.js.map +1 -0
- package/dist/esm/exceptions/TooManyRequestsException.d.ts +5 -0
- package/dist/esm/exceptions/TooManyRequestsException.js +13 -0
- package/dist/esm/exceptions/TooManyRequestsException.js.map +1 -0
- package/dist/esm/exceptions/ToolCallNotFoundException.d.ts +6 -0
- package/dist/esm/exceptions/ToolCallNotFoundException.js +14 -0
- package/dist/esm/exceptions/ToolCallNotFoundException.js.map +1 -0
- package/dist/esm/exceptions/ToolRequiresGptException.d.ts +5 -0
- package/dist/esm/exceptions/ToolRequiresGptException.js +13 -0
- package/dist/esm/exceptions/ToolRequiresGptException.js.map +1 -0
- package/dist/esm/exceptions/UnknownToolException.d.ts +5 -0
- package/dist/esm/exceptions/UnknownToolException.js +13 -0
- package/dist/esm/exceptions/UnknownToolException.js.map +1 -0
- package/dist/esm/exceptions/UnparseableJsonBodyException.d.ts +4 -0
- package/dist/esm/exceptions/UnparseableJsonBodyException.js +12 -0
- package/dist/esm/exceptions/UnparseableJsonBodyException.js.map +1 -0
- package/dist/esm/main.d.ts +21 -0
- package/dist/esm/main.js +143 -0
- package/dist/esm/main.js.map +1 -0
- package/dist/esm/managers/AdminApiController.d.ts +32 -0
- package/dist/esm/managers/AdminApiController.js +251 -0
- package/dist/esm/managers/AdminApiController.js.map +1 -0
- package/dist/esm/managers/AgentsManager.d.ts +28 -0
- package/dist/esm/managers/AgentsManager.js +75 -0
- package/dist/esm/managers/AgentsManager.js.map +1 -0
- package/dist/esm/managers/DonobuFlow.d.ts +115 -0
- package/dist/esm/managers/DonobuFlow.js +1070 -0
- package/dist/esm/managers/DonobuFlow.js.map +1 -0
- package/dist/esm/managers/DonobuFlowsManager.d.ts +130 -0
- package/dist/esm/managers/DonobuFlowsManager.js +830 -0
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -0
- package/dist/esm/managers/FlowsPersistence.d.ts +79 -0
- package/dist/esm/managers/FlowsPersistence.js +3 -0
- package/dist/esm/managers/FlowsPersistence.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceAwsS3.d.ts +48 -0
- package/dist/esm/managers/FlowsPersistenceAwsS3.js +284 -0
- package/dist/esm/managers/FlowsPersistenceAwsS3.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceFactory.d.ts +9 -0
- package/dist/esm/managers/FlowsPersistenceFactory.js +3 -0
- package/dist/esm/managers/FlowsPersistenceFactory.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceFactoryImpl.d.ts +57 -0
- package/dist/esm/managers/FlowsPersistenceFactoryImpl.js +119 -0
- package/dist/esm/managers/FlowsPersistenceFactoryImpl.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceFactoryPreset.d.ts +12 -0
- package/dist/esm/managers/FlowsPersistenceFactoryPreset.js +25 -0
- package/dist/esm/managers/FlowsPersistenceFactoryPreset.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceFilesystem.d.ts +33 -0
- package/dist/esm/managers/FlowsPersistenceFilesystem.js +180 -0
- package/dist/esm/managers/FlowsPersistenceFilesystem.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.d.ts +40 -0
- package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.js +209 -0
- package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceSupabase.d.ts +33 -0
- package/dist/esm/managers/FlowsPersistenceSupabase.js +152 -0
- package/dist/esm/managers/FlowsPersistenceSupabase.js.map +1 -0
- package/dist/esm/managers/FlowsPersistenceVolatile.d.ts +30 -0
- package/dist/esm/managers/FlowsPersistenceVolatile.js +103 -0
- package/dist/esm/managers/FlowsPersistenceVolatile.js.map +1 -0
- package/dist/esm/managers/GptConfigsManager.d.ts +38 -0
- package/dist/esm/managers/GptConfigsManager.js +159 -0
- package/dist/esm/managers/GptConfigsManager.js.map +1 -0
- package/dist/esm/managers/GptPlatformApiKeysManager.d.ts +36 -0
- package/dist/esm/managers/GptPlatformApiKeysManager.js +3 -0
- package/dist/esm/managers/GptPlatformApiKeysManager.js.map +1 -0
- package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.d.ts +29 -0
- package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.js +136 -0
- package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.js.map +1 -0
- package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.d.ts +35 -0
- package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.js +51 -0
- package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.js.map +1 -0
- package/dist/esm/managers/GptResourcesManager.d.ts +39 -0
- package/dist/esm/managers/GptResourcesManager.js +130 -0
- package/dist/esm/managers/GptResourcesManager.js.map +1 -0
- package/dist/esm/managers/RequestContextHolder.d.ts +24 -0
- package/dist/esm/managers/RequestContextHolder.js +43 -0
- package/dist/esm/managers/RequestContextHolder.js.map +1 -0
- package/dist/esm/managers/SelectorGenerator.d.ts +8 -0
- package/dist/esm/managers/SelectorGenerator.js +15 -0
- package/dist/esm/managers/SelectorGenerator.js.map +1 -0
- package/dist/esm/managers/ToolManager.d.ts +21 -0
- package/dist/esm/managers/ToolManager.js +264 -0
- package/dist/esm/managers/ToolManager.js.map +1 -0
- package/dist/esm/managers/ToolTipper.d.ts +35 -0
- package/dist/esm/managers/ToolTipper.js +201 -0
- package/dist/esm/managers/ToolTipper.js.map +1 -0
- package/dist/esm/models/AskAiRequest.d.ts +14 -0
- package/dist/esm/models/AskAiRequest.js +3 -0
- package/dist/esm/models/AskAiRequest.js.map +1 -0
- package/dist/esm/models/BaseToolGptParameters.d.ts +9 -0
- package/dist/esm/models/BaseToolGptParameters.js +3 -0
- package/dist/esm/models/BaseToolGptParameters.js.map +1 -0
- package/dist/esm/models/BrowserDevice.d.ts +18 -0
- package/dist/esm/models/BrowserDevice.js +3 -0
- package/dist/esm/models/BrowserDevice.js.map +1 -0
- package/dist/esm/models/BrowserFramework.d.ts +36 -0
- package/dist/esm/models/BrowserFramework.js +164 -0
- package/dist/esm/models/BrowserFramework.js.map +1 -0
- package/dist/esm/models/BrowserState.d.ts +25 -0
- package/dist/esm/models/BrowserState.js +3 -0
- package/dist/esm/models/BrowserState.js.map +1 -0
- package/dist/esm/models/BrowserStateFlowReference.d.ts +10 -0
- package/dist/esm/models/BrowserStateFlowReference.js +3 -0
- package/dist/esm/models/BrowserStateFlowReference.js.map +1 -0
- package/dist/esm/models/CreateDonobuFlow.d.ts +88 -0
- package/dist/esm/models/CreateDonobuFlow.js +3 -0
- package/dist/esm/models/CreateDonobuFlow.js.map +1 -0
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.d.ts +21 -0
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.js +3 -0
- package/dist/esm/models/CreateGoogleSteetviewExtractionFlow.js.map +1 -0
- package/dist/esm/models/CustomTool.d.ts +9 -0
- package/dist/esm/models/CustomTool.js +3 -0
- package/dist/esm/models/CustomTool.js.map +1 -0
- package/dist/esm/models/DonobuAgentType.d.ts +2 -0
- package/dist/esm/models/DonobuAgentType.js +5 -0
- package/dist/esm/models/DonobuAgentType.js.map +1 -0
- package/dist/esm/models/DonobuDeploymentEnvironment.d.ts +5 -0
- package/dist/esm/models/DonobuDeploymentEnvironment.js +10 -0
- package/dist/esm/models/DonobuDeploymentEnvironment.js.map +1 -0
- package/dist/esm/models/DonobuErrorResponse.d.ts +13 -0
- package/dist/esm/models/DonobuErrorResponse.js +3 -0
- package/dist/esm/models/DonobuErrorResponse.js.map +1 -0
- package/dist/esm/models/ElementSelector.d.ts +14 -0
- package/dist/esm/models/ElementSelector.js +3 -0
- package/dist/esm/models/ElementSelector.js.map +1 -0
- package/dist/esm/models/ElementSelectorForReplay.d.ts +14 -0
- package/dist/esm/models/ElementSelectorForReplay.js +3 -0
- package/dist/esm/models/ElementSelectorForReplay.js.map +1 -0
- package/dist/esm/models/FlowMetadata.d.ts +123 -0
- package/dist/esm/models/FlowMetadata.js +50 -0
- package/dist/esm/models/FlowMetadata.js.map +1 -0
- package/dist/esm/models/FlowsQuery.d.ts +11 -0
- package/dist/esm/models/FlowsQuery.js +3 -0
- package/dist/esm/models/FlowsQuery.js.map +1 -0
- package/dist/esm/models/FocusedPage.d.ts +4 -0
- package/dist/esm/models/FocusedPage.js +3 -0
- package/dist/esm/models/FocusedPage.js.map +1 -0
- package/dist/esm/models/GptConfig.d.ts +38 -0
- package/dist/esm/models/GptConfig.js +3 -0
- package/dist/esm/models/GptConfig.js.map +1 -0
- package/dist/esm/models/GptMessage.d.ts +43 -0
- package/dist/esm/models/GptMessage.js +3 -0
- package/dist/esm/models/GptMessage.js.map +1 -0
- package/dist/esm/models/GptResource.d.ts +33 -0
- package/dist/esm/models/GptResource.js +3 -0
- package/dist/esm/models/GptResource.js.map +1 -0
- package/dist/esm/models/InteractableElement.d.ts +13 -0
- package/dist/esm/models/InteractableElement.js +3 -0
- package/dist/esm/models/InteractableElement.js.map +1 -0
- package/dist/esm/models/ProposedToolCall.d.ts +19 -0
- package/dist/esm/models/ProposedToolCall.js +3 -0
- package/dist/esm/models/ProposedToolCall.js.map +1 -0
- package/dist/esm/models/RequestContext.d.ts +21 -0
- package/dist/esm/models/RequestContext.js +24 -0
- package/dist/esm/models/RequestContext.js.map +1 -0
- package/dist/esm/models/ToolCall.d.ts +38 -0
- package/dist/esm/models/ToolCall.js +3 -0
- package/dist/esm/models/ToolCall.js.map +1 -0
- package/dist/esm/models/ToolCallContext.d.ts +22 -0
- package/dist/esm/models/ToolCallContext.js +3 -0
- package/dist/esm/models/ToolCallContext.js.map +1 -0
- package/dist/esm/models/ToolCallResult.d.ts +20 -0
- package/dist/esm/models/ToolCallResult.js +19 -0
- package/dist/esm/models/ToolCallResult.js.map +1 -0
- package/dist/esm/models/VideoSegment.d.ts +20 -0
- package/dist/esm/models/VideoSegment.js +3 -0
- package/dist/esm/models/VideoSegment.js.map +1 -0
- package/dist/esm/persistence/AgentsPersistence.d.ts +11 -0
- package/dist/esm/persistence/AgentsPersistence.js +3 -0
- package/dist/esm/persistence/AgentsPersistence.js.map +1 -0
- package/dist/esm/persistence/AgentsPersistenceFilesystem.d.ts +15 -0
- package/dist/esm/persistence/AgentsPersistenceFilesystem.js +48 -0
- package/dist/esm/persistence/AgentsPersistenceFilesystem.js.map +1 -0
- package/dist/esm/persistence/AgentsPersistenceSqlite.d.ts +14 -0
- package/dist/esm/persistence/AgentsPersistenceSqlite.js +51 -0
- package/dist/esm/persistence/AgentsPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/AgentsPersistenceVolatile.d.ts +13 -0
- package/dist/esm/persistence/AgentsPersistenceVolatile.js +27 -0
- package/dist/esm/persistence/AgentsPersistenceVolatile.js.map +1 -0
- package/dist/esm/persistence/DonobuSqliteDb.d.ts +11 -0
- package/dist/esm/persistence/DonobuSqliteDb.js +178 -0
- package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistence.d.ts +94 -0
- package/dist/esm/persistence/FlowsPersistence.js +3 -0
- package/dist/esm/persistence/FlowsPersistence.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +70 -0
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js +447 -0
- package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceFactory.d.ts +9 -0
- package/dist/esm/persistence/FlowsPersistenceFactory.js +3 -0
- package/dist/esm/persistence/FlowsPersistenceFactory.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +60 -0
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +244 -0
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.d.ts +12 -0
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js +25 -0
- package/dist/esm/persistence/FlowsPersistenceFactoryPreset.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +42 -0
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js +271 -0
- package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +62 -0
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +406 -0
- package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +37 -0
- package/dist/esm/persistence/FlowsPersistenceSqlite.js +229 -0
- package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +38 -0
- package/dist/esm/persistence/FlowsPersistenceSupabase.js +216 -0
- package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -0
- package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +35 -0
- package/dist/esm/persistence/FlowsPersistenceVolatile.js +147 -0
- package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -0
- package/dist/esm/persistence/GptConfigsPersistence.d.ts +11 -0
- package/dist/esm/persistence/GptConfigsPersistence.js +3 -0
- package/dist/esm/persistence/GptConfigsPersistence.js.map +1 -0
- package/dist/esm/persistence/GptConfigsPersistenceFilesystem.d.ts +16 -0
- package/dist/esm/persistence/GptConfigsPersistenceFilesystem.js +54 -0
- package/dist/esm/persistence/GptConfigsPersistenceFilesystem.js.map +1 -0
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.d.ts +12 -0
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.js +36 -0
- package/dist/esm/persistence/GptConfigsPersistenceSqlite.js.map +1 -0
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.d.ts +14 -0
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.js +32 -0
- package/dist/esm/persistence/GptConfigsPersistenceVolatile.js.map +1 -0
- package/dist/esm/persistence/GptResourcesPersistence.d.ts +11 -0
- package/dist/esm/persistence/GptResourcesPersistence.js +3 -0
- package/dist/esm/persistence/GptResourcesPersistence.js.map +1 -0
- package/dist/esm/persistence/GptResourcesPersistenceFilesystem.d.ts +20 -0
- package/dist/esm/persistence/GptResourcesPersistenceFilesystem.js +79 -0
- package/dist/esm/persistence/GptResourcesPersistenceFilesystem.js.map +1 -0
- package/dist/esm/persistence/GptResourcesPersistenceVolatile.d.ts +14 -0
- package/dist/esm/persistence/GptResourcesPersistenceVolatile.js +32 -0
- package/dist/esm/persistence/GptResourcesPersistenceVolatile.js.map +1 -0
- package/dist/esm/test.d.ts +66 -0
- package/dist/esm/test.js +288 -0
- package/dist/esm/test.js.map +1 -0
- package/dist/esm/testfixtures.d.ts +66 -0
- package/dist/esm/testfixtures.js +288 -0
- package/dist/esm/testfixtures.js.map +1 -0
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts +24 -0
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js +61 -0
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js.map +1 -0
- package/dist/esm/tools/AnalyzePageTextTool.d.ts +22 -0
- package/dist/esm/tools/AnalyzePageTextTool.js +59 -0
- package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -0
- package/dist/esm/tools/AssertTool.d.ts +24 -0
- package/dist/esm/tools/AssertTool.js +56 -0
- package/dist/esm/tools/AssertTool.js.map +1 -0
- package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts +18 -0
- package/dist/esm/tools/ChangeWebBrowserTabTool.js +36 -0
- package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -0
- package/dist/esm/tools/ChooseSelectOptionTool.d.ts +18 -0
- package/dist/esm/tools/ChooseSelectOptionTool.js +18 -0
- package/dist/esm/tools/ChooseSelectOptionTool.js.map +1 -0
- package/dist/esm/tools/ClickButtonTool.d.ts +14 -0
- package/dist/esm/tools/ClickButtonTool.js +36 -0
- package/dist/esm/tools/ClickButtonTool.js.map +1 -0
- package/dist/esm/tools/ClickTool.d.ts +14 -0
- package/dist/esm/tools/ClickTool.js +36 -0
- package/dist/esm/tools/ClickTool.js.map +1 -0
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts +15 -0
- package/dist/esm/tools/CreateBrowserCookieReportTool.js +98 -0
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -0
- package/dist/esm/tools/CustomToolRunnerTool.d.ts +14 -0
- package/dist/esm/tools/CustomToolRunnerTool.js +35 -0
- package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -0
- package/dist/esm/tools/DetectBrokenLinksTool.d.ts +38 -0
- package/dist/esm/tools/DetectBrokenLinksTool.js +264 -0
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -0
- package/dist/esm/tools/DownloadPdfTool.d.ts +19 -0
- package/dist/esm/tools/DownloadPdfTool.js +48 -0
- package/dist/esm/tools/DownloadPdfTool.js.map +1 -0
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.d.ts +50 -0
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +176 -0
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -0
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts +16 -0
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +80 -0
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -0
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.d.ts +27 -0
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +232 -0
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -0
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.d.ts +27 -0
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js +36 -0
- package/dist/esm/tools/GetEntityDataFromGoogleMapResult.js.map +1 -0
- package/dist/esm/tools/GoForwardOrBackTool.d.ts +22 -0
- package/dist/esm/tools/GoForwardOrBackTool.js +37 -0
- package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -0
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.d.ts +37 -0
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +119 -0
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -0
- package/dist/esm/tools/GoToWebpageTool.d.ts +20 -0
- package/dist/esm/tools/GoToWebpageTool.js +40 -0
- package/dist/esm/tools/GoToWebpageTool.js.map +1 -0
- package/dist/esm/tools/HandleBrowserDialogTool.d.ts +26 -0
- package/dist/esm/tools/HandleBrowserDialogTool.js +22 -0
- package/dist/esm/tools/HandleBrowserDialogTool.js.map +1 -0
- package/dist/esm/tools/HoverOverElementTool.d.ts +15 -0
- package/dist/esm/tools/HoverOverElementTool.js +18 -0
- package/dist/esm/tools/HoverOverElementTool.js.map +1 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.d.ts +27 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js +74 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js.map +1 -0
- package/dist/esm/tools/InputTextTool.d.ts +24 -0
- package/dist/esm/tools/InputTextTool.js +48 -0
- package/dist/esm/tools/InputTextTool.js.map +1 -0
- package/dist/esm/tools/MakeCommentTool.d.ts +21 -0
- package/dist/esm/tools/MakeCommentTool.js +31 -0
- package/dist/esm/tools/MakeCommentTool.js.map +1 -0
- package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts +27 -0
- package/dist/esm/tools/MarkObjectiveCompleteTool.js +39 -0
- package/dist/esm/tools/MarkObjectiveCompleteTool.js.map +1 -0
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts +14 -0
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js +35 -0
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js.map +1 -0
- package/dist/esm/tools/NavigateToWebpageTool.d.ts +20 -0
- package/dist/esm/tools/NavigateToWebpageTool.js +40 -0
- package/dist/esm/tools/NavigateToWebpageTool.js.map +1 -0
- package/dist/esm/tools/NavigateWithinStreetView.d.ts +38 -0
- package/dist/esm/tools/NavigateWithinStreetView.js +107 -0
- package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -0
- package/dist/esm/tools/PauseForUserInteractionTool.d.ts +18 -0
- package/dist/esm/tools/PauseForUserInteractionTool.js +24 -0
- package/dist/esm/tools/PauseForUserInteractionTool.js.map +1 -0
- package/dist/esm/tools/PressKeyTool.d.ts +18 -0
- package/dist/esm/tools/PressKeyTool.js +43 -0
- package/dist/esm/tools/PressKeyTool.js.map +1 -0
- package/dist/esm/tools/ReloadPageTool.d.ts +14 -0
- package/dist/esm/tools/ReloadPageTool.js +20 -0
- package/dist/esm/tools/ReloadPageTool.js.map +1 -0
- package/dist/esm/tools/ReplayableInteraction.d.ts +62 -0
- package/dist/esm/tools/ReplayableInteraction.js +170 -0
- package/dist/esm/tools/ReplayableInteraction.js.map +1 -0
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +14 -0
- package/dist/esm/tools/RunAccessibilityTestTool.js +49 -0
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -0
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts +17 -0
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +30 -0
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -0
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.d.ts +18 -0
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js +43 -0
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -0
- package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts +15 -0
- package/dist/esm/tools/SaveWebpageAsPdfTool.js +27 -0
- package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -0
- package/dist/esm/tools/ScrollPageTool.d.ts +18 -0
- package/dist/esm/tools/ScrollPageTool.js +21 -0
- package/dist/esm/tools/ScrollPageTool.js.map +1 -0
- package/dist/esm/tools/SetRunModeTool.d.ts +20 -0
- package/dist/esm/tools/SetRunModeTool.js +22 -0
- package/dist/esm/tools/SetRunModeTool.js.map +1 -0
- package/dist/esm/tools/SummarizeLearningsTool.d.ts +21 -0
- package/dist/esm/tools/SummarizeLearningsTool.js +31 -0
- package/dist/esm/tools/SummarizeLearningsTool.js.map +1 -0
- package/dist/esm/tools/Tool.d.ts +35 -0
- package/dist/esm/tools/Tool.js +38 -0
- package/dist/esm/tools/Tool.js.map +1 -0
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts +19 -0
- package/dist/esm/tools/TriggerDonobuFlowTool.js +26 -0
- package/dist/esm/tools/TriggerDonobuFlowTool.js.map +1 -0
- package/dist/esm/tools/WaitTool.d.ts +18 -0
- package/dist/esm/tools/WaitTool.js +20 -0
- package/dist/esm/tools/WaitTool.js.map +1 -0
- package/dist/esm/utils/DirectoryUtils.d.ts +11 -0
- package/dist/esm/utils/DirectoryUtils.js +37 -0
- package/dist/esm/utils/DirectoryUtils.js.map +1 -0
- package/dist/esm/utils/JsonUtils.d.ts +19 -0
- package/dist/esm/utils/JsonUtils.js +124 -0
- package/dist/esm/utils/JsonUtils.js.map +1 -0
- package/dist/esm/utils/Logger.d.ts +17 -0
- package/dist/esm/utils/Logger.js +95 -0
- package/dist/esm/utils/Logger.js.map +1 -0
- package/dist/esm/utils/MiscUtils.d.ts +62 -0
- package/dist/esm/utils/MiscUtils.js +164 -0
- package/dist/esm/utils/MiscUtils.js.map +1 -0
- package/dist/esm/utils/PlaywrightUtils.d.ts +180 -0
- package/dist/esm/utils/PlaywrightUtils.js +1086 -0
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -0
- package/dist/esm/utils/VerbConverter.d.ts +14 -0
- package/dist/esm/utils/VerbConverter.js +96 -0
- package/dist/esm/utils/VerbConverter.js.map +1 -0
- package/dist/exceptions/ActiveFlowNotFoundException.d.ts +10 -0
- package/dist/exceptions/ActiveFlowNotFoundException.js +19 -0
- package/dist/exceptions/ActiveFlowNotFoundException.js.map +1 -0
- package/dist/exceptions/ApiKeyNotSetUpException.d.ts +14 -0
- package/dist/exceptions/ApiKeyNotSetUpException.js +21 -0
- package/dist/exceptions/ApiKeyNotSetUpException.js.map +1 -0
- package/dist/exceptions/BrowserStateNotFoundException.d.ts +8 -0
- package/dist/exceptions/BrowserStateNotFoundException.js +15 -0
- package/dist/exceptions/BrowserStateNotFoundException.js.map +1 -0
- package/dist/exceptions/CannotDeleteRunningFlowException.d.ts +9 -0
- package/dist/exceptions/CannotDeleteRunningFlowException.js +18 -0
- package/dist/exceptions/CannotDeleteRunningFlowException.js.map +1 -0
- package/dist/exceptions/DonobuException.d.ts +12 -0
- package/dist/exceptions/DonobuException.js +39 -0
- package/dist/exceptions/DonobuException.js.map +1 -0
- package/dist/exceptions/FlowNotFoundException.d.ts +6 -0
- package/dist/exceptions/FlowNotFoundException.js +17 -0
- package/dist/exceptions/FlowNotFoundException.js.map +1 -0
- package/dist/exceptions/GptApiKeysNotSetupException.d.ts +4 -0
- package/dist/exceptions/GptApiKeysNotSetupException.js +11 -0
- package/dist/exceptions/GptApiKeysNotSetupException.js.map +1 -0
- package/dist/exceptions/GptConfigNotFoundException.d.ts +8 -0
- package/dist/exceptions/GptConfigNotFoundException.js +16 -0
- package/dist/exceptions/GptConfigNotFoundException.js.map +1 -0
- package/dist/exceptions/GptModelNotFoundException.d.ts +9 -0
- package/dist/exceptions/GptModelNotFoundException.js +18 -0
- package/dist/exceptions/GptModelNotFoundException.js.map +1 -0
- package/dist/exceptions/GptPlatformAuthenticationFailedException.d.ts +6 -0
- package/dist/exceptions/GptPlatformAuthenticationFailedException.js +14 -0
- package/dist/exceptions/GptPlatformAuthenticationFailedException.js.map +1 -0
- package/dist/exceptions/GptPlatformInsufficientQuotaException.d.ts +5 -0
- package/dist/exceptions/GptPlatformInsufficientQuotaException.js +13 -0
- package/dist/exceptions/GptPlatformInsufficientQuotaException.js.map +1 -0
- package/dist/exceptions/GptPlatformInternalErrorException.d.ts +5 -0
- package/dist/exceptions/GptPlatformInternalErrorException.js +12 -0
- package/dist/exceptions/GptPlatformInternalErrorException.js.map +1 -0
- package/dist/exceptions/GptPlatformNotReachableException.d.ts +5 -0
- package/dist/exceptions/GptPlatformNotReachableException.js +13 -0
- package/dist/exceptions/GptPlatformNotReachableException.js.map +1 -0
- package/dist/exceptions/GptPlatformRateLimitedException.d.ts +5 -0
- package/dist/exceptions/GptPlatformRateLimitedException.js +13 -0
- package/dist/exceptions/GptPlatformRateLimitedException.js.map +1 -0
- package/dist/exceptions/GptResourceNotFoundException.d.ts +8 -0
- package/dist/exceptions/GptResourceNotFoundException.js +16 -0
- package/dist/exceptions/GptResourceNotFoundException.js.map +1 -0
- package/dist/exceptions/InvalidParamValueException.d.ts +13 -0
- package/dist/exceptions/InvalidParamValueException.js +25 -0
- package/dist/exceptions/InvalidParamValueException.js.map +1 -0
- package/dist/exceptions/NoApiAccessTokenPresentException.d.ts +8 -0
- package/dist/exceptions/NoApiAccessTokenPresentException.js +15 -0
- package/dist/exceptions/NoApiAccessTokenPresentException.js.map +1 -0
- package/dist/exceptions/PageClosedException.d.ts +6 -0
- package/dist/exceptions/PageClosedException.js +13 -0
- package/dist/exceptions/PageClosedException.js.map +1 -0
- package/dist/exceptions/TooManyRequestsException.d.ts +5 -0
- package/dist/exceptions/TooManyRequestsException.js +13 -0
- package/dist/exceptions/TooManyRequestsException.js.map +1 -0
- package/dist/exceptions/ToolCallNotFoundException.d.ts +6 -0
- package/dist/exceptions/ToolCallNotFoundException.js +14 -0
- package/dist/exceptions/ToolCallNotFoundException.js.map +1 -0
- package/dist/exceptions/ToolRequiresGptException.d.ts +5 -0
- package/dist/exceptions/ToolRequiresGptException.js +13 -0
- package/dist/exceptions/ToolRequiresGptException.js.map +1 -0
- package/dist/exceptions/UnknownToolException.d.ts +5 -0
- package/dist/exceptions/UnknownToolException.js +13 -0
- package/dist/exceptions/UnknownToolException.js.map +1 -0
- package/dist/exceptions/UnparseableJsonBodyException.d.ts +4 -0
- package/dist/exceptions/UnparseableJsonBodyException.js +12 -0
- package/dist/exceptions/UnparseableJsonBodyException.js.map +1 -0
- package/dist/main.d.ts +21 -0
- package/dist/main.js +143 -0
- package/dist/main.js.map +1 -0
- package/dist/managers/AdminApiController.d.ts +32 -0
- package/dist/managers/AdminApiController.js +251 -0
- package/dist/managers/AdminApiController.js.map +1 -0
- package/dist/managers/AgentsManager.d.ts +28 -0
- package/dist/managers/AgentsManager.js +75 -0
- package/dist/managers/AgentsManager.js.map +1 -0
- package/dist/managers/DonobuFlow.d.ts +115 -0
- package/dist/managers/DonobuFlow.js +1070 -0
- package/dist/managers/DonobuFlow.js.map +1 -0
- package/dist/managers/DonobuFlowsManager.d.ts +130 -0
- package/dist/managers/DonobuFlowsManager.js +830 -0
- package/dist/managers/DonobuFlowsManager.js.map +1 -0
- package/dist/managers/FlowsPersistence.d.ts +79 -0
- package/dist/managers/FlowsPersistence.js +3 -0
- package/dist/managers/FlowsPersistence.js.map +1 -0
- package/dist/managers/FlowsPersistenceAwsS3.d.ts +48 -0
- package/dist/managers/FlowsPersistenceAwsS3.js +284 -0
- package/dist/managers/FlowsPersistenceAwsS3.js.map +1 -0
- package/dist/managers/FlowsPersistenceFactory.d.ts +9 -0
- package/dist/managers/FlowsPersistenceFactory.js +3 -0
- package/dist/managers/FlowsPersistenceFactory.js.map +1 -0
- package/dist/managers/FlowsPersistenceFactoryImpl.d.ts +57 -0
- package/dist/managers/FlowsPersistenceFactoryImpl.js +119 -0
- package/dist/managers/FlowsPersistenceFactoryImpl.js.map +1 -0
- package/dist/managers/FlowsPersistenceFactoryPreset.d.ts +12 -0
- package/dist/managers/FlowsPersistenceFactoryPreset.js +25 -0
- package/dist/managers/FlowsPersistenceFactoryPreset.js.map +1 -0
- package/dist/managers/FlowsPersistenceFilesystem.d.ts +33 -0
- package/dist/managers/FlowsPersistenceFilesystem.js +180 -0
- package/dist/managers/FlowsPersistenceFilesystem.js.map +1 -0
- package/dist/managers/FlowsPersistenceGoogleCloudStorage.d.ts +40 -0
- package/dist/managers/FlowsPersistenceGoogleCloudStorage.js +209 -0
- package/dist/managers/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/managers/FlowsPersistenceSupabase.d.ts +33 -0
- package/dist/managers/FlowsPersistenceSupabase.js +152 -0
- package/dist/managers/FlowsPersistenceSupabase.js.map +1 -0
- package/dist/managers/FlowsPersistenceVolatile.d.ts +30 -0
- package/dist/managers/FlowsPersistenceVolatile.js +103 -0
- package/dist/managers/FlowsPersistenceVolatile.js.map +1 -0
- package/dist/managers/GptConfigsManager.d.ts +38 -0
- package/dist/managers/GptConfigsManager.js +159 -0
- package/dist/managers/GptConfigsManager.js.map +1 -0
- package/dist/managers/GptPlatformApiKeysManager.d.ts +36 -0
- package/dist/managers/GptPlatformApiKeysManager.js +3 -0
- package/dist/managers/GptPlatformApiKeysManager.js.map +1 -0
- package/dist/managers/GptPlatformApiKeysManagerFilesystem.d.ts +29 -0
- package/dist/managers/GptPlatformApiKeysManagerFilesystem.js +136 -0
- package/dist/managers/GptPlatformApiKeysManagerFilesystem.js.map +1 -0
- package/dist/managers/GptPlatformApiKeysManagerVolatile.d.ts +35 -0
- package/dist/managers/GptPlatformApiKeysManagerVolatile.js +51 -0
- package/dist/managers/GptPlatformApiKeysManagerVolatile.js.map +1 -0
- package/dist/managers/GptResourcesManager.d.ts +44 -0
- package/dist/managers/GptResourcesManager.js +180 -0
- package/dist/managers/GptResourcesManager.js.map +1 -0
- package/dist/managers/RequestContextHolder.d.ts +24 -0
- package/dist/managers/RequestContextHolder.js +43 -0
- package/dist/managers/RequestContextHolder.js.map +1 -0
- package/dist/managers/SelectorGenerator.d.ts +8 -0
- package/dist/managers/SelectorGenerator.js +15 -0
- package/dist/managers/SelectorGenerator.js.map +1 -0
- package/dist/managers/ToolManager.d.ts +21 -0
- package/dist/managers/ToolManager.js +264 -0
- package/dist/managers/ToolManager.js.map +1 -0
- package/dist/managers/ToolTipper.d.ts +35 -0
- package/dist/managers/ToolTipper.js +201 -0
- package/dist/managers/ToolTipper.js.map +1 -0
- package/dist/models/AskAiRequest.d.ts +14 -0
- package/dist/models/AskAiRequest.js +3 -0
- package/dist/models/AskAiRequest.js.map +1 -0
- package/dist/models/BaseToolGptParameters.d.ts +9 -0
- package/dist/models/BaseToolGptParameters.js +3 -0
- package/dist/models/BaseToolGptParameters.js.map +1 -0
- package/dist/models/BaseToolParam.d.ts +9 -0
- package/dist/models/BaseToolParam.js +3 -0
- package/dist/models/BaseToolParam.js.map +1 -0
- package/dist/models/BaseToolParameters.d.ts +9 -0
- package/dist/models/BaseToolParameters.js +3 -0
- package/dist/models/BaseToolParameters.js.map +1 -0
- package/dist/models/BrowserDevice.d.ts +18 -0
- package/dist/models/BrowserDevice.js +3 -0
- package/dist/models/BrowserDevice.js.map +1 -0
- package/dist/models/BrowserFramework.d.ts +36 -0
- package/dist/models/BrowserFramework.js +164 -0
- package/dist/models/BrowserFramework.js.map +1 -0
- package/dist/models/BrowserState.d.ts +25 -0
- package/dist/models/BrowserState.js +3 -0
- package/dist/models/BrowserState.js.map +1 -0
- package/dist/models/BrowserStateFlowReference.d.ts +10 -0
- package/dist/models/BrowserStateFlowReference.js +3 -0
- package/dist/models/BrowserStateFlowReference.js.map +1 -0
- package/dist/models/CreateDonobuFlow.d.ts +88 -0
- package/dist/models/CreateDonobuFlow.js +3 -0
- package/dist/models/CreateDonobuFlow.js.map +1 -0
- package/dist/models/CreateGoogleSteetviewExtractionFlow.d.ts +21 -0
- package/dist/models/CreateGoogleSteetviewExtractionFlow.js +3 -0
- package/dist/models/CreateGoogleSteetviewExtractionFlow.js.map +1 -0
- package/dist/models/CustomTool.d.ts +9 -0
- package/dist/models/CustomTool.js +3 -0
- package/dist/models/CustomTool.js.map +1 -0
- package/dist/models/DonobuAgentType.d.ts +2 -0
- package/dist/models/DonobuAgentType.js +5 -0
- package/dist/models/DonobuAgentType.js.map +1 -0
- package/dist/models/DonobuAnnotated.d.ts +23 -0
- package/dist/models/DonobuAnnotated.js +12 -0
- package/dist/models/DonobuAnnotated.js.map +1 -0
- package/dist/models/DonobuDeploymentEnvironment.d.ts +5 -0
- package/dist/models/DonobuDeploymentEnvironment.js +10 -0
- package/dist/models/DonobuDeploymentEnvironment.js.map +1 -0
- package/dist/models/DonobuErrorResponse.d.ts +13 -0
- package/dist/models/DonobuErrorResponse.js +3 -0
- package/dist/models/DonobuErrorResponse.js.map +1 -0
- package/dist/models/ElementSelector.d.ts +14 -0
- package/dist/models/ElementSelector.js +3 -0
- package/dist/models/ElementSelector.js.map +1 -0
- package/dist/models/ElementSelectorForReplay.d.ts +14 -0
- package/dist/models/ElementSelectorForReplay.js +3 -0
- package/dist/models/ElementSelectorForReplay.js.map +1 -0
- package/dist/models/FlowMetadata.d.ts +123 -0
- package/dist/models/FlowMetadata.js +50 -0
- package/dist/models/FlowMetadata.js.map +1 -0
- package/dist/models/FlowsQuery.d.ts +11 -0
- package/dist/models/FlowsQuery.js +3 -0
- package/dist/models/FlowsQuery.js.map +1 -0
- package/dist/models/FocusedPage.d.ts +4 -0
- package/dist/models/FocusedPage.js +3 -0
- package/dist/models/FocusedPage.js.map +1 -0
- package/dist/models/GptConfig.d.ts +38 -0
- package/dist/models/GptConfig.js +3 -0
- package/dist/models/GptConfig.js.map +1 -0
- package/dist/models/GptMessage.d.ts +43 -0
- package/dist/models/GptMessage.js +3 -0
- package/dist/models/GptMessage.js.map +1 -0
- package/dist/models/GptResource.d.ts +33 -0
- package/dist/models/GptResource.js +3 -0
- package/dist/models/GptResource.js.map +1 -0
- package/dist/models/InteractableElement.d.ts +13 -0
- package/dist/models/InteractableElement.js +3 -0
- package/dist/models/InteractableElement.js.map +1 -0
- package/dist/models/ProposedToolCall.d.ts +19 -0
- package/dist/models/ProposedToolCall.js +3 -0
- package/dist/models/ProposedToolCall.js.map +1 -0
- package/dist/models/RequestContext.d.ts +21 -0
- package/dist/models/RequestContext.js +24 -0
- package/dist/models/RequestContext.js.map +1 -0
- package/dist/models/ToolCall.d.ts +38 -0
- package/dist/models/ToolCall.js +3 -0
- package/dist/models/ToolCall.js.map +1 -0
- package/dist/models/ToolCallContext.d.ts +22 -0
- package/dist/models/ToolCallContext.js +3 -0
- package/dist/models/ToolCallContext.js.map +1 -0
- package/dist/models/ToolCallResult.d.ts +20 -0
- package/dist/models/ToolCallResult.js +19 -0
- package/dist/models/ToolCallResult.js.map +1 -0
- package/dist/models/VideoSegment.d.ts +20 -0
- package/dist/models/VideoSegment.js +3 -0
- package/dist/models/VideoSegment.js.map +1 -0
- package/dist/persistence/AgentsPersistence.d.ts +11 -0
- package/dist/persistence/AgentsPersistence.js +3 -0
- package/dist/persistence/AgentsPersistence.js.map +1 -0
- package/dist/persistence/AgentsPersistenceFilesystem.d.ts +15 -0
- package/dist/persistence/AgentsPersistenceFilesystem.js +48 -0
- package/dist/persistence/AgentsPersistenceFilesystem.js.map +1 -0
- package/dist/persistence/AgentsPersistenceSqlite.d.ts +14 -0
- package/dist/persistence/AgentsPersistenceSqlite.js +51 -0
- package/dist/persistence/AgentsPersistenceSqlite.js.map +1 -0
- package/dist/persistence/AgentsPersistenceVolatile.d.ts +13 -0
- package/dist/persistence/AgentsPersistenceVolatile.js +27 -0
- package/dist/persistence/AgentsPersistenceVolatile.js.map +1 -0
- package/dist/persistence/DonobuSqliteDb.d.ts +11 -0
- package/dist/persistence/DonobuSqliteDb.js +178 -0
- package/dist/persistence/DonobuSqliteDb.js.map +1 -0
- package/dist/persistence/FlowsPersistence.d.ts +94 -0
- package/dist/persistence/FlowsPersistence.js +3 -0
- package/dist/persistence/FlowsPersistence.js.map +1 -0
- package/dist/persistence/FlowsPersistenceAwsS3.d.ts +70 -0
- package/dist/persistence/FlowsPersistenceAwsS3.js +447 -0
- package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -0
- package/dist/persistence/FlowsPersistenceFactory.d.ts +9 -0
- package/dist/persistence/FlowsPersistenceFactory.js +3 -0
- package/dist/persistence/FlowsPersistenceFactory.js.map +1 -0
- package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +60 -0
- package/dist/persistence/FlowsPersistenceFactoryImpl.js +244 -0
- package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +1 -0
- package/dist/persistence/FlowsPersistenceFactoryPreset.d.ts +12 -0
- package/dist/persistence/FlowsPersistenceFactoryPreset.js +25 -0
- package/dist/persistence/FlowsPersistenceFactoryPreset.js.map +1 -0
- package/dist/persistence/FlowsPersistenceFilesystem.d.ts +42 -0
- package/dist/persistence/FlowsPersistenceFilesystem.js +271 -0
- package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -0
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +62 -0
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +406 -0
- package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -0
- package/dist/persistence/FlowsPersistenceSqlite.d.ts +37 -0
- package/dist/persistence/FlowsPersistenceSqlite.js +229 -0
- package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -0
- package/dist/persistence/FlowsPersistenceSupabase.d.ts +38 -0
- package/dist/persistence/FlowsPersistenceSupabase.js +216 -0
- package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -0
- package/dist/persistence/FlowsPersistenceVolatile.d.ts +35 -0
- package/dist/persistence/FlowsPersistenceVolatile.js +147 -0
- package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -0
- package/dist/persistence/GptConfigsPersistence.d.ts +11 -0
- package/dist/persistence/GptConfigsPersistence.js +3 -0
- package/dist/persistence/GptConfigsPersistence.js.map +1 -0
- package/dist/persistence/GptConfigsPersistenceFilesystem.d.ts +16 -0
- package/dist/persistence/GptConfigsPersistenceFilesystem.js +54 -0
- package/dist/persistence/GptConfigsPersistenceFilesystem.js.map +1 -0
- package/dist/persistence/GptConfigsPersistenceSqlite.d.ts +12 -0
- package/dist/persistence/GptConfigsPersistenceSqlite.js +36 -0
- package/dist/persistence/GptConfigsPersistenceSqlite.js.map +1 -0
- package/dist/persistence/GptConfigsPersistenceVolatile.d.ts +14 -0
- package/dist/persistence/GptConfigsPersistenceVolatile.js +32 -0
- package/dist/persistence/GptConfigsPersistenceVolatile.js.map +1 -0
- package/dist/persistence/GptResourcesPersistence.d.ts +11 -0
- package/dist/persistence/GptResourcesPersistence.js +3 -0
- package/dist/persistence/GptResourcesPersistence.js.map +1 -0
- package/dist/persistence/GptResourcesPersistenceFilesystem.d.ts +20 -0
- package/dist/persistence/GptResourcesPersistenceFilesystem.js +79 -0
- package/dist/persistence/GptResourcesPersistenceFilesystem.js.map +1 -0
- package/dist/persistence/GptResourcesPersistenceVolatile.d.ts +14 -0
- package/dist/persistence/GptResourcesPersistenceVolatile.js +32 -0
- package/dist/persistence/GptResourcesPersistenceVolatile.js.map +1 -0
- package/dist/test.d.ts +66 -0
- package/dist/test.js +288 -0
- package/dist/test.js.map +1 -0
- package/dist/testfixtures.d.ts +66 -0
- package/dist/testfixtures.js +288 -0
- package/dist/testfixtures.js.map +1 -0
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts +24 -0
- package/dist/tools/AggregateExtractedStreetviewDataTool.js +61 -0
- package/dist/tools/AggregateExtractedStreetviewDataTool.js.map +1 -0
- package/dist/tools/AnalyzePageTextTool.d.ts +22 -0
- package/dist/tools/AnalyzePageTextTool.js +59 -0
- package/dist/tools/AnalyzePageTextTool.js.map +1 -0
- package/dist/tools/AssertTool.d.ts +24 -0
- package/dist/tools/AssertTool.js +56 -0
- package/dist/tools/AssertTool.js.map +1 -0
- package/dist/tools/ChangeWebBrowserTabTool.d.ts +18 -0
- package/dist/tools/ChangeWebBrowserTabTool.js +36 -0
- package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -0
- package/dist/tools/ChooseSelectOptionTool.d.ts +18 -0
- package/dist/tools/ChooseSelectOptionTool.js +18 -0
- package/dist/tools/ChooseSelectOptionTool.js.map +1 -0
- package/dist/tools/ClickButtonTool.d.ts +14 -0
- package/dist/tools/ClickButtonTool.js +36 -0
- package/dist/tools/ClickButtonTool.js.map +1 -0
- package/dist/tools/ClickTool.d.ts +14 -0
- package/dist/tools/ClickTool.js +36 -0
- package/dist/tools/ClickTool.js.map +1 -0
- package/dist/tools/CreateBrowserCookieReportTool.d.ts +15 -0
- package/dist/tools/CreateBrowserCookieReportTool.js +98 -0
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -0
- package/dist/tools/CustomToolRunnerTool.d.ts +14 -0
- package/dist/tools/CustomToolRunnerTool.js +35 -0
- package/dist/tools/CustomToolRunnerTool.js.map +1 -0
- package/dist/tools/DetectBrokenLinksTool.d.ts +38 -0
- package/dist/tools/DetectBrokenLinksTool.js +264 -0
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -0
- package/dist/tools/DownloadPdfTool.d.ts +19 -0
- package/dist/tools/DownloadPdfTool.js +48 -0
- package/dist/tools/DownloadPdfTool.js.map +1 -0
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.d.ts +50 -0
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +176 -0
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -0
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts +16 -0
- package/dist/tools/ExtractPaymentProviderKeyTool.js +80 -0
- package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -0
- package/dist/tools/ExtractPublicFacebookEntityDataTool.d.ts +27 -0
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +232 -0
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -0
- package/dist/tools/GetEntityDataFromGoogleMapResult.d.ts +27 -0
- package/dist/tools/GetEntityDataFromGoogleMapResult.js +36 -0
- package/dist/tools/GetEntityDataFromGoogleMapResult.js.map +1 -0
- package/dist/tools/GoForwardOrBackTool.d.ts +22 -0
- package/dist/tools/GoForwardOrBackTool.js +37 -0
- package/dist/tools/GoForwardOrBackTool.js.map +1 -0
- package/dist/tools/GoToGoogleMapsStreetViewTool.d.ts +37 -0
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +119 -0
- package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -0
- package/dist/tools/GoToWebpageTool.d.ts +20 -0
- package/dist/tools/GoToWebpageTool.js +40 -0
- package/dist/tools/GoToWebpageTool.js.map +1 -0
- package/dist/tools/HandleBrowserDialogTool.d.ts +26 -0
- package/dist/tools/HandleBrowserDialogTool.js +22 -0
- package/dist/tools/HandleBrowserDialogTool.js.map +1 -0
- package/dist/tools/HoverOverElementTool.d.ts +15 -0
- package/dist/tools/HoverOverElementTool.js +18 -0
- package/dist/tools/HoverOverElementTool.js.map +1 -0
- package/dist/tools/InputRandomizedEmailAddressTool.d.ts +27 -0
- package/dist/tools/InputRandomizedEmailAddressTool.js +74 -0
- package/dist/tools/InputRandomizedEmailAddressTool.js.map +1 -0
- package/dist/tools/InputTextTool.d.ts +24 -0
- package/dist/tools/InputTextTool.js +48 -0
- package/dist/tools/InputTextTool.js.map +1 -0
- package/dist/tools/MakeCommentTool.d.ts +21 -0
- package/dist/tools/MakeCommentTool.js +31 -0
- package/dist/tools/MakeCommentTool.js.map +1 -0
- package/dist/tools/MarkObjectiveCompleteTool.d.ts +27 -0
- package/dist/tools/MarkObjectiveCompleteTool.js +39 -0
- package/dist/tools/MarkObjectiveCompleteTool.js.map +1 -0
- package/dist/tools/MarkObjectiveNotCompletableTool.d.ts +14 -0
- package/dist/tools/MarkObjectiveNotCompletableTool.js +35 -0
- package/dist/tools/MarkObjectiveNotCompletableTool.js.map +1 -0
- package/dist/tools/NavigateToWebpage.d.ts +19 -0
- package/dist/tools/NavigateToWebpage.js +25 -0
- package/dist/tools/NavigateToWebpage.js.map +1 -0
- package/dist/tools/NavigateToWebpageTool.d.ts +20 -0
- package/dist/tools/NavigateToWebpageTool.js +40 -0
- package/dist/tools/NavigateToWebpageTool.js.map +1 -0
- package/dist/tools/NavigateWithinStreetView.d.ts +38 -0
- package/dist/tools/NavigateWithinStreetView.js +107 -0
- package/dist/tools/NavigateWithinStreetView.js.map +1 -0
- package/dist/tools/PauseForUserInteractionTool.d.ts +18 -0
- package/dist/tools/PauseForUserInteractionTool.js +24 -0
- package/dist/tools/PauseForUserInteractionTool.js.map +1 -0
- package/dist/tools/PressKeyTool.d.ts +18 -0
- package/dist/tools/PressKeyTool.js +43 -0
- package/dist/tools/PressKeyTool.js.map +1 -0
- package/dist/tools/ReloadPageTool.d.ts +14 -0
- package/dist/tools/ReloadPageTool.js +20 -0
- package/dist/tools/ReloadPageTool.js.map +1 -0
- package/dist/tools/ReplayableInteraction.d.ts +62 -0
- package/dist/tools/ReplayableInteraction.js +170 -0
- package/dist/tools/ReplayableInteraction.js.map +1 -0
- package/dist/tools/RunAccessibilityTestTool.d.ts +14 -0
- package/dist/tools/RunAccessibilityTestTool.js +49 -0
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -0
- package/dist/tools/RunInlineJavaScriptCodeTool.d.ts +17 -0
- package/dist/tools/RunInlineJavaScriptCodeTool.js +30 -0
- package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -0
- package/dist/tools/RunSandboxedJavaScriptCodeTool.d.ts +18 -0
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js +43 -0
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js.map +1 -0
- package/dist/tools/SaveWebpageAsPdfTool.d.ts +15 -0
- package/dist/tools/SaveWebpageAsPdfTool.js +27 -0
- package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -0
- package/dist/tools/ScrollPageTool.d.ts +18 -0
- package/dist/tools/ScrollPageTool.js +21 -0
- package/dist/tools/ScrollPageTool.js.map +1 -0
- package/dist/tools/SetRunModeTool.d.ts +20 -0
- package/dist/tools/SetRunModeTool.js +22 -0
- package/dist/tools/SetRunModeTool.js.map +1 -0
- package/dist/tools/SummarizeLearningsTool.d.ts +21 -0
- package/dist/tools/SummarizeLearningsTool.js +31 -0
- package/dist/tools/SummarizeLearningsTool.js.map +1 -0
- package/dist/tools/Tool.d.ts +35 -0
- package/dist/tools/Tool.js +38 -0
- package/dist/tools/Tool.js.map +1 -0
- package/dist/tools/TriggerDonobuFlowTool.d.ts +19 -0
- package/dist/tools/TriggerDonobuFlowTool.js +26 -0
- package/dist/tools/TriggerDonobuFlowTool.js.map +1 -0
- package/dist/tools/WaitTool.d.ts +18 -0
- package/dist/tools/WaitTool.js +20 -0
- package/dist/tools/WaitTool.js.map +1 -0
- package/dist/utils/DirectoryUtils.d.ts +11 -0
- package/dist/utils/DirectoryUtils.js +37 -0
- package/dist/utils/DirectoryUtils.js.map +1 -0
- package/dist/utils/JsonUtils.d.ts +19 -0
- package/dist/utils/JsonUtils.js +124 -0
- package/dist/utils/JsonUtils.js.map +1 -0
- package/dist/utils/Logger.d.ts +17 -0
- package/dist/utils/Logger.js +95 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/MiscUtils.d.ts +62 -0
- package/dist/utils/MiscUtils.js +164 -0
- package/dist/utils/MiscUtils.js.map +1 -0
- package/dist/utils/PlaywrightUtils.d.ts +180 -0
- package/dist/utils/PlaywrightUtils.js +1086 -0
- package/dist/utils/PlaywrightUtils.js.map +1 -0
- package/dist/utils/VerbConverter.d.ts +14 -0
- package/dist/utils/VerbConverter.js +96 -0
- package/dist/utils/VerbConverter.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,830 @@
|
|
|
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.DonobuFlowsManager = void 0;
|
|
37
|
+
const GptClientFactory_1 = require("../clients/GptClientFactory");
|
|
38
|
+
const BrowserFramework_1 = require("../models/BrowserFramework");
|
|
39
|
+
const ChooseSelectOptionTool_1 = require("../tools/ChooseSelectOptionTool");
|
|
40
|
+
const ClickTool_1 = require("../tools/ClickTool");
|
|
41
|
+
const InputTextTool_1 = require("../tools/InputTextTool");
|
|
42
|
+
const InputRandomizedEmailAddressTool_1 = require("../tools/InputRandomizedEmailAddressTool");
|
|
43
|
+
const PressKeyTool_1 = require("../tools/PressKeyTool");
|
|
44
|
+
const DonobuFlow_1 = require("./DonobuFlow");
|
|
45
|
+
const FlowMetadata_1 = require("../models/FlowMetadata");
|
|
46
|
+
const GoToWebpageTool_1 = require("../tools/GoToWebpageTool");
|
|
47
|
+
const CustomToolRunnerTool_1 = require("../tools/CustomToolRunnerTool");
|
|
48
|
+
const ToolManager_1 = require("./ToolManager");
|
|
49
|
+
const ToolTipper_1 = require("./ToolTipper");
|
|
50
|
+
const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueException");
|
|
51
|
+
const ActiveFlowNotFoundException_1 = require("../exceptions/ActiveFlowNotFoundException");
|
|
52
|
+
const UnknownToolException_1 = require("../exceptions/UnknownToolException");
|
|
53
|
+
const CannotDeleteRunningFlowException_1 = require("../exceptions/CannotDeleteRunningFlowException");
|
|
54
|
+
const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
|
|
55
|
+
const ToolRequiresGptException_1 = require("../exceptions/ToolRequiresGptException");
|
|
56
|
+
const fs = __importStar(require("fs"));
|
|
57
|
+
const path = __importStar(require("path"));
|
|
58
|
+
const os_1 = require("os");
|
|
59
|
+
const MarkObjectiveCompleteTool_1 = require("../tools/MarkObjectiveCompleteTool");
|
|
60
|
+
const MarkObjectiveNotCompletableTool_1 = require("../tools/MarkObjectiveNotCompletableTool");
|
|
61
|
+
const SummarizeLearningsTool_1 = require("../tools/SummarizeLearningsTool");
|
|
62
|
+
const MakeCommentTool_1 = require("../tools/MakeCommentTool");
|
|
63
|
+
const BrowserStateNotFoundException_1 = require("../exceptions/BrowserStateNotFoundException");
|
|
64
|
+
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
65
|
+
const HoverOverElementTool_1 = require("../tools/HoverOverElementTool");
|
|
66
|
+
const DonobuDeploymentEnvironment_1 = require("../models/DonobuDeploymentEnvironment");
|
|
67
|
+
const Logger_1 = require("../utils/Logger");
|
|
68
|
+
const prettier = __importStar(require("prettier"));
|
|
69
|
+
class DonobuFlowsManager {
|
|
70
|
+
deploymentEnvironment;
|
|
71
|
+
gptConfigsManager;
|
|
72
|
+
agentsManager;
|
|
73
|
+
flowsPersistenceFactory;
|
|
74
|
+
allTools;
|
|
75
|
+
static DEFAULT_TOOL_TIP_DURATION = 2247;
|
|
76
|
+
static DEFAULT_MAX_ITERATIONS = 10;
|
|
77
|
+
static DEFAULT_DEVICE_NAME = 'Desktop Chromium';
|
|
78
|
+
static DEFAULT_BROWSER_STATE_FILENAME = 'browserstate.json';
|
|
79
|
+
activeFlows = new Map();
|
|
80
|
+
constructor(deploymentEnvironment, gptConfigsManager, agentsManager, flowsPersistenceFactory, allTools) {
|
|
81
|
+
this.deploymentEnvironment = deploymentEnvironment;
|
|
82
|
+
this.gptConfigsManager = gptConfigsManager;
|
|
83
|
+
this.agentsManager = agentsManager;
|
|
84
|
+
this.flowsPersistenceFactory = flowsPersistenceFactory;
|
|
85
|
+
this.allTools = allTools;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create a flow with the given parameters and invoke its `DonobuFlow#run`
|
|
89
|
+
* method, adding it to list of active flows.
|
|
90
|
+
*/
|
|
91
|
+
async createFlow(flowParams) {
|
|
92
|
+
const gptClientData = await this.createGptClient(flowParams.gptConfigNameOverride ?? null);
|
|
93
|
+
const initialRunMode = flowParams.initialRunMode ??
|
|
94
|
+
(gptClientData ? FlowMetadata_1.RunMode.AUTONOMOUS : FlowMetadata_1.RunMode.INSTRUCT);
|
|
95
|
+
this.validateFlowParams(flowParams, gptClientData.gptClient, initialRunMode);
|
|
96
|
+
const isControlPanelEnabled = !flowParams.headless && (flowParams.isControlPanelEnabled ?? true);
|
|
97
|
+
const allowedTools = this.setupAllowedTools(flowParams, gptClientData !== null);
|
|
98
|
+
const toolManager = new ToolManager_1.ToolManager(allowedTools);
|
|
99
|
+
const toolCallsOnStart = this.prepareInitialToolCalls(flowParams);
|
|
100
|
+
const toolTipDuration = flowParams.defaultToolTipDurationMilliseconds ??
|
|
101
|
+
DonobuFlowsManager.DEFAULT_TOOL_TIP_DURATION;
|
|
102
|
+
const tooltipper = new ToolTipper_1.ToolTipper(toolTipDuration);
|
|
103
|
+
const maxIterations = flowParams.maxIterations ?? DonobuFlowsManager.DEFAULT_MAX_ITERATIONS;
|
|
104
|
+
if (maxIterations < 0) {
|
|
105
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('maxIterations', String(flowParams.maxIterations));
|
|
106
|
+
}
|
|
107
|
+
const { deviceName, remoteBrowserInstanceUrl } = this.setupBrowserConfig(flowParams);
|
|
108
|
+
const flowMetadata = {
|
|
109
|
+
id: crypto.randomUUID(),
|
|
110
|
+
createdWithDonobuVersion: MiscUtils_1.MiscUtils.DONOBU_VERSION,
|
|
111
|
+
name: flowParams.name || null,
|
|
112
|
+
initialBrowserState: flowParams.initialBrowserState ?? null,
|
|
113
|
+
persistBrowserState: flowParams.persistBrowserState ?? false,
|
|
114
|
+
runMode: initialRunMode,
|
|
115
|
+
isControlPanelEnabled: isControlPanelEnabled,
|
|
116
|
+
gptConfigName: gptClientData.gptConfigName,
|
|
117
|
+
hasGptConfigNameOverride: !gptClientData.agentName,
|
|
118
|
+
customTools: flowParams.customTools ?? null,
|
|
119
|
+
defaultToolTipDurationMilliseconds: tooltipper.defaultDuration,
|
|
120
|
+
deviceName: deviceName,
|
|
121
|
+
remoteBrowserInstanceUrl: remoteBrowserInstanceUrl,
|
|
122
|
+
callbackUrl: flowParams.callbackUrl || null,
|
|
123
|
+
headless: flowParams.headless ?? false,
|
|
124
|
+
targetWebsite: flowParams.targetWebsite,
|
|
125
|
+
overallObjective: flowParams.overallObjective ?? null,
|
|
126
|
+
allowedTools: allowedTools.map((tool) => tool.name),
|
|
127
|
+
resultJsonSchema: flowParams.resultJsonSchema || null,
|
|
128
|
+
maxIterations: maxIterations,
|
|
129
|
+
result: null,
|
|
130
|
+
inputTokensUsed: 0,
|
|
131
|
+
completionTokensUsed: 0,
|
|
132
|
+
iterations: 0,
|
|
133
|
+
startedAt: null,
|
|
134
|
+
completedAt: null,
|
|
135
|
+
state: FlowMetadata_1.State.UNSTARTED,
|
|
136
|
+
nextState: null,
|
|
137
|
+
};
|
|
138
|
+
const tempDirectoryForVideos = this.createTempDirectoryForFlow(flowMetadata.id);
|
|
139
|
+
const flowsPersistence = await this.flowsPersistenceFactory.createPersistenceLayer();
|
|
140
|
+
const browserStorageState = flowParams.initialBrowserState
|
|
141
|
+
? await this.getBrowserStorageState(flowParams.initialBrowserState)
|
|
142
|
+
: undefined;
|
|
143
|
+
const browserFramework = deviceName === null
|
|
144
|
+
? await BrowserFramework_1.BrowserFramework.forRemoteBrowser(remoteBrowserInstanceUrl, tempDirectoryForVideos, browserStorageState)
|
|
145
|
+
: await BrowserFramework_1.BrowserFramework.forDevice(deviceName, flowParams.headless ?? false, tempDirectoryForVideos, browserStorageState);
|
|
146
|
+
const donobuFlow = new DonobuFlow_1.DonobuFlow(this, browserFramework.browserContext, flowsPersistence, gptClientData.gptClient, toolManager, tooltipper, toolCallsOnStart, [], [], {
|
|
147
|
+
current: null,
|
|
148
|
+
}, flowMetadata);
|
|
149
|
+
try {
|
|
150
|
+
await flowsPersistence.saveMetadata(flowMetadata);
|
|
151
|
+
const job = this.runFlow(donobuFlow, tempDirectoryForVideos, flowsPersistence);
|
|
152
|
+
const flowHandle = { donobuFlow, job };
|
|
153
|
+
this.activeFlows.set(flowMetadata.id, flowHandle);
|
|
154
|
+
return flowHandle;
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
await donobuFlow.close();
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Loads the given flow by ID and returns a `CreateDonobuFlow` object that can be passed to `createFlow`
|
|
163
|
+
* as to execute the flow as a rerun (i.e. without agentic decisioning).
|
|
164
|
+
*
|
|
165
|
+
* @param flowId The ID of the flow to prepare as a rerun.
|
|
166
|
+
* @returns Parameters that can be passed to createFlow to execute the flow as a rerun.
|
|
167
|
+
*/
|
|
168
|
+
async getFlowAsRerun(flowId) {
|
|
169
|
+
const priorFlowMetadata = await this.getFlowMetadata(flowId);
|
|
170
|
+
const originalToolCalls = await this.getToolCalls(flowId);
|
|
171
|
+
const toolCallsOnStart = this.prepareToolCallsForRerun(originalToolCalls);
|
|
172
|
+
const allowedTools = priorFlowMetadata.allowedTools ?? [];
|
|
173
|
+
return {
|
|
174
|
+
targetWebsite: priorFlowMetadata.targetWebsite,
|
|
175
|
+
overallObjective: priorFlowMetadata.overallObjective ?? undefined,
|
|
176
|
+
name: priorFlowMetadata.name ?? undefined,
|
|
177
|
+
initialBrowserState: priorFlowMetadata.initialBrowserState ?? undefined,
|
|
178
|
+
persistBrowserState: priorFlowMetadata.persistBrowserState ?? undefined,
|
|
179
|
+
deviceName: priorFlowMetadata.deviceName ?? undefined,
|
|
180
|
+
remoteBrowserInstanceUrl: priorFlowMetadata.remoteBrowserInstanceUrl ?? undefined,
|
|
181
|
+
callbackUrl: priorFlowMetadata.callbackUrl ?? undefined,
|
|
182
|
+
headless: priorFlowMetadata.headless,
|
|
183
|
+
customTools: priorFlowMetadata.customTools ?? undefined,
|
|
184
|
+
maxIterations: priorFlowMetadata.maxIterations,
|
|
185
|
+
gptConfigNameOverride: priorFlowMetadata.gptConfigName ?? undefined,
|
|
186
|
+
defaultToolTipDurationMilliseconds: 0,
|
|
187
|
+
initialRunMode: FlowMetadata_1.RunMode.INSTRUCT,
|
|
188
|
+
isControlPanelEnabled: false,
|
|
189
|
+
allowedTools: allowedTools,
|
|
190
|
+
toolCallsOnStart: toolCallsOnStart,
|
|
191
|
+
resultJsonSchema: priorFlowMetadata.resultJsonSchema ?? undefined,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/** Add a proposed tool call the tool call queue for the given flow by ID. */
|
|
195
|
+
async proposeToolCall(flowId, toolName, parameters) {
|
|
196
|
+
const activeFlowHandle = this.isLocallyRunning()
|
|
197
|
+
? this.activeFlows.get(flowId)
|
|
198
|
+
: null;
|
|
199
|
+
if (!activeFlowHandle) {
|
|
200
|
+
throw new ActiveFlowNotFoundException_1.ActiveFlowNotFoundException(flowId);
|
|
201
|
+
}
|
|
202
|
+
const tool = this.allTools.find((t) => t.name === toolName);
|
|
203
|
+
if (!tool) {
|
|
204
|
+
throw new UnknownToolException_1.UnknownToolException(toolName);
|
|
205
|
+
}
|
|
206
|
+
activeFlowHandle.donobuFlow.proposedToolCalls.push({
|
|
207
|
+
name: tool.name,
|
|
208
|
+
parameters: parameters,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* If the application is running in a non-hosted context, returns a direct,
|
|
213
|
+
* raw, `DonobuFlow` object by ID. If there is no flow in an active state
|
|
214
|
+
* with the given ID, or the application is running on some far flung server,
|
|
215
|
+
* then `ActiveFlowNotFoundException` is thrown. Mutations made to the
|
|
216
|
+
* returned object will be reflected by the active flow, and vice versa.
|
|
217
|
+
*/
|
|
218
|
+
getActiveFlow(flowId) {
|
|
219
|
+
if (!this.isLocallyRunning()) {
|
|
220
|
+
throw new ActiveFlowNotFoundException_1.ActiveFlowNotFoundException(flowId);
|
|
221
|
+
}
|
|
222
|
+
const activeFlowHandle = this.activeFlows.get(flowId);
|
|
223
|
+
if (!activeFlowHandle) {
|
|
224
|
+
throw new ActiveFlowNotFoundException_1.ActiveFlowNotFoundException(flowId);
|
|
225
|
+
}
|
|
226
|
+
return activeFlowHandle.donobuFlow;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get flows metadata across multiple persistence layers with pagination and filtering.
|
|
230
|
+
*/
|
|
231
|
+
async getFlowsMetadata(query) {
|
|
232
|
+
// Parse the composite page token or create initial state.
|
|
233
|
+
const paginationState = this.parseCompositePageToken(query.pageToken);
|
|
234
|
+
const requestedLimit = Math.min(Math.max(1, query.limit || 100), 100);
|
|
235
|
+
// Results container.
|
|
236
|
+
const combinedResults = [];
|
|
237
|
+
// Get all persistence layers.
|
|
238
|
+
const persistenceLayers = await this.flowsPersistenceFactory.createPersistenceLayers();
|
|
239
|
+
// Query each persistence layer with its own pagination.
|
|
240
|
+
for (let i = 0; i < persistenceLayers.length; i++) {
|
|
241
|
+
// Skip layers we've already exhausted.
|
|
242
|
+
if (paginationState.exhaustedSources.includes(i)) {
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
// Calculate per-source limit - we need more than requested to merge
|
|
246
|
+
// properly.
|
|
247
|
+
//
|
|
248
|
+
// Double the limit to ensure we have enough data for sorting/merging.
|
|
249
|
+
const sourceLimit = Math.min(requestedLimit * 2, 100);
|
|
250
|
+
// Create a source-specific query, preserving all filter params
|
|
251
|
+
const sourceQuery = {
|
|
252
|
+
...query,
|
|
253
|
+
limit: sourceLimit,
|
|
254
|
+
pageToken: paginationState.sourceTokens[i],
|
|
255
|
+
};
|
|
256
|
+
const sourceResult = await persistenceLayers[i].getFlows(sourceQuery);
|
|
257
|
+
// Wrap each item with its source index.
|
|
258
|
+
const itemsWithSource = sourceResult.items.map((flow) => ({
|
|
259
|
+
flow,
|
|
260
|
+
sourceIndex: i,
|
|
261
|
+
}));
|
|
262
|
+
// Add to combined results.
|
|
263
|
+
combinedResults.push(...itemsWithSource);
|
|
264
|
+
// Update pagination state.
|
|
265
|
+
if (sourceResult.nextPageToken) {
|
|
266
|
+
paginationState.sourceTokens[i] = sourceResult.nextPageToken;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
// Mark this source as exhausted.
|
|
270
|
+
paginationState.exhaustedSources.push(i);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
// Sort all results by creation date (newest first).
|
|
274
|
+
combinedResults.sort((a, b) => {
|
|
275
|
+
return (b.flow.startedAt || 0) - (a.flow.startedAt || 0);
|
|
276
|
+
});
|
|
277
|
+
// Take only the requested limit.
|
|
278
|
+
const limitedResults = combinedResults.slice(0, requestedLimit);
|
|
279
|
+
// Get the last timestamp for cursor-based continuation.
|
|
280
|
+
const lastTimestamp = limitedResults.length > 0
|
|
281
|
+
? limitedResults[limitedResults.length - 1].flow.startedAt
|
|
282
|
+
: null;
|
|
283
|
+
// Update the cursor timestamp in pagination state.
|
|
284
|
+
paginationState.cursorTimestamp = lastTimestamp;
|
|
285
|
+
// Are there more results?
|
|
286
|
+
const hasMore = combinedResults.length > requestedLimit ||
|
|
287
|
+
paginationState.exhaustedSources.length < persistenceLayers.length;
|
|
288
|
+
// Extract just the flow metadata objects for return.
|
|
289
|
+
const cleanResults = limitedResults.map((item) => item.flow);
|
|
290
|
+
return {
|
|
291
|
+
items: cleanResults,
|
|
292
|
+
nextPageToken: hasMore
|
|
293
|
+
? this.createCompositePageToken(paginationState)
|
|
294
|
+
: undefined,
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Returns the metadata for the given flow by ID. If the flow is active, the
|
|
299
|
+
* returned metadata object is shared with the underlying flow and changes
|
|
300
|
+
* made to this metadata object will be visible to the flow. If the flow is
|
|
301
|
+
* not active, a copy of the persisted metadata is returned.
|
|
302
|
+
*/
|
|
303
|
+
async getFlowMetadata(flowId) {
|
|
304
|
+
const activeFlowHandle = this.isLocallyRunning()
|
|
305
|
+
? this.activeFlows.get(flowId)
|
|
306
|
+
: null;
|
|
307
|
+
if (activeFlowHandle) {
|
|
308
|
+
return activeFlowHandle.donobuFlow.metadata;
|
|
309
|
+
}
|
|
310
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
311
|
+
try {
|
|
312
|
+
return await persistence.getMetadataByFlowId(flowId);
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
316
|
+
throw error;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Returns the metadata for the given flow by name.
|
|
324
|
+
*/
|
|
325
|
+
async getFlowByName(flowName) {
|
|
326
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
327
|
+
try {
|
|
328
|
+
return await persistence.getMetadataByFlowName(flowName);
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
332
|
+
throw error;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
337
|
+
}
|
|
338
|
+
/** Returns all the tool calls made by the given flow by ID. */
|
|
339
|
+
async getToolCalls(flowId) {
|
|
340
|
+
const activeFlowHandle = this.isLocallyRunning()
|
|
341
|
+
? this.activeFlows.get(flowId)
|
|
342
|
+
: null;
|
|
343
|
+
if (activeFlowHandle) {
|
|
344
|
+
return [...activeFlowHandle.donobuFlow.invokedToolCalls].sort((a, b) => new Date(a.startedAt).getTime() - new Date(b.startedAt).getTime());
|
|
345
|
+
}
|
|
346
|
+
const persistenceLayers = await this.flowsPersistenceFactory.createPersistenceLayers();
|
|
347
|
+
for (const persistence of persistenceLayers) {
|
|
348
|
+
try {
|
|
349
|
+
return await persistence.getToolCalls(flowId);
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
353
|
+
throw error;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Attempts to delete a flow by ID. If the flow is active, then
|
|
361
|
+
* `CannotDeleteRunningFlowException` is thrown. If the flow is not active,
|
|
362
|
+
* then the flow's persisted data is deleted.
|
|
363
|
+
*/
|
|
364
|
+
async deleteFlowById(flowId) {
|
|
365
|
+
const activeFlow = this.isLocallyRunning()
|
|
366
|
+
? this.activeFlows.get(flowId)
|
|
367
|
+
: null;
|
|
368
|
+
if (activeFlow) {
|
|
369
|
+
throw new CannotDeleteRunningFlowException_1.CannotDeleteRunningFlowException(flowId);
|
|
370
|
+
}
|
|
371
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
372
|
+
try {
|
|
373
|
+
const metadata = await persistence.getMetadataByFlowId(flowId);
|
|
374
|
+
if ((0, FlowMetadata_1.isComplete)(metadata.state)) {
|
|
375
|
+
await persistence.deleteFlow(flowId);
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
catch (error) {
|
|
380
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
381
|
+
throw error;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Attempts to cancel a flow by ID. If the flow is active, the flow is ended
|
|
388
|
+
* with a state of `FAILED`. If the flow is not active, this method has no
|
|
389
|
+
* effect.
|
|
390
|
+
*/
|
|
391
|
+
async cancelFlow(flowId) {
|
|
392
|
+
const activeFlowHandle = this.isLocallyRunning()
|
|
393
|
+
? this.activeFlows.get(flowId)
|
|
394
|
+
: null;
|
|
395
|
+
if (activeFlowHandle) {
|
|
396
|
+
activeFlowHandle.donobuFlow.metadata.nextState = FlowMetadata_1.State.FAILED;
|
|
397
|
+
const currentPage = activeFlowHandle.donobuFlow.focusedPage.current;
|
|
398
|
+
if (currentPage) {
|
|
399
|
+
await activeFlowHandle.donobuFlow.close();
|
|
400
|
+
}
|
|
401
|
+
return activeFlowHandle.donobuFlow.metadata;
|
|
402
|
+
}
|
|
403
|
+
return await this.getFlowMetadata(flowId);
|
|
404
|
+
}
|
|
405
|
+
/** Creates a Node.js Microsoft Playwright script to replay the given flow. */
|
|
406
|
+
async getFlowAsPlaywrightScript(flowId) {
|
|
407
|
+
// These tools are not supported in the generated script because they have
|
|
408
|
+
// static outputs that have no side effects, so they are not actually
|
|
409
|
+
// doing anything.
|
|
410
|
+
const unsupportedToolsByName = new Set([
|
|
411
|
+
MakeCommentTool_1.MakeCommentTool.NAME,
|
|
412
|
+
MarkObjectiveCompleteTool_1.MarkObjectiveCompleteTool.NAME,
|
|
413
|
+
MarkObjectiveNotCompletableTool_1.MarkObjectiveNotCompletableTool.NAME,
|
|
414
|
+
SummarizeLearningsTool_1.SummarizeLearningsTool.NAME,
|
|
415
|
+
]);
|
|
416
|
+
const flowMetadata = await this.getFlowMetadata(flowId);
|
|
417
|
+
const toolCalls = (await this.getFlowAsRerun(flowId)).toolCallsOnStart;
|
|
418
|
+
const doAnyToolCallsRequireGptClient = toolCalls
|
|
419
|
+
.map((toolCall) => {
|
|
420
|
+
return toolCall.name;
|
|
421
|
+
})
|
|
422
|
+
.map((toolCallName) => {
|
|
423
|
+
return this.allTools.find((t) => t.name === toolCallName);
|
|
424
|
+
})
|
|
425
|
+
.filter((tool) => {
|
|
426
|
+
return tool?.requiresGpt;
|
|
427
|
+
}).length > 0;
|
|
428
|
+
let gptConfig = null;
|
|
429
|
+
if (doAnyToolCallsRequireGptClient) {
|
|
430
|
+
if (flowMetadata.gptConfigName) {
|
|
431
|
+
gptConfig = await this.gptConfigsManager.get(flowMetadata.gptConfigName);
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
const gptConfigName = await this.agentsManager.get('flow-runner');
|
|
435
|
+
if (gptConfigName) {
|
|
436
|
+
gptConfig = await this.gptConfigsManager.get(gptConfigName);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
const gptSetupNote = doAnyToolCallsRequireGptClient
|
|
441
|
+
? ` *
|
|
442
|
+
* Also, since this test is using tools that require the usage of an LLM, be
|
|
443
|
+
* sure to have an appropriate LLM API key available as an environment variable
|
|
444
|
+
* (e.g. OPENAI_API_KEY, ANTHROPIC_API_KEY, etc).
|
|
445
|
+
`
|
|
446
|
+
: ' ';
|
|
447
|
+
const hasObjective = (flowMetadata.overallObjective?.trim().length ?? 0) > 0;
|
|
448
|
+
const formattedObjective = hasObjective
|
|
449
|
+
? '\n// Overall objective:\n' +
|
|
450
|
+
flowMetadata
|
|
451
|
+
.overallObjective.split('\n')
|
|
452
|
+
.map((line) => `// ${line}`) // Prefix each line with comment marker.
|
|
453
|
+
.join('\n')
|
|
454
|
+
: '';
|
|
455
|
+
const testName = flowMetadata.name
|
|
456
|
+
? flowMetadata.name
|
|
457
|
+
// Escape backslashes first.
|
|
458
|
+
.replace(/\\/g, '\\\\')
|
|
459
|
+
// Escape single quotes.
|
|
460
|
+
.replace(/'/g, "\\'")
|
|
461
|
+
// Escape newlines.
|
|
462
|
+
.replace(/\n/g, '\\n')
|
|
463
|
+
// Escape carriage returns.
|
|
464
|
+
.replace(/\r/g, '\\r')
|
|
465
|
+
: `Test for ${flowMetadata.targetWebsite}`;
|
|
466
|
+
const useStorageState = flowMetadata.initialBrowserState
|
|
467
|
+
? `storageState: getBrowserStorageStateFixture(${JSON.stringify(flowMetadata.initialBrowserState, null, 2)}),`
|
|
468
|
+
: undefined;
|
|
469
|
+
let useGptClientImport = undefined;
|
|
470
|
+
let useGptClient = undefined;
|
|
471
|
+
if (gptConfig) {
|
|
472
|
+
switch (gptConfig.type) {
|
|
473
|
+
case 'ANTHROPIC':
|
|
474
|
+
useGptClientImport =
|
|
475
|
+
"import { getAnthropicClientFixture } from 'donobu';";
|
|
476
|
+
useGptClient = `gptClient: getAnthropicClientFixture('${gptConfig.modelName}'),`;
|
|
477
|
+
break;
|
|
478
|
+
case 'GOOGLE_GEMINI':
|
|
479
|
+
useGptClientImport =
|
|
480
|
+
"import { getGoogleGeminiClientFixture } from 'donobu';";
|
|
481
|
+
useGptClient = `gptClient: getGoogleGeminiClientFixture('${gptConfig.modelName}'),`;
|
|
482
|
+
break;
|
|
483
|
+
case 'OPENAI':
|
|
484
|
+
useGptClientImport =
|
|
485
|
+
"import { getOpenAiClientFixture } from 'donobu';";
|
|
486
|
+
useGptClient = `gptClient: getOpenAiClientFixture('${gptConfig.modelName}'),`;
|
|
487
|
+
break;
|
|
488
|
+
case 'ANTHROPIC_AWS_BEDROCK':
|
|
489
|
+
useGptClientImport =
|
|
490
|
+
"import { getAnthropicAwsBedrockClient } from 'donobu';";
|
|
491
|
+
useGptClient = `gptClient: getAnthropicAwsBedrockClient('${gptConfig.modelName}', '${gptConfig.region}'),`;
|
|
492
|
+
break;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
let testExtension = '';
|
|
496
|
+
if (useStorageState || useGptClient) {
|
|
497
|
+
testExtension = `.extend({${useStorageState ?? ''}${useGptClient ?? ''}})`;
|
|
498
|
+
}
|
|
499
|
+
const toolManager = new ToolManager_1.ToolManager(this.allTools);
|
|
500
|
+
const scriptedToolCalls = toolCalls
|
|
501
|
+
.filter((toolCall) => !unsupportedToolsByName.has(toolCall.name))
|
|
502
|
+
.map((toolCall) => {
|
|
503
|
+
return toolManager.convertToPlaywrightCode(toolCall);
|
|
504
|
+
})
|
|
505
|
+
.join('\n');
|
|
506
|
+
const script = `/**
|
|
507
|
+
* Be sure that Donobu is installed before running this script...
|
|
508
|
+
* 'npm install @donobu/donobu' or 'yarn add @donobu/donobu'
|
|
509
|
+
*
|
|
510
|
+
* Also, be sure that Playwright's browsers are installed...
|
|
511
|
+
* 'npx playwright install'
|
|
512
|
+
${gptSetupNote}*/
|
|
513
|
+
import { test } from 'donobu';${useGptClientImport ? '\n' + useGptClientImport : ''}${useStorageState ? "\nimport { getBrowserStorageStateFixture } from 'donobu';" : ''}
|
|
514
|
+
|
|
515
|
+
${formattedObjective}
|
|
516
|
+
test${testExtension}('${testName}', async ({ page }) => {
|
|
517
|
+
${scriptedToolCalls}
|
|
518
|
+
});
|
|
519
|
+
`;
|
|
520
|
+
return this.prettifyCode(script);
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Creates a GPT client using the provided GPT configuration by name. If the
|
|
524
|
+
* configuration name is null, or resolves to a missing configuration, then
|
|
525
|
+
* the default GPT configuration associated with the 'flow-runner' agent is
|
|
526
|
+
* used.
|
|
527
|
+
*
|
|
528
|
+
* This method is public for testing purposes only.
|
|
529
|
+
**/
|
|
530
|
+
async createGptClient(gptConfigName) {
|
|
531
|
+
if (gptConfigName) {
|
|
532
|
+
try {
|
|
533
|
+
const gptConfig = await this.gptConfigsManager.get(gptConfigName);
|
|
534
|
+
const gptClient = await GptClientFactory_1.GptClientFactory.createFromGptConfig(gptConfig);
|
|
535
|
+
return {
|
|
536
|
+
gptConfigName: gptConfigName,
|
|
537
|
+
agentName: null,
|
|
538
|
+
gptClient: gptClient,
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
catch (_error) {
|
|
542
|
+
Logger_1.Logger.appLogger.warn(`Failed to find GPT configuration: ${gptConfigName}, will default to the 'flow-runner' agent config (if it exists).`);
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
const defaultGptConfigName = await this.agentsManager.get('flow-runner');
|
|
546
|
+
if (!defaultGptConfigName) {
|
|
547
|
+
return {
|
|
548
|
+
gptConfigName: null,
|
|
549
|
+
agentName: null,
|
|
550
|
+
gptClient: null,
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
const gptConfig = await this.gptConfigsManager.get(defaultGptConfigName);
|
|
554
|
+
const gptClient = await GptClientFactory_1.GptClientFactory.createFromGptConfig(gptConfig);
|
|
555
|
+
return {
|
|
556
|
+
gptConfigName: defaultGptConfigName,
|
|
557
|
+
agentName: 'flow-runner',
|
|
558
|
+
gptClient: gptClient,
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Loads the browser state associated with the given flow. Throws
|
|
563
|
+
* {@link BrowserStateNotFoundException} if it is not found.
|
|
564
|
+
*/
|
|
565
|
+
async getBrowserStorageState(flowIdOrName) {
|
|
566
|
+
let flowMetadata;
|
|
567
|
+
switch (flowIdOrName.type) {
|
|
568
|
+
case 'id':
|
|
569
|
+
flowMetadata = await this.getFlowMetadata(flowIdOrName.value);
|
|
570
|
+
break;
|
|
571
|
+
case 'name':
|
|
572
|
+
flowMetadata = await this.getFlowByName(flowIdOrName.value);
|
|
573
|
+
break;
|
|
574
|
+
default:
|
|
575
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('type', flowIdOrName.type);
|
|
576
|
+
}
|
|
577
|
+
for (const persistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
|
|
578
|
+
try {
|
|
579
|
+
const browserState = await persistence.getBrowserState(flowMetadata.id);
|
|
580
|
+
if (browserState) {
|
|
581
|
+
return browserState;
|
|
582
|
+
}
|
|
583
|
+
else {
|
|
584
|
+
throw new BrowserStateNotFoundException_1.BrowserStateNotFoundException(flowMetadata.id);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
catch (error) {
|
|
588
|
+
if (!(error instanceof FlowNotFoundException_1.FlowNotFoundException)) {
|
|
589
|
+
throw error;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
throw new BrowserStateNotFoundException_1.BrowserStateNotFoundException(flowMetadata.id);
|
|
594
|
+
}
|
|
595
|
+
validateFlowParams(flowParams, gptClient, initialRunMode) {
|
|
596
|
+
const validTargetWebsiteProtocols = ['https:', 'http:', 'file:'];
|
|
597
|
+
const validCallbackUrlProtocols = ['https:', 'http:'];
|
|
598
|
+
const parsedTargetWebsite = DonobuFlowsManager.parseUrl(flowParams.targetWebsite);
|
|
599
|
+
const parsedCallbackUrl = DonobuFlowsManager.parseUrl(flowParams.callbackUrl);
|
|
600
|
+
if (parsedTargetWebsite &&
|
|
601
|
+
!validTargetWebsiteProtocols.some((protocol) => protocol === parsedTargetWebsite.protocol)) {
|
|
602
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('targetWebsite', flowParams.targetWebsite, 'the URL must start with a supported protocol (example: "https://")');
|
|
603
|
+
}
|
|
604
|
+
else if (flowParams.targetWebsite && !parsedTargetWebsite) {
|
|
605
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('targetWebsite', flowParams.targetWebsite, 'the URL is malformed');
|
|
606
|
+
}
|
|
607
|
+
if (parsedCallbackUrl &&
|
|
608
|
+
!validCallbackUrlProtocols.some((protocol) => protocol === parsedCallbackUrl.protocol)) {
|
|
609
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('callbackUrl', flowParams.callbackUrl, 'the URL must start with a supported protocol (example: "https://")');
|
|
610
|
+
}
|
|
611
|
+
else if (flowParams.callbackUrl && !parsedCallbackUrl) {
|
|
612
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('callbackUrl', flowParams.callbackUrl, 'the URL is malformed');
|
|
613
|
+
}
|
|
614
|
+
if ((flowParams.overallObjective?.trim().length ?? 0) === 0 &&
|
|
615
|
+
initialRunMode === FlowMetadata_1.RunMode.AUTONOMOUS) {
|
|
616
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('overallObjective', flowParams.overallObjective, `'initialRunMode' has a value of '${FlowMetadata_1.RunMode.AUTONOMOUS}'`);
|
|
617
|
+
}
|
|
618
|
+
if (flowParams.name && flowParams.name.length > 255) {
|
|
619
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('name', flowParams.name, 'the value cannot be longer than 255 characters');
|
|
620
|
+
}
|
|
621
|
+
if (initialRunMode === FlowMetadata_1.RunMode.AUTONOMOUS && !gptClient) {
|
|
622
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('initialRunMode', initialRunMode, `no GPT client is available`);
|
|
623
|
+
}
|
|
624
|
+
if (flowParams.deviceName && flowParams.remoteBrowserInstanceUrl) {
|
|
625
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('deviceName', flowParams.deviceName, "'deviceName' and 'remoteBrowserInstanceUrl' cannot both be non-null");
|
|
626
|
+
}
|
|
627
|
+
if (!gptClient) {
|
|
628
|
+
this.checkIfAnyToolsRequireGpt(flowParams.allowedTools ?? null, flowParams.toolCallsOnStart ?? null);
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
setupAllowedTools(flowParams, hasGptClient) {
|
|
632
|
+
const customTools = flowParams.customTools?.map((tool) => new CustomToolRunnerTool_1.CustomToolRunnerTool(tool)) ??
|
|
633
|
+
[];
|
|
634
|
+
const toolsNeededOnStart = flowParams.toolCallsOnStart?.map((t) => t.name) ?? [];
|
|
635
|
+
let prepackagedTools;
|
|
636
|
+
if (flowParams.allowedTools?.length) {
|
|
637
|
+
const allowedTools = [...toolsNeededOnStart, ...flowParams.allowedTools];
|
|
638
|
+
// The user has specified a list of tools to use.
|
|
639
|
+
prepackagedTools = this.allTools.filter((tool) => allowedTools.includes(tool.name));
|
|
640
|
+
}
|
|
641
|
+
else {
|
|
642
|
+
// The user has not specified a list of tools to use, so use the default.
|
|
643
|
+
const allowedTools = [
|
|
644
|
+
...toolsNeededOnStart,
|
|
645
|
+
...ToolManager_1.ToolManager.DEFAULT_TOOLS.map((t) => t.name),
|
|
646
|
+
];
|
|
647
|
+
prepackagedTools = this.allTools.filter((tool) => allowedTools.includes(tool.name));
|
|
648
|
+
}
|
|
649
|
+
// If there is no GPT client, only include tools that do not require it.
|
|
650
|
+
const prepackagedToolsWithGptFiltered = prepackagedTools.filter((tool) => {
|
|
651
|
+
return hasGptClient || !tool.requiresGpt;
|
|
652
|
+
});
|
|
653
|
+
return [...customTools, ...prepackagedToolsWithGptFiltered];
|
|
654
|
+
}
|
|
655
|
+
prepareInitialToolCalls(flowParams) {
|
|
656
|
+
if (!flowParams.toolCallsOnStart?.length && flowParams.targetWebsite) {
|
|
657
|
+
return [
|
|
658
|
+
{
|
|
659
|
+
name: GoToWebpageTool_1.GoToWebpageTool.NAME,
|
|
660
|
+
parameters: {
|
|
661
|
+
rationale: 'Initializing web navigation.',
|
|
662
|
+
url: flowParams.targetWebsite.toString(),
|
|
663
|
+
},
|
|
664
|
+
},
|
|
665
|
+
];
|
|
666
|
+
}
|
|
667
|
+
if (flowParams.toolCallsOnStart) {
|
|
668
|
+
return flowParams.toolCallsOnStart;
|
|
669
|
+
}
|
|
670
|
+
else {
|
|
671
|
+
return [];
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
setupBrowserConfig(flowParams) {
|
|
675
|
+
if (!flowParams.remoteBrowserInstanceUrl) {
|
|
676
|
+
const deviceName = flowParams.deviceName ?? DonobuFlowsManager.DEFAULT_DEVICE_NAME;
|
|
677
|
+
if (!BrowserFramework_1.BrowserFramework.supportedDevicesNames().includes(deviceName)) {
|
|
678
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('deviceName', deviceName);
|
|
679
|
+
}
|
|
680
|
+
return {
|
|
681
|
+
deviceName,
|
|
682
|
+
remoteBrowserInstanceUrl: null,
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
return {
|
|
686
|
+
deviceName: null,
|
|
687
|
+
remoteBrowserInstanceUrl: flowParams.remoteBrowserInstanceUrl,
|
|
688
|
+
};
|
|
689
|
+
}
|
|
690
|
+
createTempDirectoryForFlow(flowId) {
|
|
691
|
+
const tempDir = path.join((0, os_1.tmpdir)(), flowId);
|
|
692
|
+
fs.mkdirSync(tempDir);
|
|
693
|
+
return tempDir;
|
|
694
|
+
}
|
|
695
|
+
async runFlow(donobuFlow, tempDirectoryForVideos, flowsPersistence) {
|
|
696
|
+
try {
|
|
697
|
+
await donobuFlow.run();
|
|
698
|
+
this.activeFlows.delete(donobuFlow.metadata.id);
|
|
699
|
+
const videoPath = this.findLargestVideo(tempDirectoryForVideos);
|
|
700
|
+
if (videoPath) {
|
|
701
|
+
const videoBytes = fs.readFileSync(videoPath);
|
|
702
|
+
await flowsPersistence.setVideo(donobuFlow.metadata.id, videoBytes);
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
finally {
|
|
706
|
+
fs.rmSync(tempDirectoryForVideos, { recursive: true, force: true });
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
findLargestVideo(directory) {
|
|
710
|
+
const files = fs
|
|
711
|
+
.readdirSync(directory)
|
|
712
|
+
.filter((file) => file.endsWith('.webm'))
|
|
713
|
+
.map((file) => path.join(directory, file));
|
|
714
|
+
return files.length
|
|
715
|
+
? files.reduce((a, b) => fs.statSync(a).size > fs.statSync(b).size ? a : b)
|
|
716
|
+
: null;
|
|
717
|
+
}
|
|
718
|
+
isLocallyRunning() {
|
|
719
|
+
return this.deploymentEnvironment === DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL;
|
|
720
|
+
}
|
|
721
|
+
checkIfAnyToolsRequireGpt(requestedTools, toolCallsOnStart) {
|
|
722
|
+
const toolMap = new Map(this.allTools.map((tool) => [tool.name, tool]));
|
|
723
|
+
const requestedToolsRequiringGpt = [...(requestedTools ?? [])].filter((name) => toolMap.get(name)?.requiresGpt);
|
|
724
|
+
if (requestedToolsRequiringGpt.length) {
|
|
725
|
+
throw new ToolRequiresGptException_1.ToolRequiresGptException(requestedToolsRequiringGpt[0]);
|
|
726
|
+
}
|
|
727
|
+
const toolCallsRequiringGpt = toolCallsOnStart?.filter((call) => toolMap.get(call.name)?.requiresGpt);
|
|
728
|
+
if (toolCallsRequiringGpt?.length) {
|
|
729
|
+
throw new ToolRequiresGptException_1.ToolRequiresGptException(toolCallsRequiringGpt[0].name);
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
prepareToolCallsForRerun(toolCalls) {
|
|
733
|
+
// Tools that need special handling for their inputs during replay.
|
|
734
|
+
const toolsThatNeedRemappedInputs = new Set([
|
|
735
|
+
ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME,
|
|
736
|
+
ClickTool_1.ClickTool.NAME,
|
|
737
|
+
HoverOverElementTool_1.HoverOverElementTool.NAME,
|
|
738
|
+
InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME,
|
|
739
|
+
InputTextTool_1.InputTextTool.NAME,
|
|
740
|
+
PressKeyTool_1.PressKeyTool.NAME,
|
|
741
|
+
]);
|
|
742
|
+
const proposedToolCalls = [];
|
|
743
|
+
for (const toolCall of toolCalls) {
|
|
744
|
+
const needsRemappedInputs = toolsThatNeedRemappedInputs.has(toolCall.toolName);
|
|
745
|
+
if (needsRemappedInputs && toolCall.outcome.metadata) {
|
|
746
|
+
// These tools write special selector metadata to the outcome object
|
|
747
|
+
// so that it can be replayed easily. Though if the tool call
|
|
748
|
+
// originally failed, the metadata may not exist.
|
|
749
|
+
const revisedArgs = { ...toolCall.parameters };
|
|
750
|
+
revisedArgs.selector = toolCall.outcome.metadata;
|
|
751
|
+
// Unset the flow-variant annotation-related fields
|
|
752
|
+
revisedArgs.annotation = '';
|
|
753
|
+
revisedArgs.whyThisAnnotation = '';
|
|
754
|
+
proposedToolCalls.push({
|
|
755
|
+
name: toolCall.toolName,
|
|
756
|
+
parameters: revisedArgs,
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
else if (needsRemappedInputs && !toolCall.outcome.metadata) {
|
|
760
|
+
// This is not recoverable.
|
|
761
|
+
Logger_1.Logger.appLogger.warn(`Failed to prepre tool call for rerun due to result metadata not existing for: ${JSON.stringify(toolCall)}`);
|
|
762
|
+
}
|
|
763
|
+
else {
|
|
764
|
+
// This is just a normal tool then.
|
|
765
|
+
const tool = this.allTools.find((t) => t.name === toolCall.toolName);
|
|
766
|
+
if (!tool) {
|
|
767
|
+
throw new UnknownToolException_1.UnknownToolException(toolCall.toolName);
|
|
768
|
+
}
|
|
769
|
+
proposedToolCalls.push({
|
|
770
|
+
name: toolCall.toolName,
|
|
771
|
+
parameters: toolCall.parameters,
|
|
772
|
+
});
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
return proposedToolCalls;
|
|
776
|
+
}
|
|
777
|
+
/**
|
|
778
|
+
* Parses the given argument as a URL, returning null on failure.
|
|
779
|
+
*/
|
|
780
|
+
static parseUrl(url) {
|
|
781
|
+
if (!url) {
|
|
782
|
+
return null;
|
|
783
|
+
}
|
|
784
|
+
try {
|
|
785
|
+
return new URL(url);
|
|
786
|
+
}
|
|
787
|
+
catch (_) {
|
|
788
|
+
return null;
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* Parse a composite page token into pagination state
|
|
793
|
+
*/
|
|
794
|
+
parseCompositePageToken(token) {
|
|
795
|
+
if (!token) {
|
|
796
|
+
return {
|
|
797
|
+
sourceTokens: {},
|
|
798
|
+
exhaustedSources: [],
|
|
799
|
+
cursorTimestamp: null,
|
|
800
|
+
};
|
|
801
|
+
}
|
|
802
|
+
try {
|
|
803
|
+
return JSON.parse(Buffer.from(token, 'base64').toString('utf8'));
|
|
804
|
+
}
|
|
805
|
+
catch (_error) {
|
|
806
|
+
// If token parsing fails, start fresh
|
|
807
|
+
return {
|
|
808
|
+
sourceTokens: {},
|
|
809
|
+
exhaustedSources: [],
|
|
810
|
+
cursorTimestamp: null,
|
|
811
|
+
};
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
/**
|
|
815
|
+
* Create a composite page token from pagination state
|
|
816
|
+
*/
|
|
817
|
+
createCompositePageToken(state) {
|
|
818
|
+
return Buffer.from(JSON.stringify(state)).toString('base64');
|
|
819
|
+
}
|
|
820
|
+
async prettifyCode(code) {
|
|
821
|
+
const formattedCode = prettier.format(code, {
|
|
822
|
+
parser: 'typescript',
|
|
823
|
+
semi: true,
|
|
824
|
+
singleQuote: true,
|
|
825
|
+
});
|
|
826
|
+
return formattedCode;
|
|
827
|
+
}
|
|
828
|
+
}
|
|
829
|
+
exports.DonobuFlowsManager = DonobuFlowsManager;
|
|
830
|
+
//# sourceMappingURL=DonobuFlowsManager.js.map
|