donobu 5.17.2 → 5.18.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/README.md +1 -1
- package/dist/apis/TargetsApi.d.ts +3 -0
- package/dist/apis/TargetsApi.js +4 -2
- package/dist/apis/ToolsApi.d.ts +3 -0
- package/dist/apis/ToolsApi.js +5 -3
- package/dist/clients/GptClientFactory.d.ts +4 -1
- package/dist/clients/GptClientFactory.js +5 -2
- package/dist/clients/GptClientPlugin.d.ts +8 -9
- package/dist/clients/GptClientPlugin.js +12 -15
- package/dist/codegen/CodeGenerator.d.ts +5 -4
- package/dist/codegen/CodeGenerator.js +61 -32
- package/dist/esm/apis/TargetsApi.d.ts +3 -0
- package/dist/esm/apis/TargetsApi.js +4 -2
- package/dist/esm/apis/ToolsApi.d.ts +3 -0
- package/dist/esm/apis/ToolsApi.js +5 -3
- package/dist/esm/clients/GptClientFactory.d.ts +4 -1
- package/dist/esm/clients/GptClientFactory.js +5 -2
- package/dist/esm/clients/GptClientPlugin.d.ts +8 -9
- package/dist/esm/clients/GptClientPlugin.js +12 -15
- package/dist/esm/codegen/CodeGenerator.d.ts +5 -4
- package/dist/esm/codegen/CodeGenerator.js +61 -32
- package/dist/esm/lib/ai/PageAi.js +4 -3
- package/dist/esm/lib/page/extendPage.js +1 -1
- package/dist/esm/lib/test/utils/selfHealing.js +3 -4
- package/dist/esm/main.d.ts +5 -4
- package/dist/esm/main.js +11 -24
- package/dist/esm/managers/AdminApiController.js +2 -2
- package/dist/esm/managers/DonobuFlowsManager.d.ts +22 -2
- package/dist/esm/managers/DonobuFlowsManager.js +34 -20
- package/dist/esm/managers/DonobuStack.d.ts +4 -0
- package/dist/esm/managers/DonobuStack.js +27 -4
- package/dist/esm/managers/PluginLoader.d.ts +12 -5
- package/dist/esm/managers/PluginLoader.js +16 -12
- package/dist/esm/managers/ToolManager.d.ts +14 -33
- package/dist/esm/managers/ToolManager.js +34 -200
- package/dist/esm/managers/ToolRegistry.d.ts +34 -0
- package/dist/esm/managers/ToolRegistry.js +178 -0
- package/dist/esm/persistence/PersistencePlugin.d.ts +8 -9
- package/dist/esm/persistence/PersistencePlugin.js +12 -15
- package/dist/esm/persistence/env/EnvPersistenceRegistry.d.ts +2 -1
- package/dist/esm/persistence/env/EnvPersistenceRegistry.js +2 -2
- package/dist/esm/persistence/flows/FlowsPersistenceRegistry.d.ts +2 -1
- package/dist/esm/persistence/flows/FlowsPersistenceRegistry.js +2 -2
- package/dist/esm/targets/TargetRuntimePlugin.d.ts +10 -12
- package/dist/esm/targets/TargetRuntimePlugin.js +16 -24
- package/dist/esm/targets/resolveTargetRuntime.d.ts +5 -7
- package/dist/esm/targets/resolveTargetRuntime.js +5 -8
- package/dist/lib/ai/PageAi.js +4 -3
- package/dist/lib/page/extendPage.js +1 -1
- package/dist/lib/test/utils/selfHealing.js +3 -4
- package/dist/main.d.ts +5 -4
- package/dist/main.js +11 -24
- package/dist/managers/AdminApiController.js +2 -2
- package/dist/managers/DonobuFlowsManager.d.ts +22 -2
- package/dist/managers/DonobuFlowsManager.js +34 -20
- package/dist/managers/DonobuStack.d.ts +4 -0
- package/dist/managers/DonobuStack.js +27 -4
- package/dist/managers/PluginLoader.d.ts +12 -5
- package/dist/managers/PluginLoader.js +16 -12
- package/dist/managers/ToolManager.d.ts +14 -33
- package/dist/managers/ToolManager.js +34 -200
- package/dist/managers/ToolRegistry.d.ts +34 -0
- package/dist/managers/ToolRegistry.js +178 -0
- package/dist/persistence/PersistencePlugin.d.ts +8 -9
- package/dist/persistence/PersistencePlugin.js +12 -15
- package/dist/persistence/env/EnvPersistenceRegistry.d.ts +2 -1
- package/dist/persistence/env/EnvPersistenceRegistry.js +2 -2
- package/dist/persistence/flows/FlowsPersistenceRegistry.d.ts +2 -1
- package/dist/persistence/flows/FlowsPersistenceRegistry.js +2 -2
- package/dist/targets/TargetRuntimePlugin.d.ts +10 -12
- package/dist/targets/TargetRuntimePlugin.js +16 -24
- package/dist/targets/resolveTargetRuntime.d.ts +5 -7
- package/dist/targets/resolveTargetRuntime.js +5 -8
- package/package.json +21 -21
- package/dist/apis/AgentsApi.d.ts.map +0 -1
- package/dist/apis/AgentsApi.js.map +0 -1
- package/dist/apis/AskAiApi.d.ts.map +0 -1
- package/dist/apis/AskAiApi.js.map +0 -1
- package/dist/apis/EnvDataApi.d.ts.map +0 -1
- package/dist/apis/EnvDataApi.js.map +0 -1
- package/dist/apis/FlowsApi.d.ts.map +0 -1
- package/dist/apis/FlowsApi.js.map +0 -1
- package/dist/apis/FlowsFilesApi.d.ts.map +0 -1
- package/dist/apis/FlowsFilesApi.js.map +0 -1
- package/dist/apis/FlowsToolCallsApi.d.ts.map +0 -1
- package/dist/apis/FlowsToolCallsApi.js.map +0 -1
- package/dist/apis/GptConfigsApi.d.ts.map +0 -1
- package/dist/apis/GptConfigsApi.js.map +0 -1
- package/dist/apis/PingApi.d.ts.map +0 -1
- package/dist/apis/PingApi.js.map +0 -1
- package/dist/apis/SchemaApi.d.ts.map +0 -1
- package/dist/apis/SchemaApi.js.map +0 -1
- package/dist/apis/TargetsApi.d.ts.map +0 -1
- package/dist/apis/TargetsApi.js.map +0 -1
- package/dist/apis/ToolsApi.d.ts.map +0 -1
- package/dist/apis/ToolsApi.js.map +0 -1
- package/dist/bindings/NamedBindingCallback.d.ts.map +0 -1
- package/dist/bindings/NamedBindingCallback.js.map +0 -1
- package/dist/bindings/PageInteractionTracker.d.ts.map +0 -1
- package/dist/bindings/PageInteractionTracker.js.map +0 -1
- package/dist/bindings/SetDonobuAnnotations.d.ts.map +0 -1
- package/dist/bindings/SetDonobuAnnotations.js.map +0 -1
- package/dist/browser-side-scripts/dialog-prompt-tracker.d.ts.map +0 -1
- package/dist/browser-side-scripts/dialog-prompt-tracker.js.map +0 -1
- package/dist/browser-side-scripts/donobu-namespace.d.ts.map +0 -1
- package/dist/browser-side-scripts/donobu-namespace.js.map +0 -1
- package/dist/browser-side-scripts/interactive-elements-tracker.d.ts.map +0 -1
- package/dist/browser-side-scripts/interactive-elements-tracker.js.map +0 -1
- package/dist/browser-side-scripts/page-interactions-tracker.d.ts.map +0 -1
- package/dist/browser-side-scripts/page-interactions-tracker.js.map +0 -1
- package/dist/browser-side-scripts/smart-selector-generator.d.ts.map +0 -1
- package/dist/browser-side-scripts/smart-selector-generator.js.map +0 -1
- package/dist/cli/donobu-cli.d.ts.map +0 -1
- package/dist/cli/donobu-cli.js.map +0 -1
- package/dist/cli/generate-site-tests.d.ts.map +0 -1
- package/dist/cli/generate-site-tests.js.map +0 -1
- package/dist/cli/install-donobu-plugin.d.ts.map +0 -1
- package/dist/cli/install-donobu-plugin.js.map +0 -1
- package/dist/cli/playwright-json-to-html.d.ts.map +0 -1
- package/dist/cli/playwright-json-to-html.js.map +0 -1
- package/dist/cli/playwright-json-to-markdown.d.ts.map +0 -1
- package/dist/cli/playwright-json-to-markdown.js.map +0 -1
- package/dist/cli/playwright-json-to-slack-json.d.ts.map +0 -1
- package/dist/cli/playwright-json-to-slack-json.js.map +0 -1
- package/dist/clients/AnthropicGptClient.d.ts.map +0 -1
- package/dist/clients/AnthropicGptClient.js.map +0 -1
- package/dist/clients/DonobuGptClient.d.ts.map +0 -1
- package/dist/clients/DonobuGptClient.js.map +0 -1
- package/dist/clients/GoogleGenerativeAiGptClient.d.ts.map +0 -1
- package/dist/clients/GoogleGenerativeAiGptClient.js.map +0 -1
- package/dist/clients/GptClient.d.ts.map +0 -1
- package/dist/clients/GptClient.js.map +0 -1
- package/dist/clients/GptClientFactory.d.ts.map +0 -1
- package/dist/clients/GptClientFactory.js.map +0 -1
- package/dist/clients/GptClientPlugin.d.ts.map +0 -1
- package/dist/clients/GptClientPlugin.js.map +0 -1
- package/dist/clients/OpenAiGptClient.d.ts.map +0 -1
- package/dist/clients/OpenAiGptClient.js.map +0 -1
- package/dist/clients/VercelAiGptClient.d.ts.map +0 -1
- package/dist/clients/VercelAiGptClient.js.map +0 -1
- package/dist/codegen/CodeGenerator.d.ts.map +0 -1
- package/dist/codegen/CodeGenerator.js.map +0 -1
- package/dist/codegen/runGenerateSiteTests.d.ts.map +0 -1
- package/dist/codegen/runGenerateSiteTests.js.map +0 -1
- package/dist/envVars.d.ts.map +0 -1
- package/dist/envVars.js.map +0 -1
- package/dist/esm/apis/AgentsApi.d.ts.map +0 -1
- package/dist/esm/apis/AgentsApi.js.map +0 -1
- package/dist/esm/apis/AskAiApi.d.ts.map +0 -1
- package/dist/esm/apis/AskAiApi.js.map +0 -1
- package/dist/esm/apis/EnvDataApi.d.ts.map +0 -1
- package/dist/esm/apis/EnvDataApi.js.map +0 -1
- package/dist/esm/apis/FlowsApi.d.ts.map +0 -1
- package/dist/esm/apis/FlowsApi.js.map +0 -1
- package/dist/esm/apis/FlowsFilesApi.d.ts.map +0 -1
- package/dist/esm/apis/FlowsFilesApi.js.map +0 -1
- package/dist/esm/apis/FlowsToolCallsApi.d.ts.map +0 -1
- package/dist/esm/apis/FlowsToolCallsApi.js.map +0 -1
- package/dist/esm/apis/GptConfigsApi.d.ts.map +0 -1
- package/dist/esm/apis/GptConfigsApi.js.map +0 -1
- package/dist/esm/apis/PingApi.d.ts.map +0 -1
- package/dist/esm/apis/PingApi.js.map +0 -1
- package/dist/esm/apis/SchemaApi.d.ts.map +0 -1
- package/dist/esm/apis/SchemaApi.js.map +0 -1
- package/dist/esm/apis/TargetsApi.d.ts.map +0 -1
- package/dist/esm/apis/TargetsApi.js.map +0 -1
- package/dist/esm/apis/ToolsApi.d.ts.map +0 -1
- package/dist/esm/apis/ToolsApi.js.map +0 -1
- package/dist/esm/bindings/NamedBindingCallback.d.ts.map +0 -1
- package/dist/esm/bindings/NamedBindingCallback.js.map +0 -1
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +0 -1
- package/dist/esm/bindings/PageInteractionTracker.js.map +0 -1
- package/dist/esm/bindings/SetDonobuAnnotations.d.ts.map +0 -1
- package/dist/esm/bindings/SetDonobuAnnotations.js.map +0 -1
- package/dist/esm/browser-side-scripts/dialog-prompt-tracker.d.ts.map +0 -1
- package/dist/esm/browser-side-scripts/dialog-prompt-tracker.js.map +0 -1
- package/dist/esm/browser-side-scripts/donobu-namespace.d.ts.map +0 -1
- package/dist/esm/browser-side-scripts/donobu-namespace.js.map +0 -1
- package/dist/esm/browser-side-scripts/interactive-elements-tracker.d.ts.map +0 -1
- package/dist/esm/browser-side-scripts/interactive-elements-tracker.js.map +0 -1
- package/dist/esm/browser-side-scripts/page-interactions-tracker.d.ts.map +0 -1
- package/dist/esm/browser-side-scripts/page-interactions-tracker.js.map +0 -1
- package/dist/esm/browser-side-scripts/smart-selector-generator.d.ts.map +0 -1
- package/dist/esm/browser-side-scripts/smart-selector-generator.js.map +0 -1
- package/dist/esm/cli/donobu-cli.d.ts.map +0 -1
- package/dist/esm/cli/donobu-cli.js.map +0 -1
- package/dist/esm/cli/generate-site-tests.d.ts.map +0 -1
- package/dist/esm/cli/generate-site-tests.js.map +0 -1
- package/dist/esm/cli/install-donobu-plugin.d.ts.map +0 -1
- package/dist/esm/cli/install-donobu-plugin.js.map +0 -1
- package/dist/esm/cli/playwright-json-to-html.d.ts.map +0 -1
- package/dist/esm/cli/playwright-json-to-html.js.map +0 -1
- package/dist/esm/cli/playwright-json-to-markdown.d.ts.map +0 -1
- package/dist/esm/cli/playwright-json-to-markdown.js.map +0 -1
- package/dist/esm/cli/playwright-json-to-slack-json.d.ts.map +0 -1
- package/dist/esm/cli/playwright-json-to-slack-json.js.map +0 -1
- package/dist/esm/clients/AnthropicGptClient.d.ts.map +0 -1
- package/dist/esm/clients/AnthropicGptClient.js.map +0 -1
- package/dist/esm/clients/DonobuGptClient.d.ts.map +0 -1
- package/dist/esm/clients/DonobuGptClient.js.map +0 -1
- package/dist/esm/clients/GoogleGenerativeAiGptClient.d.ts.map +0 -1
- package/dist/esm/clients/GoogleGenerativeAiGptClient.js.map +0 -1
- package/dist/esm/clients/GptClient.d.ts.map +0 -1
- package/dist/esm/clients/GptClient.js.map +0 -1
- package/dist/esm/clients/GptClientFactory.d.ts.map +0 -1
- package/dist/esm/clients/GptClientFactory.js.map +0 -1
- package/dist/esm/clients/GptClientPlugin.d.ts.map +0 -1
- package/dist/esm/clients/GptClientPlugin.js.map +0 -1
- package/dist/esm/clients/OpenAiGptClient.d.ts.map +0 -1
- package/dist/esm/clients/OpenAiGptClient.js.map +0 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts.map +0 -1
- package/dist/esm/clients/VercelAiGptClient.js.map +0 -1
- package/dist/esm/codegen/CodeGenerator.d.ts.map +0 -1
- package/dist/esm/codegen/CodeGenerator.js.map +0 -1
- package/dist/esm/codegen/runGenerateSiteTests.d.ts.map +0 -1
- package/dist/esm/codegen/runGenerateSiteTests.js.map +0 -1
- package/dist/esm/envVars.d.ts.map +0 -1
- package/dist/esm/envVars.js.map +0 -1
- package/dist/esm/exceptions/ActiveFlowNotFoundException.d.ts.map +0 -1
- package/dist/esm/exceptions/ActiveFlowNotFoundException.js.map +0 -1
- package/dist/esm/exceptions/BrowserStateNotFoundException.d.ts.map +0 -1
- package/dist/esm/exceptions/BrowserStateNotFoundException.js.map +0 -1
- package/dist/esm/exceptions/CannotDeleteRunningFlowException.d.ts.map +0 -1
- package/dist/esm/exceptions/CannotDeleteRunningFlowException.js.map +0 -1
- package/dist/esm/exceptions/ChromeNotInstalledException.d.ts.map +0 -1
- package/dist/esm/exceptions/ChromeNotInstalledException.js.map +0 -1
- package/dist/esm/exceptions/DonobuException.d.ts.map +0 -1
- package/dist/esm/exceptions/DonobuException.js.map +0 -1
- package/dist/esm/exceptions/FlowNotFoundException.d.ts.map +0 -1
- package/dist/esm/exceptions/FlowNotFoundException.js.map +0 -1
- package/dist/esm/exceptions/GptApiKeysNotSetupException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptApiKeysNotSetupException.js.map +0 -1
- package/dist/esm/exceptions/GptConfigNotFoundException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptConfigNotFoundException.js.map +0 -1
- package/dist/esm/exceptions/GptModelNotFoundException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptModelNotFoundException.js.map +0 -1
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptPlatformAuthenticationFailedException.js.map +0 -1
- package/dist/esm/exceptions/GptPlatformInsufficientQuotaException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptPlatformInsufficientQuotaException.js.map +0 -1
- package/dist/esm/exceptions/GptPlatformInternalErrorException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptPlatformInternalErrorException.js.map +0 -1
- package/dist/esm/exceptions/GptPlatformNotReachableException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptPlatformNotReachableException.js.map +0 -1
- package/dist/esm/exceptions/GptPlatformRateLimitedException.d.ts.map +0 -1
- package/dist/esm/exceptions/GptPlatformRateLimitedException.js.map +0 -1
- package/dist/esm/exceptions/InvalidParamValueException.d.ts.map +0 -1
- package/dist/esm/exceptions/InvalidParamValueException.js.map +0 -1
- package/dist/esm/exceptions/NoApiAccessTokenPresentException.d.ts.map +0 -1
- package/dist/esm/exceptions/NoApiAccessTokenPresentException.js.map +0 -1
- package/dist/esm/exceptions/PageAiException.d.ts.map +0 -1
- package/dist/esm/exceptions/PageAiException.js.map +0 -1
- package/dist/esm/exceptions/PageClosedException.d.ts.map +0 -1
- package/dist/esm/exceptions/PageClosedException.js.map +0 -1
- package/dist/esm/exceptions/TooManyRequestsException.d.ts.map +0 -1
- package/dist/esm/exceptions/TooManyRequestsException.js.map +0 -1
- package/dist/esm/exceptions/ToolCallFailedException.d.ts.map +0 -1
- package/dist/esm/exceptions/ToolCallFailedException.js.map +0 -1
- package/dist/esm/exceptions/ToolCallNotFoundException.d.ts.map +0 -1
- package/dist/esm/exceptions/ToolCallNotFoundException.js.map +0 -1
- package/dist/esm/exceptions/ToolRequiresGptException.d.ts.map +0 -1
- package/dist/esm/exceptions/ToolRequiresGptException.js.map +0 -1
- package/dist/esm/exceptions/UnknownToolException.d.ts.map +0 -1
- package/dist/esm/exceptions/UnknownToolException.js.map +0 -1
- package/dist/esm/exceptions/UserInterruptException.d.ts.map +0 -1
- package/dist/esm/exceptions/UserInterruptException.js.map +0 -1
- package/dist/esm/init.d.ts.map +0 -1
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/lib/ai/PageAi.d.ts.map +0 -1
- package/dist/esm/lib/ai/PageAi.js.map +0 -1
- package/dist/esm/lib/ai/cache/assertCache.d.ts.map +0 -1
- package/dist/esm/lib/ai/cache/assertCache.js.map +0 -1
- package/dist/esm/lib/ai/cache/cache.d.ts.map +0 -1
- package/dist/esm/lib/ai/cache/cache.js.map +0 -1
- package/dist/esm/lib/ai/cache/cacheEntryBuilder.d.ts.map +0 -1
- package/dist/esm/lib/ai/cache/cacheEntryBuilder.js.map +0 -1
- package/dist/esm/lib/ai/cache/cacheLocator.d.ts.map +0 -1
- package/dist/esm/lib/ai/cache/cacheLocator.js.map +0 -1
- package/dist/esm/lib/ai/index.d.ts.map +0 -1
- package/dist/esm/lib/ai/index.js.map +0 -1
- package/dist/esm/lib/index.d.ts.map +0 -1
- package/dist/esm/lib/index.js.map +0 -1
- package/dist/esm/lib/page/DonobuExtendedPage.d.ts.map +0 -1
- package/dist/esm/lib/page/DonobuExtendedPage.js.map +0 -1
- package/dist/esm/lib/page/SmartSelector.d.ts.map +0 -1
- package/dist/esm/lib/page/SmartSelector.js.map +0 -1
- package/dist/esm/lib/page/extendPage.d.ts.map +0 -1
- package/dist/esm/lib/page/extendPage.js.map +0 -1
- package/dist/esm/lib/page/index.d.ts.map +0 -1
- package/dist/esm/lib/page/index.js.map +0 -1
- package/dist/esm/lib/page/originalGotoRegistry.d.ts.map +0 -1
- package/dist/esm/lib/page/originalGotoRegistry.js.map +0 -1
- package/dist/esm/lib/page/tbd/actionRecorder.d.ts.map +0 -1
- package/dist/esm/lib/page/tbd/actionRecorder.js.map +0 -1
- package/dist/esm/lib/page/tbd/callSiteCapture.d.ts.map +0 -1
- package/dist/esm/lib/page/tbd/callSiteCapture.js.map +0 -1
- package/dist/esm/lib/page/tbd/fileRewriter.d.ts.map +0 -1
- package/dist/esm/lib/page/tbd/fileRewriter.js.map +0 -1
- package/dist/esm/lib/page/tbd/tbdTypes.d.ts.map +0 -1
- package/dist/esm/lib/page/tbd/tbdTypes.js.map +0 -1
- package/dist/esm/lib/page/tbd.d.ts.map +0 -1
- package/dist/esm/lib/page/tbd.js.map +0 -1
- package/dist/esm/lib/test/fixtures/browserState.d.ts.map +0 -1
- package/dist/esm/lib/test/fixtures/browserState.js.map +0 -1
- package/dist/esm/lib/test/fixtures/gptClients.d.ts.map +0 -1
- package/dist/esm/lib/test/fixtures/gptClients.js.map +0 -1
- package/dist/esm/lib/test/index.d.ts.map +0 -1
- package/dist/esm/lib/test/index.js.map +0 -1
- package/dist/esm/lib/test/testExtension.d.ts.map +0 -1
- package/dist/esm/lib/test/testExtension.js.map +0 -1
- package/dist/esm/lib/test/utils/TestFileUpdater.d.ts.map +0 -1
- package/dist/esm/lib/test/utils/TestFileUpdater.js.map +0 -1
- package/dist/esm/lib/test/utils/donobuTestStack.d.ts.map +0 -1
- package/dist/esm/lib/test/utils/donobuTestStack.js.map +0 -1
- package/dist/esm/lib/test/utils/selfHealing.d.ts.map +0 -1
- package/dist/esm/lib/test/utils/selfHealing.js.map +0 -1
- package/dist/esm/lib/test/utils/triageTestFailure.d.ts.map +0 -1
- package/dist/esm/lib/test/utils/triageTestFailure.js.map +0 -1
- package/dist/esm/main.d.ts.map +0 -1
- package/dist/esm/main.js.map +0 -1
- package/dist/esm/managers/AdminApiController.d.ts.map +0 -1
- package/dist/esm/managers/AdminApiController.js.map +0 -1
- package/dist/esm/managers/AgentsManager.d.ts.map +0 -1
- package/dist/esm/managers/AgentsManager.js.map +0 -1
- package/dist/esm/managers/DonobuFlow.d.ts.map +0 -1
- package/dist/esm/managers/DonobuFlow.js.map +0 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +0 -1
- package/dist/esm/managers/DonobuFlowsManager.js.map +0 -1
- package/dist/esm/managers/DonobuStack.d.ts.map +0 -1
- package/dist/esm/managers/DonobuStack.js.map +0 -1
- package/dist/esm/managers/EnvDataManager.d.ts.map +0 -1
- package/dist/esm/managers/EnvDataManager.js.map +0 -1
- package/dist/esm/managers/FlowCatalog.d.ts.map +0 -1
- package/dist/esm/managers/FlowCatalog.js.map +0 -1
- package/dist/esm/managers/FlowDependencyAnalyzer.d.ts.map +0 -1
- package/dist/esm/managers/FlowDependencyAnalyzer.js.map +0 -1
- package/dist/esm/managers/FlowDependencyResolver.d.ts +0 -20
- package/dist/esm/managers/FlowDependencyResolver.d.ts.map +0 -1
- package/dist/esm/managers/FlowDependencyResolver.js +0 -101
- package/dist/esm/managers/FlowDependencyResolver.js.map +0 -1
- package/dist/esm/managers/FlowRuntime.d.ts.map +0 -1
- package/dist/esm/managers/FlowRuntime.js.map +0 -1
- package/dist/esm/managers/GptConfigsManager.d.ts.map +0 -1
- package/dist/esm/managers/GptConfigsManager.js.map +0 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +0 -1
- package/dist/esm/managers/InteractionVisualizer.js.map +0 -1
- package/dist/esm/managers/PageInspector.d.ts.map +0 -1
- package/dist/esm/managers/PageInspector.js.map +0 -1
- package/dist/esm/managers/PluginLoader.d.ts.map +0 -1
- package/dist/esm/managers/PluginLoader.js.map +0 -1
- package/dist/esm/managers/TargetInspector.d.ts.map +0 -1
- package/dist/esm/managers/TargetInspector.js.map +0 -1
- package/dist/esm/managers/ToolManager.d.ts.map +0 -1
- package/dist/esm/managers/ToolManager.js.map +0 -1
- package/dist/esm/managers/WebTargetInspector.d.ts.map +0 -1
- package/dist/esm/managers/WebTargetInspector.js.map +0 -1
- package/dist/esm/models/BrowserConfig.d.ts.map +0 -1
- package/dist/esm/models/BrowserConfig.js.map +0 -1
- package/dist/esm/models/BrowserDevice.d.ts.map +0 -1
- package/dist/esm/models/BrowserDevice.js.map +0 -1
- package/dist/esm/models/BrowserStateFlowReference.d.ts.map +0 -1
- package/dist/esm/models/BrowserStateFlowReference.js.map +0 -1
- package/dist/esm/models/BrowserStorageState.d.ts.map +0 -1
- package/dist/esm/models/BrowserStorageState.js.map +0 -1
- package/dist/esm/models/CodeGenerationOptions.d.ts.map +0 -1
- package/dist/esm/models/CodeGenerationOptions.js.map +0 -1
- package/dist/esm/models/ControlPanel.d.ts.map +0 -1
- package/dist/esm/models/ControlPanel.js.map +0 -1
- package/dist/esm/models/CreateDonobuFlow.d.ts.map +0 -1
- package/dist/esm/models/CreateDonobuFlow.js.map +0 -1
- package/dist/esm/models/CreateToolOptions.d.ts.map +0 -1
- package/dist/esm/models/CreateToolOptions.js.map +0 -1
- package/dist/esm/models/CustomTool.d.ts.map +0 -1
- package/dist/esm/models/CustomTool.js.map +0 -1
- package/dist/esm/models/DonobuAgentType.d.ts.map +0 -1
- package/dist/esm/models/DonobuAgentType.js.map +0 -1
- package/dist/esm/models/DonobuDeploymentEnvironment.d.ts.map +0 -1
- package/dist/esm/models/DonobuDeploymentEnvironment.js.map +0 -1
- package/dist/esm/models/DonobuErrorResponse.d.ts.map +0 -1
- package/dist/esm/models/DonobuErrorResponse.js.map +0 -1
- package/dist/esm/models/ElementSelector.d.ts.map +0 -1
- package/dist/esm/models/ElementSelector.js.map +0 -1
- package/dist/esm/models/FlowHandle.d.ts.map +0 -1
- package/dist/esm/models/FlowHandle.js.map +0 -1
- package/dist/esm/models/FlowMetadata.d.ts.map +0 -1
- package/dist/esm/models/FlowMetadata.js.map +0 -1
- package/dist/esm/models/FocusedTarget.d.ts.map +0 -1
- package/dist/esm/models/FocusedTarget.js.map +0 -1
- package/dist/esm/models/GptConfig.d.ts.map +0 -1
- package/dist/esm/models/GptConfig.js.map +0 -1
- package/dist/esm/models/GptMessage.d.ts.map +0 -1
- package/dist/esm/models/GptMessage.js.map +0 -1
- package/dist/esm/models/InteractableElement.d.ts.map +0 -1
- package/dist/esm/models/InteractableElement.js.map +0 -1
- package/dist/esm/models/PaginatedResult.d.ts.map +0 -1
- package/dist/esm/models/PaginatedResult.js.map +0 -1
- package/dist/esm/models/ProposedToolCall.d.ts.map +0 -1
- package/dist/esm/models/ProposedToolCall.js.map +0 -1
- package/dist/esm/models/TargetConfig.d.ts.map +0 -1
- package/dist/esm/models/TargetConfig.js.map +0 -1
- package/dist/esm/models/ToolCall.d.ts.map +0 -1
- package/dist/esm/models/ToolCall.js.map +0 -1
- package/dist/esm/models/ToolCallContext.d.ts.map +0 -1
- package/dist/esm/models/ToolCallContext.js.map +0 -1
- package/dist/esm/models/ToolCallResult.d.ts.map +0 -1
- package/dist/esm/models/ToolCallResult.js.map +0 -1
- package/dist/esm/models/ToolSchema.d.ts.map +0 -1
- package/dist/esm/models/ToolSchema.js.map +0 -1
- package/dist/esm/models/ToolTemplateDataSource.d.ts.map +0 -1
- package/dist/esm/models/ToolTemplateDataSource.js.map +0 -1
- package/dist/esm/models/VideoSegment.d.ts.map +0 -1
- package/dist/esm/models/VideoSegment.js.map +0 -1
- package/dist/esm/persistence/DonobuSqliteDb.d.ts.map +0 -1
- package/dist/esm/persistence/DonobuSqliteDb.js.map +0 -1
- package/dist/esm/persistence/PersistencePlugin.d.ts.map +0 -1
- package/dist/esm/persistence/PersistencePlugin.js.map +0 -1
- package/dist/esm/persistence/agents/AgentsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/agents/AgentsPersistence.js.map +0 -1
- package/dist/esm/persistence/agents/AgentsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/agents/AgentsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/agents/AgentsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/agents/AgentsPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/env/EnvPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/env/EnvPersistence.js.map +0 -1
- package/dist/esm/persistence/env/EnvPersistenceRegistry.d.ts.map +0 -1
- package/dist/esm/persistence/env/EnvPersistenceRegistry.js.map +0 -1
- package/dist/esm/persistence/env/EnvPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/env/EnvPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/env/EnvPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/env/EnvPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistence.js.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceDonobuApi.d.ts.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceDonobuApi.js.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceRegistry.d.ts.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceRegistry.js.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/flows/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +0 -1
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistence.js.map +0 -1
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +0 -1
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +0 -1
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +0 -1
- package/dist/esm/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +0 -1
- package/dist/esm/reporter/html.d.ts.map +0 -1
- package/dist/esm/reporter/html.js.map +0 -1
- package/dist/esm/targets/TargetRuntime.d.ts.map +0 -1
- package/dist/esm/targets/TargetRuntime.js.map +0 -1
- package/dist/esm/targets/TargetRuntimePlugin.d.ts.map +0 -1
- package/dist/esm/targets/TargetRuntimePlugin.js.map +0 -1
- package/dist/esm/targets/WebTargetRuntime.d.ts.map +0 -1
- package/dist/esm/targets/WebTargetRuntime.js.map +0 -1
- package/dist/esm/targets/resolveTargetRuntime.d.ts.map +0 -1
- package/dist/esm/targets/resolveTargetRuntime.js.map +0 -1
- package/dist/esm/tools/AcknowledgeUserInstruction.d.ts.map +0 -1
- package/dist/esm/tools/AcknowledgeUserInstruction.js.map +0 -1
- package/dist/esm/tools/AnalyzePageTextTool.d.ts.map +0 -1
- package/dist/esm/tools/AnalyzePageTextTool.js.map +0 -1
- package/dist/esm/tools/AssertPageTextTool.d.ts.map +0 -1
- package/dist/esm/tools/AssertPageTextTool.js.map +0 -1
- package/dist/esm/tools/AssertPageTool.d.ts.map +0 -1
- package/dist/esm/tools/AssertPageTool.js.map +0 -1
- package/dist/esm/tools/AssertTool.d.ts.map +0 -1
- package/dist/esm/tools/AssertTool.js.map +0 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +0 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +0 -1
- package/dist/esm/tools/ChooseSelectOptionTool.d.ts.map +0 -1
- package/dist/esm/tools/ChooseSelectOptionTool.js.map +0 -1
- package/dist/esm/tools/ClickTool.d.ts.map +0 -1
- package/dist/esm/tools/ClickTool.js.map +0 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts.map +0 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +0 -1
- package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +0 -1
- package/dist/esm/tools/CustomToolRunnerTool.js.map +0 -1
- package/dist/esm/tools/DetectBrokenLinksTool.d.ts.map +0 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +0 -1
- package/dist/esm/tools/DoubleClickTool.d.ts.map +0 -1
- package/dist/esm/tools/DoubleClickTool.js.map +0 -1
- package/dist/esm/tools/DownloadPdfTool.d.ts.map +0 -1
- package/dist/esm/tools/DownloadPdfTool.js.map +0 -1
- package/dist/esm/tools/GoForwardOrBackTool.d.ts.map +0 -1
- package/dist/esm/tools/GoForwardOrBackTool.js.map +0 -1
- package/dist/esm/tools/GoToWebpageTool.d.ts.map +0 -1
- package/dist/esm/tools/GoToWebpageTool.js.map +0 -1
- package/dist/esm/tools/HandleBrowserDialogTool.d.ts.map +0 -1
- package/dist/esm/tools/HandleBrowserDialogTool.js.map +0 -1
- package/dist/esm/tools/HoverOverElementTool.d.ts.map +0 -1
- package/dist/esm/tools/HoverOverElementTool.js.map +0 -1
- package/dist/esm/tools/InputFakerTool.d.ts.map +0 -1
- package/dist/esm/tools/InputFakerTool.js.map +0 -1
- package/dist/esm/tools/InputRandomizedEmailAddressTool.d.ts.map +0 -1
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js.map +0 -1
- package/dist/esm/tools/InputTextTool.d.ts.map +0 -1
- package/dist/esm/tools/InputTextTool.js.map +0 -1
- package/dist/esm/tools/MakeCommentTool.d.ts.map +0 -1
- package/dist/esm/tools/MakeCommentTool.js.map +0 -1
- package/dist/esm/tools/MarkObjectiveCompleteTool.d.ts.map +0 -1
- package/dist/esm/tools/MarkObjectiveCompleteTool.js.map +0 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.d.ts.map +0 -1
- package/dist/esm/tools/MarkObjectiveNotCompletableTool.js.map +0 -1
- package/dist/esm/tools/PauseForUserInteractionTool.d.ts.map +0 -1
- package/dist/esm/tools/PauseForUserInteractionTool.js.map +0 -1
- package/dist/esm/tools/PressKeyTool.d.ts.map +0 -1
- package/dist/esm/tools/PressKeyTool.js.map +0 -1
- package/dist/esm/tools/ReloadPageTool.d.ts.map +0 -1
- package/dist/esm/tools/ReloadPageTool.js.map +0 -1
- package/dist/esm/tools/RememberPageTextTool.d.ts.map +0 -1
- package/dist/esm/tools/RememberPageTextTool.js.map +0 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +0 -1
- package/dist/esm/tools/ReplayableInteraction.js.map +0 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +0 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +0 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +0 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +0 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +0 -1
- package/dist/esm/tools/RunSandboxedJavaScriptCodeTool.js.map +0 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.d.ts.map +0 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +0 -1
- package/dist/esm/tools/ScrollPageTool.d.ts.map +0 -1
- package/dist/esm/tools/ScrollPageTool.js.map +0 -1
- package/dist/esm/tools/SetRunModeTool.d.ts.map +0 -1
- package/dist/esm/tools/SetRunModeTool.js.map +0 -1
- package/dist/esm/tools/SummarizeLearningsTool.d.ts.map +0 -1
- package/dist/esm/tools/SummarizeLearningsTool.js.map +0 -1
- package/dist/esm/tools/Tool.d.ts.map +0 -1
- package/dist/esm/tools/Tool.js.map +0 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.d.ts.map +0 -1
- package/dist/esm/tools/TriggerDonobuFlowTool.js.map +0 -1
- package/dist/esm/tools/WaitTool.d.ts.map +0 -1
- package/dist/esm/tools/WaitTool.js.map +0 -1
- package/dist/esm/utils/BrowserUtils.d.ts.map +0 -1
- package/dist/esm/utils/BrowserUtils.js.map +0 -1
- package/dist/esm/utils/FlowLogBuffer.d.ts.map +0 -1
- package/dist/esm/utils/FlowLogBuffer.js.map +0 -1
- package/dist/esm/utils/JsonPath.d.ts.map +0 -1
- package/dist/esm/utils/JsonPath.js.map +0 -1
- package/dist/esm/utils/JsonSchemaUtils.d.ts.map +0 -1
- package/dist/esm/utils/JsonSchemaUtils.js.map +0 -1
- package/dist/esm/utils/JsonUtils.d.ts.map +0 -1
- package/dist/esm/utils/JsonUtils.js.map +0 -1
- package/dist/esm/utils/Logger.d.ts.map +0 -1
- package/dist/esm/utils/Logger.js.map +0 -1
- package/dist/esm/utils/MiscUtils.d.ts.map +0 -1
- package/dist/esm/utils/MiscUtils.js.map +0 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +0 -1
- package/dist/esm/utils/PlaywrightUtils.js.map +0 -1
- package/dist/esm/utils/TargetUtils.d.ts.map +0 -1
- package/dist/esm/utils/TargetUtils.js.map +0 -1
- package/dist/esm/utils/TemplateInterpolator.d.ts.map +0 -1
- package/dist/esm/utils/TemplateInterpolator.js.map +0 -1
- package/dist/esm/utils/VerbConverter.d.ts.map +0 -1
- package/dist/esm/utils/VerbConverter.js.map +0 -1
- package/dist/esm/utils/createTool.d.ts.map +0 -1
- package/dist/esm/utils/createTool.js.map +0 -1
- package/dist/exceptions/ActiveFlowNotFoundException.d.ts.map +0 -1
- package/dist/exceptions/ActiveFlowNotFoundException.js.map +0 -1
- package/dist/exceptions/BrowserStateNotFoundException.d.ts.map +0 -1
- package/dist/exceptions/BrowserStateNotFoundException.js.map +0 -1
- package/dist/exceptions/CannotDeleteRunningFlowException.d.ts.map +0 -1
- package/dist/exceptions/CannotDeleteRunningFlowException.js.map +0 -1
- package/dist/exceptions/ChromeNotInstalledException.d.ts.map +0 -1
- package/dist/exceptions/ChromeNotInstalledException.js.map +0 -1
- package/dist/exceptions/DonobuException.d.ts.map +0 -1
- package/dist/exceptions/DonobuException.js.map +0 -1
- package/dist/exceptions/FlowNotFoundException.d.ts.map +0 -1
- package/dist/exceptions/FlowNotFoundException.js.map +0 -1
- package/dist/exceptions/GptApiKeysNotSetupException.d.ts.map +0 -1
- package/dist/exceptions/GptApiKeysNotSetupException.js.map +0 -1
- package/dist/exceptions/GptConfigNotFoundException.d.ts.map +0 -1
- package/dist/exceptions/GptConfigNotFoundException.js.map +0 -1
- package/dist/exceptions/GptModelNotFoundException.d.ts.map +0 -1
- package/dist/exceptions/GptModelNotFoundException.js.map +0 -1
- package/dist/exceptions/GptPlatformAuthenticationFailedException.d.ts.map +0 -1
- package/dist/exceptions/GptPlatformAuthenticationFailedException.js.map +0 -1
- package/dist/exceptions/GptPlatformInsufficientQuotaException.d.ts.map +0 -1
- package/dist/exceptions/GptPlatformInsufficientQuotaException.js.map +0 -1
- package/dist/exceptions/GptPlatformInternalErrorException.d.ts.map +0 -1
- package/dist/exceptions/GptPlatformInternalErrorException.js.map +0 -1
- package/dist/exceptions/GptPlatformNotReachableException.d.ts.map +0 -1
- package/dist/exceptions/GptPlatformNotReachableException.js.map +0 -1
- package/dist/exceptions/GptPlatformRateLimitedException.d.ts.map +0 -1
- package/dist/exceptions/GptPlatformRateLimitedException.js.map +0 -1
- package/dist/exceptions/InvalidParamValueException.d.ts.map +0 -1
- package/dist/exceptions/InvalidParamValueException.js.map +0 -1
- package/dist/exceptions/NoApiAccessTokenPresentException.d.ts.map +0 -1
- package/dist/exceptions/NoApiAccessTokenPresentException.js.map +0 -1
- package/dist/exceptions/PageAiException.d.ts.map +0 -1
- package/dist/exceptions/PageAiException.js.map +0 -1
- package/dist/exceptions/PageClosedException.d.ts.map +0 -1
- package/dist/exceptions/PageClosedException.js.map +0 -1
- package/dist/exceptions/TooManyRequestsException.d.ts.map +0 -1
- package/dist/exceptions/TooManyRequestsException.js.map +0 -1
- package/dist/exceptions/ToolCallFailedException.d.ts.map +0 -1
- package/dist/exceptions/ToolCallFailedException.js.map +0 -1
- package/dist/exceptions/ToolCallNotFoundException.d.ts.map +0 -1
- package/dist/exceptions/ToolCallNotFoundException.js.map +0 -1
- package/dist/exceptions/ToolRequiresGptException.d.ts.map +0 -1
- package/dist/exceptions/ToolRequiresGptException.js.map +0 -1
- package/dist/exceptions/UnknownToolException.d.ts.map +0 -1
- package/dist/exceptions/UnknownToolException.js.map +0 -1
- package/dist/exceptions/UserInterruptException.d.ts.map +0 -1
- package/dist/exceptions/UserInterruptException.js.map +0 -1
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/lib/ai/PageAi.d.ts.map +0 -1
- package/dist/lib/ai/PageAi.js.map +0 -1
- package/dist/lib/ai/cache/assertCache.d.ts.map +0 -1
- package/dist/lib/ai/cache/assertCache.js.map +0 -1
- package/dist/lib/ai/cache/cache.d.ts.map +0 -1
- package/dist/lib/ai/cache/cache.js.map +0 -1
- package/dist/lib/ai/cache/cacheEntryBuilder.d.ts.map +0 -1
- package/dist/lib/ai/cache/cacheEntryBuilder.js.map +0 -1
- package/dist/lib/ai/cache/cacheLocator.d.ts.map +0 -1
- package/dist/lib/ai/cache/cacheLocator.js.map +0 -1
- package/dist/lib/ai/index.d.ts.map +0 -1
- package/dist/lib/ai/index.js.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/page/DonobuExtendedPage.d.ts.map +0 -1
- package/dist/lib/page/DonobuExtendedPage.js.map +0 -1
- package/dist/lib/page/SmartSelector.d.ts.map +0 -1
- package/dist/lib/page/SmartSelector.js.map +0 -1
- package/dist/lib/page/extendPage.d.ts.map +0 -1
- package/dist/lib/page/extendPage.js.map +0 -1
- package/dist/lib/page/index.d.ts.map +0 -1
- package/dist/lib/page/index.js.map +0 -1
- package/dist/lib/page/originalGotoRegistry.d.ts.map +0 -1
- package/dist/lib/page/originalGotoRegistry.js.map +0 -1
- package/dist/lib/page/tbd/actionRecorder.d.ts.map +0 -1
- package/dist/lib/page/tbd/actionRecorder.js.map +0 -1
- package/dist/lib/page/tbd/callSiteCapture.d.ts.map +0 -1
- package/dist/lib/page/tbd/callSiteCapture.js.map +0 -1
- package/dist/lib/page/tbd/fileRewriter.d.ts.map +0 -1
- package/dist/lib/page/tbd/fileRewriter.js.map +0 -1
- package/dist/lib/page/tbd/tbdTypes.d.ts.map +0 -1
- package/dist/lib/page/tbd/tbdTypes.js.map +0 -1
- package/dist/lib/page/tbd.d.ts.map +0 -1
- package/dist/lib/page/tbd.js.map +0 -1
- package/dist/lib/test/fixtures/browserState.d.ts.map +0 -1
- package/dist/lib/test/fixtures/browserState.js.map +0 -1
- package/dist/lib/test/fixtures/gptClients.d.ts.map +0 -1
- package/dist/lib/test/fixtures/gptClients.js.map +0 -1
- package/dist/lib/test/index.d.ts.map +0 -1
- package/dist/lib/test/index.js.map +0 -1
- package/dist/lib/test/testExtension.d.ts.map +0 -1
- package/dist/lib/test/testExtension.js.map +0 -1
- package/dist/lib/test/utils/TestFileUpdater.d.ts.map +0 -1
- package/dist/lib/test/utils/TestFileUpdater.js.map +0 -1
- package/dist/lib/test/utils/donobuTestStack.d.ts.map +0 -1
- package/dist/lib/test/utils/donobuTestStack.js.map +0 -1
- package/dist/lib/test/utils/selfHealing.d.ts.map +0 -1
- package/dist/lib/test/utils/selfHealing.js.map +0 -1
- package/dist/lib/test/utils/triageTestFailure.d.ts.map +0 -1
- package/dist/lib/test/utils/triageTestFailure.js.map +0 -1
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js.map +0 -1
- package/dist/managers/AdminApiController.d.ts.map +0 -1
- package/dist/managers/AdminApiController.js.map +0 -1
- package/dist/managers/AgentsManager.d.ts.map +0 -1
- package/dist/managers/AgentsManager.js.map +0 -1
- package/dist/managers/DonobuFlow.d.ts.map +0 -1
- package/dist/managers/DonobuFlow.js.map +0 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +0 -1
- package/dist/managers/DonobuFlowsManager.js.map +0 -1
- package/dist/managers/DonobuStack.d.ts.map +0 -1
- package/dist/managers/DonobuStack.js.map +0 -1
- package/dist/managers/EnvDataManager.d.ts.map +0 -1
- package/dist/managers/EnvDataManager.js.map +0 -1
- package/dist/managers/FlowCatalog.d.ts.map +0 -1
- package/dist/managers/FlowCatalog.js.map +0 -1
- package/dist/managers/FlowDependencyAnalyzer.d.ts.map +0 -1
- package/dist/managers/FlowDependencyAnalyzer.js.map +0 -1
- package/dist/managers/FlowDependencyResolver.d.ts +0 -20
- package/dist/managers/FlowDependencyResolver.d.ts.map +0 -1
- package/dist/managers/FlowDependencyResolver.js +0 -101
- package/dist/managers/FlowDependencyResolver.js.map +0 -1
- package/dist/managers/FlowRuntime.d.ts.map +0 -1
- package/dist/managers/FlowRuntime.js.map +0 -1
- package/dist/managers/GptConfigsManager.d.ts.map +0 -1
- package/dist/managers/GptConfigsManager.js.map +0 -1
- package/dist/managers/InteractionVisualizer.d.ts.map +0 -1
- package/dist/managers/InteractionVisualizer.js.map +0 -1
- package/dist/managers/PageInspector.d.ts.map +0 -1
- package/dist/managers/PageInspector.js.map +0 -1
- package/dist/managers/PluginLoader.d.ts.map +0 -1
- package/dist/managers/PluginLoader.js.map +0 -1
- package/dist/managers/TargetInspector.d.ts.map +0 -1
- package/dist/managers/TargetInspector.js.map +0 -1
- package/dist/managers/ToolManager.d.ts.map +0 -1
- package/dist/managers/ToolManager.js.map +0 -1
- package/dist/managers/WebTargetInspector.d.ts.map +0 -1
- package/dist/managers/WebTargetInspector.js.map +0 -1
- package/dist/models/BrowserConfig.d.ts.map +0 -1
- package/dist/models/BrowserConfig.js.map +0 -1
- package/dist/models/BrowserDevice.d.ts.map +0 -1
- package/dist/models/BrowserDevice.js.map +0 -1
- package/dist/models/BrowserStateFlowReference.d.ts.map +0 -1
- package/dist/models/BrowserStateFlowReference.js.map +0 -1
- package/dist/models/BrowserStorageState.d.ts.map +0 -1
- package/dist/models/BrowserStorageState.js.map +0 -1
- package/dist/models/CodeGenerationOptions.d.ts.map +0 -1
- package/dist/models/CodeGenerationOptions.js.map +0 -1
- package/dist/models/ControlPanel.d.ts.map +0 -1
- package/dist/models/ControlPanel.js.map +0 -1
- package/dist/models/CreateDonobuFlow.d.ts.map +0 -1
- package/dist/models/CreateDonobuFlow.js.map +0 -1
- package/dist/models/CreateToolOptions.d.ts.map +0 -1
- package/dist/models/CreateToolOptions.js.map +0 -1
- package/dist/models/CustomTool.d.ts.map +0 -1
- package/dist/models/CustomTool.js.map +0 -1
- package/dist/models/DonobuAgentType.d.ts.map +0 -1
- package/dist/models/DonobuAgentType.js.map +0 -1
- package/dist/models/DonobuDeploymentEnvironment.d.ts.map +0 -1
- package/dist/models/DonobuDeploymentEnvironment.js.map +0 -1
- package/dist/models/DonobuErrorResponse.d.ts.map +0 -1
- package/dist/models/DonobuErrorResponse.js.map +0 -1
- package/dist/models/ElementSelector.d.ts.map +0 -1
- package/dist/models/ElementSelector.js.map +0 -1
- package/dist/models/FlowHandle.d.ts.map +0 -1
- package/dist/models/FlowHandle.js.map +0 -1
- package/dist/models/FlowMetadata.d.ts.map +0 -1
- package/dist/models/FlowMetadata.js.map +0 -1
- package/dist/models/FocusedTarget.d.ts.map +0 -1
- package/dist/models/FocusedTarget.js.map +0 -1
- package/dist/models/GptConfig.d.ts.map +0 -1
- package/dist/models/GptConfig.js.map +0 -1
- package/dist/models/GptMessage.d.ts.map +0 -1
- package/dist/models/GptMessage.js.map +0 -1
- package/dist/models/InteractableElement.d.ts.map +0 -1
- package/dist/models/InteractableElement.js.map +0 -1
- package/dist/models/PaginatedResult.d.ts.map +0 -1
- package/dist/models/PaginatedResult.js.map +0 -1
- package/dist/models/ProposedToolCall.d.ts.map +0 -1
- package/dist/models/ProposedToolCall.js.map +0 -1
- package/dist/models/TargetConfig.d.ts.map +0 -1
- package/dist/models/TargetConfig.js.map +0 -1
- package/dist/models/ToolCall.d.ts.map +0 -1
- package/dist/models/ToolCall.js.map +0 -1
- package/dist/models/ToolCallContext.d.ts.map +0 -1
- package/dist/models/ToolCallContext.js.map +0 -1
- package/dist/models/ToolCallResult.d.ts.map +0 -1
- package/dist/models/ToolCallResult.js.map +0 -1
- package/dist/models/ToolSchema.d.ts.map +0 -1
- package/dist/models/ToolSchema.js.map +0 -1
- package/dist/models/ToolTemplateDataSource.d.ts.map +0 -1
- package/dist/models/ToolTemplateDataSource.js.map +0 -1
- package/dist/models/VideoSegment.d.ts.map +0 -1
- package/dist/models/VideoSegment.js.map +0 -1
- package/dist/persistence/DonobuSqliteDb.d.ts.map +0 -1
- package/dist/persistence/DonobuSqliteDb.js.map +0 -1
- package/dist/persistence/PersistencePlugin.d.ts.map +0 -1
- package/dist/persistence/PersistencePlugin.js.map +0 -1
- package/dist/persistence/agents/AgentsPersistence.d.ts.map +0 -1
- package/dist/persistence/agents/AgentsPersistence.js.map +0 -1
- package/dist/persistence/agents/AgentsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/agents/AgentsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/agents/AgentsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/agents/AgentsPersistenceVolatile.js.map +0 -1
- package/dist/persistence/env/EnvPersistence.d.ts.map +0 -1
- package/dist/persistence/env/EnvPersistence.js.map +0 -1
- package/dist/persistence/env/EnvPersistenceRegistry.d.ts.map +0 -1
- package/dist/persistence/env/EnvPersistenceRegistry.js.map +0 -1
- package/dist/persistence/env/EnvPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/env/EnvPersistenceSqlite.js.map +0 -1
- package/dist/persistence/env/EnvPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/env/EnvPersistenceVolatile.js.map +0 -1
- package/dist/persistence/flows/FlowsPersistence.d.ts.map +0 -1
- package/dist/persistence/flows/FlowsPersistence.js.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceDonobuApi.d.ts.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceDonobuApi.js.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceRegistry.d.ts.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceRegistry.js.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/flows/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/persistence/gptconfigs/GptConfigsPersistence.d.ts.map +0 -1
- package/dist/persistence/gptconfigs/GptConfigsPersistence.js.map +0 -1
- package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.d.ts.map +0 -1
- package/dist/persistence/gptconfigs/GptConfigsPersistenceSqlite.js.map +0 -1
- package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.d.ts.map +0 -1
- package/dist/persistence/gptconfigs/GptConfigsPersistenceVolatile.js.map +0 -1
- package/dist/reporter/html.d.ts.map +0 -1
- package/dist/reporter/html.js.map +0 -1
- package/dist/targets/TargetRuntime.d.ts.map +0 -1
- package/dist/targets/TargetRuntime.js.map +0 -1
- package/dist/targets/TargetRuntimePlugin.d.ts.map +0 -1
- package/dist/targets/TargetRuntimePlugin.js.map +0 -1
- package/dist/targets/WebTargetRuntime.d.ts.map +0 -1
- package/dist/targets/WebTargetRuntime.js.map +0 -1
- package/dist/targets/resolveTargetRuntime.d.ts.map +0 -1
- package/dist/targets/resolveTargetRuntime.js.map +0 -1
- package/dist/tools/AcknowledgeUserInstruction.d.ts.map +0 -1
- package/dist/tools/AcknowledgeUserInstruction.js.map +0 -1
- package/dist/tools/AnalyzePageTextTool.d.ts.map +0 -1
- package/dist/tools/AnalyzePageTextTool.js.map +0 -1
- package/dist/tools/AssertPageTextTool.d.ts.map +0 -1
- package/dist/tools/AssertPageTextTool.js.map +0 -1
- package/dist/tools/AssertPageTool.d.ts.map +0 -1
- package/dist/tools/AssertPageTool.js.map +0 -1
- package/dist/tools/AssertTool.d.ts.map +0 -1
- package/dist/tools/AssertTool.js.map +0 -1
- package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +0 -1
- package/dist/tools/ChangeWebBrowserTabTool.js.map +0 -1
- package/dist/tools/ChooseSelectOptionTool.d.ts.map +0 -1
- package/dist/tools/ChooseSelectOptionTool.js.map +0 -1
- package/dist/tools/ClickTool.d.ts.map +0 -1
- package/dist/tools/ClickTool.js.map +0 -1
- package/dist/tools/CreateBrowserCookieReportTool.d.ts.map +0 -1
- package/dist/tools/CreateBrowserCookieReportTool.js.map +0 -1
- package/dist/tools/CustomToolRunnerTool.d.ts.map +0 -1
- package/dist/tools/CustomToolRunnerTool.js.map +0 -1
- package/dist/tools/DetectBrokenLinksTool.d.ts.map +0 -1
- package/dist/tools/DetectBrokenLinksTool.js.map +0 -1
- package/dist/tools/DoubleClickTool.d.ts.map +0 -1
- package/dist/tools/DoubleClickTool.js.map +0 -1
- package/dist/tools/DownloadPdfTool.d.ts.map +0 -1
- package/dist/tools/DownloadPdfTool.js.map +0 -1
- package/dist/tools/GoForwardOrBackTool.d.ts.map +0 -1
- package/dist/tools/GoForwardOrBackTool.js.map +0 -1
- package/dist/tools/GoToWebpageTool.d.ts.map +0 -1
- package/dist/tools/GoToWebpageTool.js.map +0 -1
- package/dist/tools/HandleBrowserDialogTool.d.ts.map +0 -1
- package/dist/tools/HandleBrowserDialogTool.js.map +0 -1
- package/dist/tools/HoverOverElementTool.d.ts.map +0 -1
- package/dist/tools/HoverOverElementTool.js.map +0 -1
- package/dist/tools/InputFakerTool.d.ts.map +0 -1
- package/dist/tools/InputFakerTool.js.map +0 -1
- package/dist/tools/InputRandomizedEmailAddressTool.d.ts.map +0 -1
- package/dist/tools/InputRandomizedEmailAddressTool.js.map +0 -1
- package/dist/tools/InputTextTool.d.ts.map +0 -1
- package/dist/tools/InputTextTool.js.map +0 -1
- package/dist/tools/MakeCommentTool.d.ts.map +0 -1
- package/dist/tools/MakeCommentTool.js.map +0 -1
- package/dist/tools/MarkObjectiveCompleteTool.d.ts.map +0 -1
- package/dist/tools/MarkObjectiveCompleteTool.js.map +0 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.d.ts.map +0 -1
- package/dist/tools/MarkObjectiveNotCompletableTool.js.map +0 -1
- package/dist/tools/PauseForUserInteractionTool.d.ts.map +0 -1
- package/dist/tools/PauseForUserInteractionTool.js.map +0 -1
- package/dist/tools/PressKeyTool.d.ts.map +0 -1
- package/dist/tools/PressKeyTool.js.map +0 -1
- package/dist/tools/ReloadPageTool.d.ts.map +0 -1
- package/dist/tools/ReloadPageTool.js.map +0 -1
- package/dist/tools/RememberPageTextTool.d.ts.map +0 -1
- package/dist/tools/RememberPageTextTool.js.map +0 -1
- package/dist/tools/ReplayableInteraction.d.ts.map +0 -1
- package/dist/tools/ReplayableInteraction.js.map +0 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +0 -1
- package/dist/tools/RunAccessibilityTestTool.js.map +0 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +0 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js.map +0 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.d.ts.map +0 -1
- package/dist/tools/RunSandboxedJavaScriptCodeTool.js.map +0 -1
- package/dist/tools/SaveWebpageAsPdfTool.d.ts.map +0 -1
- package/dist/tools/SaveWebpageAsPdfTool.js.map +0 -1
- package/dist/tools/ScrollPageTool.d.ts.map +0 -1
- package/dist/tools/ScrollPageTool.js.map +0 -1
- package/dist/tools/SetRunModeTool.d.ts.map +0 -1
- package/dist/tools/SetRunModeTool.js.map +0 -1
- package/dist/tools/SummarizeLearningsTool.d.ts.map +0 -1
- package/dist/tools/SummarizeLearningsTool.js.map +0 -1
- package/dist/tools/Tool.d.ts.map +0 -1
- package/dist/tools/Tool.js.map +0 -1
- package/dist/tools/TriggerDonobuFlowTool.d.ts.map +0 -1
- package/dist/tools/TriggerDonobuFlowTool.js.map +0 -1
- package/dist/tools/WaitTool.d.ts.map +0 -1
- package/dist/tools/WaitTool.js.map +0 -1
- package/dist/utils/BrowserUtils.d.ts.map +0 -1
- package/dist/utils/BrowserUtils.js.map +0 -1
- package/dist/utils/FlowLogBuffer.d.ts.map +0 -1
- package/dist/utils/FlowLogBuffer.js.map +0 -1
- package/dist/utils/JsonPath.d.ts.map +0 -1
- package/dist/utils/JsonPath.js.map +0 -1
- package/dist/utils/JsonSchemaUtils.d.ts.map +0 -1
- package/dist/utils/JsonSchemaUtils.js.map +0 -1
- package/dist/utils/JsonUtils.d.ts.map +0 -1
- package/dist/utils/JsonUtils.js.map +0 -1
- package/dist/utils/Logger.d.ts.map +0 -1
- package/dist/utils/Logger.js.map +0 -1
- package/dist/utils/MiscUtils.d.ts.map +0 -1
- package/dist/utils/MiscUtils.js.map +0 -1
- package/dist/utils/PlaywrightUtils.d.ts.map +0 -1
- package/dist/utils/PlaywrightUtils.js.map +0 -1
- package/dist/utils/TargetUtils.d.ts.map +0 -1
- package/dist/utils/TargetUtils.js.map +0 -1
- package/dist/utils/TemplateInterpolator.d.ts.map +0 -1
- package/dist/utils/TemplateInterpolator.js.map +0 -1
- package/dist/utils/VerbConverter.d.ts.map +0 -1
- package/dist/utils/VerbConverter.js.map +0 -1
- package/dist/utils/createTool.d.ts.map +0 -1
- package/dist/utils/createTool.js.map +0 -1
|
@@ -49,7 +49,6 @@ const cache_1 = require("../lib/ai/cache/cache");
|
|
|
49
49
|
const cacheEntryBuilder_1 = require("../lib/ai/cache/cacheEntryBuilder");
|
|
50
50
|
const cacheLocator_1 = require("../lib/ai/cache/cacheLocator");
|
|
51
51
|
const DonobuFlowsManager_1 = require("../managers/DonobuFlowsManager");
|
|
52
|
-
const ToolManager_1 = require("../managers/ToolManager");
|
|
53
52
|
const GptConfig_1 = require("../models/GptConfig");
|
|
54
53
|
const AnalyzePageTextTool_1 = require("../tools/AnalyzePageTextTool");
|
|
55
54
|
const AssertPageTool_1 = require("../tools/AssertPageTool");
|
|
@@ -83,8 +82,38 @@ function getLocalPlaywrightVersion() {
|
|
|
83
82
|
return pkgJson.version;
|
|
84
83
|
}
|
|
85
84
|
const PLAYWRIGHT_VERSION = getLocalPlaywrightVersion();
|
|
85
|
+
/**
|
|
86
|
+
* Computes the `allowedTools` and `maxToolCalls` values as they will appear at
|
|
87
|
+
* runtime when the generated test code is executed by `PageAi.buildDescriptor`.
|
|
88
|
+
*
|
|
89
|
+
* The generated test code only emits an explicit `allowedTools` option when the
|
|
90
|
+
* flow uses non-default tools, and omits `maxToolCalls` when it equals the
|
|
91
|
+
* default. At runtime the omitted values fall back to `[]` and
|
|
92
|
+
* `DEFAULT_MAX_TOOL_CALLS` respectively. The cache lock file must store these
|
|
93
|
+
* same resolved values so that the cache key matches on the first run.
|
|
94
|
+
*/
|
|
95
|
+
function computeRuntimeCacheKeyFields(toolCalls, defaultToolNames, minimalToolNames, maxToolCalls) {
|
|
96
|
+
const toolNamesFromCalls = Array.from(new Set(toolCalls.map((tc) => tc.name)))
|
|
97
|
+
.filter((name) => !minimalToolNames.has(name))
|
|
98
|
+
.sort();
|
|
99
|
+
const usesNonDefaultTool = toolNamesFromCalls.some((name) => !defaultToolNames.has(name));
|
|
100
|
+
// Mirror the runtime defaulting in PageAi.buildDescriptor:
|
|
101
|
+
// options?.allowedTools ?? []
|
|
102
|
+
const resolvedAllowedTools = usesNonDefaultTool && toolNamesFromCalls.length > 0
|
|
103
|
+
? toolNamesFromCalls
|
|
104
|
+
: [];
|
|
105
|
+
// Mirror: options?.maxToolCalls ?? DEFAULT_MAX_TOOL_CALLS
|
|
106
|
+
const resolvedMaxToolCalls = maxToolCalls !== null &&
|
|
107
|
+
maxToolCalls !== DonobuFlowsManager_1.DonobuFlowsManager.DEFAULT_MAX_TOOL_CALLS
|
|
108
|
+
? maxToolCalls
|
|
109
|
+
: DonobuFlowsManager_1.DonobuFlowsManager.DEFAULT_MAX_TOOL_CALLS;
|
|
110
|
+
return {
|
|
111
|
+
allowedTools: resolvedAllowedTools,
|
|
112
|
+
maxToolCalls: resolvedMaxToolCalls,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
86
115
|
/** Creates a Node.js Microsoft Playwright script to replay the given flow. */
|
|
87
|
-
async function getFlowAsPlaywrightScript(flowMetadata, toolCalls, options) {
|
|
116
|
+
async function getFlowAsPlaywrightScript(flowMetadata, toolCalls, options = {}, toolRegistry) {
|
|
88
117
|
// These tools are not supported in the generated script because they have
|
|
89
118
|
// static outputs that have no side effects, so they are not actually
|
|
90
119
|
// doing anything.
|
|
@@ -100,7 +129,7 @@ async function getFlowAsPlaywrightScript(flowMetadata, toolCalls, options) {
|
|
|
100
129
|
description: env,
|
|
101
130
|
};
|
|
102
131
|
});
|
|
103
|
-
const allTools =
|
|
132
|
+
const allTools = toolRegistry.allTools();
|
|
104
133
|
const gptClientRequired = isGptClientRequired(flowMetadata, toolCalls, allTools);
|
|
105
134
|
const gptSetupNote = gptClientRequired
|
|
106
135
|
? `* Note that this test uses tools that require the usage of an LLM, so be
|
|
@@ -174,7 +203,7 @@ ${resultJson}
|
|
|
174
203
|
return prettifyCode(script);
|
|
175
204
|
}
|
|
176
205
|
/** Creates a Node.js Microsoft Playwright script to replay the given flow. */
|
|
177
|
-
async function getFlowAsAiPlaywrightScript(flowMetadata, toolCalls, options) {
|
|
206
|
+
async function getFlowAsAiPlaywrightScript(flowMetadata, toolCalls, options, toolRegistry) {
|
|
178
207
|
const [firstToolCall, ...remaingToolCalls] = toolCalls;
|
|
179
208
|
// If the first tool call is "GoToWebpage", then we peel it off and treat it
|
|
180
209
|
// specially.
|
|
@@ -207,16 +236,10 @@ async function getFlowAsAiPlaywrightScript(flowMetadata, toolCalls, options) {
|
|
|
207
236
|
const annotationsLiteral = annotations.length > 0
|
|
208
237
|
? JSON.stringify({ annotation: annotations }, null, 2)
|
|
209
238
|
: null;
|
|
210
|
-
const defaultToolNames = new Set(
|
|
211
|
-
const
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
// We can exclude minimal tools since they will automatically be included
|
|
215
|
-
// when running any flow anyway, so no need to muck up the code by specifying them.
|
|
216
|
-
return !minimalTools.has(tc);
|
|
217
|
-
})
|
|
218
|
-
.sort();
|
|
219
|
-
const usesNonDefaultTool = toolNamesFromCalls.some((toolName) => !defaultToolNames.has(toolName));
|
|
239
|
+
const defaultToolNames = new Set(toolRegistry.defaultTools().map((tool) => tool.name));
|
|
240
|
+
const minimalToolNames = new Set(toolRegistry.minimalTools().map((t) => t.name));
|
|
241
|
+
const effectiveToolCalls = specialCaseGoto ? remaingToolCalls : toolCalls;
|
|
242
|
+
const runtimeFields = computeRuntimeCacheKeyFields(effectiveToolCalls, defaultToolNames, minimalToolNames, flowMetadata.maxToolCalls);
|
|
220
243
|
const donobuImports = ['test'];
|
|
221
244
|
if (flowMetadata.resultJsonSchema !== null) {
|
|
222
245
|
donobuImports.push('jsonSchemaToZod');
|
|
@@ -225,12 +248,11 @@ async function getFlowAsAiPlaywrightScript(flowMetadata, toolCalls, options) {
|
|
|
225
248
|
if (flowMetadata.resultJsonSchema) {
|
|
226
249
|
optionsLines.push(`schema: jsonSchemaToZod(${JSON.stringify(flowMetadata.resultJsonSchema)})`);
|
|
227
250
|
}
|
|
228
|
-
if (
|
|
229
|
-
optionsLines.push(`allowedTools: ${JSON.stringify(
|
|
251
|
+
if (runtimeFields.allowedTools.length > 0) {
|
|
252
|
+
optionsLines.push(`allowedTools: ${JSON.stringify(runtimeFields.allowedTools)}`);
|
|
230
253
|
}
|
|
231
|
-
if (
|
|
232
|
-
|
|
233
|
-
optionsLines.push(`maxToolCalls: ${flowMetadata.maxToolCalls}`);
|
|
254
|
+
if (runtimeFields.maxToolCalls !== DonobuFlowsManager_1.DonobuFlowsManager.DEFAULT_MAX_TOOL_CALLS) {
|
|
255
|
+
optionsLines.push(`maxToolCalls: ${runtimeFields.maxToolCalls}`);
|
|
234
256
|
}
|
|
235
257
|
if (flowMetadata.envVars && flowMetadata.envVars.length > 0) {
|
|
236
258
|
optionsLines.push(`envVars: ${JSON.stringify(flowMetadata.envVars)}`);
|
|
@@ -271,7 +293,7 @@ ${aiInvocation}
|
|
|
271
293
|
* Browser state dependencies are materialized as static JSON files
|
|
272
294
|
* and referenced via storageState paths in the Playwright config.
|
|
273
295
|
*/
|
|
274
|
-
async function generateProject(flowsWithToolCalls, resolvedBrowserStates, gptConfig, options) {
|
|
296
|
+
async function generateProject(flowsWithToolCalls, resolvedBrowserStates, gptConfig, options, toolRegistry) {
|
|
275
297
|
const flowsMetadata = flowsWithToolCalls.map((f) => f.metadata);
|
|
276
298
|
const files = [];
|
|
277
299
|
// Generate browser state JSON files and build a path map for the config.
|
|
@@ -292,7 +314,7 @@ async function generateProject(flowsWithToolCalls, resolvedBrowserStates, gptCon
|
|
|
292
314
|
}
|
|
293
315
|
const hasBrowserStates = browserStateEntries.length > 0;
|
|
294
316
|
// Generate individual test files
|
|
295
|
-
const testFiles = await generateTestFiles(flowsWithToolCalls, options);
|
|
317
|
+
const testFiles = await generateTestFiles(flowsWithToolCalls, options, toolRegistry);
|
|
296
318
|
files.push(...testFiles);
|
|
297
319
|
// Generate playwright.config.ts
|
|
298
320
|
files.push({
|
|
@@ -301,7 +323,7 @@ async function generateProject(flowsWithToolCalls, resolvedBrowserStates, gptCon
|
|
|
301
323
|
});
|
|
302
324
|
files.push({
|
|
303
325
|
path: '.github/workflows/run-tests.yml',
|
|
304
|
-
content: await generateGitHubActionsWorkflow(flowsWithToolCalls, gptConfig, options, hasBrowserStates),
|
|
326
|
+
content: await generateGitHubActionsWorkflow(flowsWithToolCalls, gptConfig, options, hasBrowserStates, toolRegistry),
|
|
305
327
|
});
|
|
306
328
|
// Generate package.json if needed
|
|
307
329
|
files.push({
|
|
@@ -318,17 +340,17 @@ async function generateProject(flowsWithToolCalls, resolvedBrowserStates, gptCon
|
|
|
318
340
|
content: generateGitIgnore(),
|
|
319
341
|
});
|
|
320
342
|
const cacheFiles = options.playwrightScriptVariant === 'ai'
|
|
321
|
-
? await buildCacheFiles(flowsWithToolCalls)
|
|
343
|
+
? await buildCacheFiles(flowsWithToolCalls, toolRegistry)
|
|
322
344
|
: [];
|
|
323
345
|
files.push(...cacheFiles);
|
|
324
346
|
return { files };
|
|
325
347
|
}
|
|
326
|
-
async function generateGitHubActionsWorkflow(flowsWithToolCalls, gptConfig, options, hasBrowserStates = false) {
|
|
348
|
+
async function generateGitHubActionsWorkflow(flowsWithToolCalls, gptConfig, options, hasBrowserStates = false, toolRegistry) {
|
|
327
349
|
const flowsMetadata = flowsWithToolCalls.map((f) => f.metadata);
|
|
328
350
|
const allUniqueEnvVars = [
|
|
329
351
|
...new Set(flowsMetadata.flatMap((flow) => flow.envVars || [])),
|
|
330
352
|
];
|
|
331
|
-
const allTools =
|
|
353
|
+
const allTools = toolRegistry.allTools();
|
|
332
354
|
const gptClientRequired = flowsWithToolCalls.some((f) => {
|
|
333
355
|
return isGptClientRequired(f.metadata, f.toolCalls, allTools);
|
|
334
356
|
}) || !options.disableSelfHealingTests;
|
|
@@ -464,7 +486,9 @@ ${xvfbStep}
|
|
|
464
486
|
fi
|
|
465
487
|
${pullRequestCreationSection}`;
|
|
466
488
|
}
|
|
467
|
-
function buildCacheContents(flowsWithToolCalls) {
|
|
489
|
+
async function buildCacheContents(flowsWithToolCalls, toolRegistry) {
|
|
490
|
+
const defaultToolNames = new Set(toolRegistry.defaultTools().map((tool) => tool.name));
|
|
491
|
+
const minimalToolNames = new Set(toolRegistry.minimalTools().map((t) => t.name));
|
|
468
492
|
const entries = flowsWithToolCalls
|
|
469
493
|
// We can only create page.ai caches for flows that have an objective.
|
|
470
494
|
.filter(({ metadata }) => metadata.overallObjective?.trim() && metadata.runMode === 'AUTONOMOUS')
|
|
@@ -487,9 +511,14 @@ function buildCacheContents(flowsWithToolCalls) {
|
|
|
487
511
|
pageUrlForCache = metadata.web?.targetWebsite ?? '';
|
|
488
512
|
}
|
|
489
513
|
const cacheEntry = cacheEntryBuilder_1.PageAiCacheEntryBuilder.fromMetadata(pageUrlForCache, metadata, toolCallsForCache);
|
|
514
|
+
// Compute allowedTools and maxToolCalls as the runtime will see them,
|
|
515
|
+
// so the cache lock file keys match the keys built by PageAi.buildDescriptor
|
|
516
|
+
// when the generated test code is executed.
|
|
517
|
+
const runtimeFields = computeRuntimeCacheKeyFields(toolCallsForCache, defaultToolNames, minimalToolNames, metadata.maxToolCalls);
|
|
490
518
|
return {
|
|
491
519
|
...cacheEntry,
|
|
492
|
-
allowedTools:
|
|
520
|
+
allowedTools: runtimeFields.allowedTools,
|
|
521
|
+
maxToolCalls: runtimeFields.maxToolCalls,
|
|
493
522
|
schema: cacheEntry.schema === null
|
|
494
523
|
? null
|
|
495
524
|
: JSON.parse(JSON.stringify(cacheEntry.schema)),
|
|
@@ -499,10 +528,10 @@ function buildCacheContents(flowsWithToolCalls) {
|
|
|
499
528
|
caches: entries,
|
|
500
529
|
};
|
|
501
530
|
}
|
|
502
|
-
async function buildCacheFiles(flowsWithToolCalls) {
|
|
531
|
+
async function buildCacheFiles(flowsWithToolCalls, toolRegistry) {
|
|
503
532
|
const files = [];
|
|
504
533
|
for (const flow of flowsWithToolCalls) {
|
|
505
|
-
const contents = buildCacheContents([flow]);
|
|
534
|
+
const contents = await buildCacheContents([flow], toolRegistry);
|
|
506
535
|
if (contents.caches.length === 0) {
|
|
507
536
|
continue;
|
|
508
537
|
}
|
|
@@ -776,7 +805,7 @@ function generateProjectConfig(projectName, flow, storageStatePath) {
|
|
|
776
805
|
/**
|
|
777
806
|
* Generates test files for all flows
|
|
778
807
|
*/
|
|
779
|
-
async function generateTestFiles(flowsWithToolCalls, options) {
|
|
808
|
+
async function generateTestFiles(flowsWithToolCalls, options, toolRegistry) {
|
|
780
809
|
const files = [];
|
|
781
810
|
const scriptVariant = options.playwrightScriptVariant === 'classic' ? 'classic' : 'ai';
|
|
782
811
|
for (const { metadata, toolCalls } of flowsWithToolCalls) {
|
|
@@ -784,8 +813,8 @@ async function generateTestFiles(flowsWithToolCalls, options) {
|
|
|
784
813
|
const content = scriptVariant === 'classic' ||
|
|
785
814
|
!metadata.overallObjective?.trim() ||
|
|
786
815
|
metadata.runMode !== 'AUTONOMOUS'
|
|
787
|
-
? await getFlowAsPlaywrightScript(metadata, toolCalls, options)
|
|
788
|
-
: await getFlowAsAiPlaywrightScript(metadata, toolCalls, options);
|
|
816
|
+
? await getFlowAsPlaywrightScript(metadata, toolCalls, options, toolRegistry)
|
|
817
|
+
: await getFlowAsAiPlaywrightScript(metadata, toolCalls, options, toolRegistry);
|
|
789
818
|
files.push({
|
|
790
819
|
path: `tests/${fileName}`,
|
|
791
820
|
content,
|
|
@@ -105,11 +105,12 @@ class PageAiRunner {
|
|
|
105
105
|
* a narrower list.
|
|
106
106
|
*/
|
|
107
107
|
async buildToolManager(allowedToolsByName) {
|
|
108
|
+
const registry = this.donobu.toolRegistry;
|
|
108
109
|
if (allowedToolsByName.length === 0) {
|
|
109
|
-
return new ToolManager_1.ToolManager(
|
|
110
|
+
return new ToolManager_1.ToolManager(registry.defaultTools());
|
|
110
111
|
}
|
|
111
|
-
const allTools =
|
|
112
|
-
const minimalToolsByName =
|
|
112
|
+
const allTools = registry.allTools();
|
|
113
|
+
const minimalToolsByName = registry.minimalTools().map((t) => t.name);
|
|
113
114
|
const semifinalToolNames = new Set([
|
|
114
115
|
...allowedToolsByName,
|
|
115
116
|
...minimalToolsByName,
|
|
@@ -489,7 +489,7 @@ async function runTool(page, toolName, toolParams, gptClient) {
|
|
|
489
489
|
metadata: page._dnb.donobuFlowMetadata,
|
|
490
490
|
toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
|
|
491
491
|
};
|
|
492
|
-
const tools =
|
|
492
|
+
const tools = page._dnb.donobuStack.toolRegistry.allTools();
|
|
493
493
|
const result = await new ToolManager_1.ToolManager(tools).invokeTool(toolCallContext, toolName, clonedParams, false);
|
|
494
494
|
return result;
|
|
495
495
|
}
|
|
@@ -37,7 +37,6 @@ exports.selfHeal = selfHeal;
|
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const v4_1 = require("zod/v4");
|
|
39
39
|
const DonobuFlowsManager_1 = require("../../../managers/DonobuFlowsManager");
|
|
40
|
-
const ToolManager_1 = require("../../../managers/ToolManager");
|
|
41
40
|
const CodeGenerationOptions_1 = require("../../../models/CodeGenerationOptions");
|
|
42
41
|
const AnalyzePageTextTool_1 = require("../../../tools/AnalyzePageTextTool");
|
|
43
42
|
const AssertPageTextTool_1 = require("../../../tools/AssertPageTextTool");
|
|
@@ -106,7 +105,7 @@ async function selfHeal(gptClient, testInfo, page) {
|
|
|
106
105
|
testInfo.setTimeout(testInfo.timeout + selfHealTimeoutMs);
|
|
107
106
|
Logger_1.appLogger.info(`Extending the test timeout ${selfHealTimeoutMs}ms for self-healing...`);
|
|
108
107
|
Logger_1.appLogger.info('Attempting to self-heal by creating a new autonomous flow...');
|
|
109
|
-
const allowedTools = await buildToolList(donobuFlowMetadata);
|
|
108
|
+
const allowedTools = await buildToolList(donobuFlowMetadata, donobu.toolRegistry);
|
|
110
109
|
const objectiveWhileSelfHealing = `
|
|
111
110
|
Use tool calling to follow along with the intent of this Playwright test.
|
|
112
111
|
The test had failed, so some parts may need to be adjusted along the way, but
|
|
@@ -267,7 +266,7 @@ to someone who is tasked with completing it as a goal.
|
|
|
267
266
|
};
|
|
268
267
|
}
|
|
269
268
|
}
|
|
270
|
-
async function buildToolList(donobuFlowMetadata) {
|
|
269
|
+
async function buildToolList(donobuFlowMetadata, toolRegistry) {
|
|
271
270
|
const baseTools = [
|
|
272
271
|
AnalyzePageTextTool_1.AnalyzePageTextTool.NAME,
|
|
273
272
|
AssertTool_1.AssertTool.NAME,
|
|
@@ -293,7 +292,7 @@ async function buildToolList(donobuFlowMetadata) {
|
|
|
293
292
|
WaitTool_1.WaitTool.NAME,
|
|
294
293
|
];
|
|
295
294
|
// Always allow tools from plugins.
|
|
296
|
-
const toolsFromPlugins =
|
|
295
|
+
const toolsFromPlugins = toolRegistry.pluginTools().map((t) => t.name);
|
|
297
296
|
const defaultTools = new Set([
|
|
298
297
|
...(donobuFlowMetadata.allowedTools ? donobuFlowMetadata.allowedTools : []),
|
|
299
298
|
...baseTools,
|
package/dist/esm/main.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { AnthropicGptClient } from './clients/AnthropicGptClient';
|
|
|
2
2
|
export { DonobuGptClient } from './clients/DonobuGptClient';
|
|
3
3
|
export { fixAssertFields, GoogleGenerativeAiGptClient, } from './clients/GoogleGenerativeAiGptClient';
|
|
4
4
|
export { GptClient } from './clients/GptClient';
|
|
5
|
-
export { type GptClientPlugin,
|
|
5
|
+
export { type GptClientPlugin, GptClientPluginRegistry, } from './clients/GptClientPlugin';
|
|
6
6
|
export { OpenAiGptClient } from './clients/OpenAiGptClient';
|
|
7
7
|
export { VercelAiGptClient } from './clients/VercelAiGptClient';
|
|
8
8
|
export { runGenerateSiteTests } from './codegen/runGenerateSiteTests';
|
|
@@ -25,9 +25,10 @@ export { DonobuFlow } from './managers/DonobuFlow';
|
|
|
25
25
|
export { distillAllowedEnvVariableNames, DonobuFlowsManager, } from './managers/DonobuFlowsManager';
|
|
26
26
|
export { type DonobuStack, setupDonobuStack } from './managers/DonobuStack';
|
|
27
27
|
export { InteractionVisualizer } from './managers/InteractionVisualizer';
|
|
28
|
-
export { type PluginDependencies, PluginLoader } from './managers/PluginLoader';
|
|
28
|
+
export { type LoadedPlugins, type PluginDependencies, PluginLoader, } from './managers/PluginLoader';
|
|
29
29
|
export type * from './managers/TargetInspector';
|
|
30
30
|
export { ToolManager } from './managers/ToolManager';
|
|
31
|
+
export { createDefaultToolRegistry, type ToolRegistry, } from './managers/ToolRegistry';
|
|
31
32
|
export * from './managers/WebTargetInspector';
|
|
32
33
|
export * from './models/BrowserStorageState';
|
|
33
34
|
export * from './models/CodeGenerationOptions';
|
|
@@ -48,9 +49,9 @@ export * from './models/ToolSchema';
|
|
|
48
49
|
export type { VideoSegment } from './models/VideoSegment';
|
|
49
50
|
export type { EnvPersistence } from './persistence/env/EnvPersistence';
|
|
50
51
|
export type { FlowsPersistence } from './persistence/flows/FlowsPersistence';
|
|
51
|
-
export { type PersistencePlugin,
|
|
52
|
+
export { type PersistencePlugin, PersistencePluginRegistry, } from './persistence/PersistencePlugin';
|
|
52
53
|
export type { TargetRuntime } from './targets/TargetRuntime';
|
|
53
|
-
export {
|
|
54
|
+
export { type TargetRuntimeParams, type TargetRuntimePlugin, TargetRuntimePluginRegistry, } from './targets/TargetRuntimePlugin';
|
|
54
55
|
export * from './tools/ReplayableInteraction';
|
|
55
56
|
export * from './tools/Tool';
|
|
56
57
|
export * from './utils/createTool';
|
package/dist/esm/main.js
CHANGED
|
@@ -14,18 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.TargetRuntimePluginRegistry = exports.PersistencePluginRegistry = exports.createDefaultToolRegistry = exports.ToolManager = exports.PluginLoader = exports.InteractionVisualizer = exports.setupDonobuStack = exports.DonobuFlowsManager = exports.distillAllowedEnvVariableNames = exports.DonobuFlow = exports.env = exports.runGenerateSiteTests = exports.VercelAiGptClient = exports.OpenAiGptClient = exports.GptClientPluginRegistry = exports.GptClient = exports.GoogleGenerativeAiGptClient = exports.fixAssertFields = exports.DonobuGptClient = exports.AnthropicGptClient = void 0;
|
|
18
18
|
exports.startDonobuServer = startDonobuServer;
|
|
19
19
|
const commander_1 = require("commander");
|
|
20
20
|
const v4_1 = require("zod/v4");
|
|
21
21
|
const envVars_1 = require("./envVars");
|
|
22
22
|
const init_1 = require("./init");
|
|
23
23
|
const AdminApiController_1 = require("./managers/AdminApiController");
|
|
24
|
-
const PluginLoader_1 = require("./managers/PluginLoader");
|
|
25
|
-
const ToolManager_1 = require("./managers/ToolManager");
|
|
26
24
|
const ControlPanel_1 = require("./models/ControlPanel");
|
|
27
|
-
const TargetRuntimePlugin_1 = require("./targets/TargetRuntimePlugin");
|
|
28
|
-
const WebTargetRuntime_1 = require("./targets/WebTargetRuntime");
|
|
29
25
|
const Logger_1 = require("./utils/Logger");
|
|
30
26
|
const PlaywrightUtils_1 = require("./utils/PlaywrightUtils");
|
|
31
27
|
var AnthropicGptClient_1 = require("./clients/AnthropicGptClient");
|
|
@@ -38,7 +34,7 @@ Object.defineProperty(exports, "GoogleGenerativeAiGptClient", { enumerable: true
|
|
|
38
34
|
var GptClient_1 = require("./clients/GptClient");
|
|
39
35
|
Object.defineProperty(exports, "GptClient", { enumerable: true, get: function () { return GptClient_1.GptClient; } });
|
|
40
36
|
var GptClientPlugin_1 = require("./clients/GptClientPlugin");
|
|
41
|
-
Object.defineProperty(exports, "
|
|
37
|
+
Object.defineProperty(exports, "GptClientPluginRegistry", { enumerable: true, get: function () { return GptClientPlugin_1.GptClientPluginRegistry; } });
|
|
42
38
|
var OpenAiGptClient_1 = require("./clients/OpenAiGptClient");
|
|
43
39
|
Object.defineProperty(exports, "OpenAiGptClient", { enumerable: true, get: function () { return OpenAiGptClient_1.OpenAiGptClient; } });
|
|
44
40
|
var VercelAiGptClient_1 = require("./clients/VercelAiGptClient");
|
|
@@ -69,10 +65,12 @@ var DonobuStack_1 = require("./managers/DonobuStack");
|
|
|
69
65
|
Object.defineProperty(exports, "setupDonobuStack", { enumerable: true, get: function () { return DonobuStack_1.setupDonobuStack; } });
|
|
70
66
|
var InteractionVisualizer_1 = require("./managers/InteractionVisualizer");
|
|
71
67
|
Object.defineProperty(exports, "InteractionVisualizer", { enumerable: true, get: function () { return InteractionVisualizer_1.InteractionVisualizer; } });
|
|
72
|
-
var
|
|
73
|
-
Object.defineProperty(exports, "PluginLoader", { enumerable: true, get: function () { return
|
|
74
|
-
var
|
|
75
|
-
Object.defineProperty(exports, "ToolManager", { enumerable: true, get: function () { return
|
|
68
|
+
var PluginLoader_1 = require("./managers/PluginLoader");
|
|
69
|
+
Object.defineProperty(exports, "PluginLoader", { enumerable: true, get: function () { return PluginLoader_1.PluginLoader; } });
|
|
70
|
+
var ToolManager_1 = require("./managers/ToolManager");
|
|
71
|
+
Object.defineProperty(exports, "ToolManager", { enumerable: true, get: function () { return ToolManager_1.ToolManager; } });
|
|
72
|
+
var ToolRegistry_1 = require("./managers/ToolRegistry");
|
|
73
|
+
Object.defineProperty(exports, "createDefaultToolRegistry", { enumerable: true, get: function () { return ToolRegistry_1.createDefaultToolRegistry; } });
|
|
76
74
|
__exportStar(require("./managers/WebTargetInspector"), exports);
|
|
77
75
|
__exportStar(require("./models/BrowserStorageState"), exports);
|
|
78
76
|
__exportStar(require("./models/CodeGenerationOptions"), exports);
|
|
@@ -85,9 +83,9 @@ __exportStar(require("./models/TargetConfig"), exports);
|
|
|
85
83
|
__exportStar(require("./models/ToolCallResult"), exports);
|
|
86
84
|
__exportStar(require("./models/ToolSchema"), exports);
|
|
87
85
|
var PersistencePlugin_1 = require("./persistence/PersistencePlugin");
|
|
88
|
-
Object.defineProperty(exports, "
|
|
89
|
-
var
|
|
90
|
-
Object.defineProperty(exports, "
|
|
86
|
+
Object.defineProperty(exports, "PersistencePluginRegistry", { enumerable: true, get: function () { return PersistencePlugin_1.PersistencePluginRegistry; } });
|
|
87
|
+
var TargetRuntimePlugin_1 = require("./targets/TargetRuntimePlugin");
|
|
88
|
+
Object.defineProperty(exports, "TargetRuntimePluginRegistry", { enumerable: true, get: function () { return TargetRuntimePlugin_1.TargetRuntimePluginRegistry; } });
|
|
91
89
|
__exportStar(require("./tools/ReplayableInteraction"), exports);
|
|
92
90
|
__exportStar(require("./tools/Tool"), exports);
|
|
93
91
|
__exportStar(require("./utils/createTool"), exports);
|
|
@@ -104,17 +102,6 @@ const DEFAULT_PORT = 31000;
|
|
|
104
102
|
*/
|
|
105
103
|
async function startDonobuServer({ port = DEFAULT_PORT, controlPanelHost = ControlPanel_1.NoOpControlPanelFactory, } = {}) {
|
|
106
104
|
try {
|
|
107
|
-
// Register built-in target runtime plugins before external plugins,
|
|
108
|
-
// so that external plugins can override them if needed.
|
|
109
|
-
(0, TargetRuntimePlugin_1.registerTargetRuntimePlugin)(WebTargetRuntime_1.webTargetRuntimePlugin);
|
|
110
|
-
// Load all plugins (tools + persistence + target runtimes) in a single
|
|
111
|
-
// directory scan. Persistence plugins must be registered before
|
|
112
|
-
// setupDonobuStack() runs (which happens inside AdminApiController.create
|
|
113
|
-
// below).
|
|
114
|
-
const pluginLoader = await PluginLoader_1.PluginLoader.create();
|
|
115
|
-
const { tools } = await pluginLoader.loadAllPlugins();
|
|
116
|
-
ToolManager_1.ToolManager.setPluginTools(tools);
|
|
117
|
-
void (await ToolManager_1.ToolManager.allTools());
|
|
118
105
|
const adminController = await AdminApiController_1.AdminApiController.create(envVars_1.env.data.DONOBU_DEPLOYMENT_ENVIRONMENT ?? 'LOCAL', controlPanelHost, envVars_1.env);
|
|
119
106
|
adminController.start(port);
|
|
120
107
|
Logger_1.appLogger.info(`Donobu API server available on http://localhost:${port}`);
|
|
@@ -233,13 +233,13 @@ class AdminApiController {
|
|
|
233
233
|
gptConfigsApi: new GptConfigsApi_1.GptConfigsApi(donobuStack.gptConfigsManager, donobuStack.agentsManager),
|
|
234
234
|
agentsApi: new AgentsApi_1.AgentsApi(donobuStack.agentsManager),
|
|
235
235
|
askAiApi: new AskAiApi_1.AskAiApi(donobuStack.gptClientFactory, donobuStack.gptConfigsManager, donobuStack.agentsManager),
|
|
236
|
-
toolsApi: new ToolsApi_1.ToolsApi(),
|
|
236
|
+
toolsApi: new ToolsApi_1.ToolsApi(donobuStack.toolRegistry),
|
|
237
237
|
flowsApi: new FlowsApi_1.FlowsApi(donobuStack.flowsManager),
|
|
238
238
|
flowsFilesApi: new FlowsFilesApi_1.FlowsFilesApi(donobuStack.flowsPersistenceRegistry),
|
|
239
239
|
flowsToolCallsApi: new FlowsToolCallsApi_1.FlowsToolCallsApi(donobuStack.flowsManager),
|
|
240
240
|
pingApi: new PingApi_1.PingApi(),
|
|
241
241
|
schemaApi: new SchemaApi_1.SchemaApi(),
|
|
242
|
-
targetsApi: new TargetsApi_1.TargetsApi(),
|
|
242
|
+
targetsApi: new TargetsApi_1.TargetsApi(donobuStack.targetRuntimePlugins),
|
|
243
243
|
};
|
|
244
244
|
}
|
|
245
245
|
/**
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { EnvPick } from 'env-struct';
|
|
2
2
|
import type { BrowserContext } from 'playwright';
|
|
3
|
+
import type { z } from 'zod/v4';
|
|
3
4
|
import type { GptClient } from '../clients/GptClient';
|
|
4
5
|
import type { GptClientFactory } from '../clients/GptClientFactory';
|
|
5
6
|
import type { GeneratedProject } from '../codegen/CodeGenerator';
|
|
@@ -18,11 +19,14 @@ import type { PaginatedResult } from '../models/PaginatedResult';
|
|
|
18
19
|
import type { ProposedToolCall } from '../models/ProposedToolCall';
|
|
19
20
|
import type { ToolCall } from '../models/ToolCall';
|
|
20
21
|
import type { FlowsPersistenceRegistry } from '../persistence/flows/FlowsPersistenceRegistry';
|
|
22
|
+
import type { TargetRuntimePluginRegistry } from '../targets/TargetRuntimePlugin';
|
|
23
|
+
import type { Tool } from '../tools/Tool';
|
|
21
24
|
import type { FlowLogSnapshot } from '../utils/FlowLogBuffer';
|
|
22
25
|
import type { AgentsManager } from './AgentsManager';
|
|
23
26
|
import { DonobuFlow } from './DonobuFlow';
|
|
24
27
|
import type { EnvDataManager } from './EnvDataManager';
|
|
25
28
|
import type { GptConfigsManager } from './GptConfigsManager';
|
|
29
|
+
import type { ToolRegistry } from './ToolRegistry';
|
|
26
30
|
/**
|
|
27
31
|
* Response wrapper for `createFlow` calls.
|
|
28
32
|
*/
|
|
@@ -36,14 +40,15 @@ export declare class DonobuFlowsManager {
|
|
|
36
40
|
private readonly envDataManager;
|
|
37
41
|
private readonly controlPanelFactory;
|
|
38
42
|
private readonly environ;
|
|
43
|
+
private readonly toolRegistry;
|
|
44
|
+
private readonly targetRuntimePlugins;
|
|
39
45
|
static readonly DEFAULT_MESSAGE_DURATION = 2247;
|
|
40
46
|
static readonly DEFAULT_MAX_TOOL_CALLS = 50;
|
|
41
47
|
static readonly DEFAULT_BROWSER_STATE_FILENAME = "browserstate.json";
|
|
42
48
|
static readonly FLOW_NAME_MAX_LENGTH = 255;
|
|
43
49
|
private readonly flowRuntime;
|
|
44
50
|
private readonly flowCatalog;
|
|
45
|
-
|
|
46
|
-
constructor(deploymentEnvironment: DonobuDeploymentEnvironment, gptClientFactory: GptClientFactory, gptConfigsManager: GptConfigsManager, agentsManager: AgentsManager, flowsPersistenceRegistry: FlowsPersistenceRegistry, envDataManager: EnvDataManager, controlPanelFactory: ControlPanelFactory, environ: EnvPick<typeof env, 'ANTHROPIC_API_KEY' | 'ANTHROPIC_MODEL_NAME' | 'AWS_ACCESS_KEY_ID' | 'AWS_BEDROCK_MODEL_NAME' | 'AWS_SECRET_ACCESS_KEY' | 'BASE64_GPT_CONFIG' | 'BROWSERBASE_API_KEY' | 'BROWSERBASE_PROJECT_ID' | 'DONOBU_API_KEY' | 'GOOGLE_GENERATIVE_AI_API_KEY' | 'GOOGLE_GENERATIVE_AI_MODEL_NAME' | 'OPENAI_API_KEY' | 'OPENAI_API_MODEL_NAME'>);
|
|
51
|
+
constructor(deploymentEnvironment: DonobuDeploymentEnvironment, gptClientFactory: GptClientFactory, gptConfigsManager: GptConfigsManager, agentsManager: AgentsManager, flowsPersistenceRegistry: FlowsPersistenceRegistry, envDataManager: EnvDataManager, controlPanelFactory: ControlPanelFactory, environ: EnvPick<typeof env, 'ANTHROPIC_API_KEY' | 'ANTHROPIC_MODEL_NAME' | 'AWS_ACCESS_KEY_ID' | 'AWS_BEDROCK_MODEL_NAME' | 'AWS_SECRET_ACCESS_KEY' | 'BASE64_GPT_CONFIG' | 'BROWSERBASE_API_KEY' | 'BROWSERBASE_PROJECT_ID' | 'DONOBU_API_KEY' | 'GOOGLE_GENERATIVE_AI_API_KEY' | 'GOOGLE_GENERATIVE_AI_MODEL_NAME' | 'OPENAI_API_KEY' | 'OPENAI_API_MODEL_NAME'>, toolRegistry: ToolRegistry, targetRuntimePlugins: TargetRuntimePluginRegistry);
|
|
47
52
|
/**
|
|
48
53
|
* Create a flow with the given parameters and invoke its `DonobuFlow#run`
|
|
49
54
|
* method, adding it to list of active flows.
|
|
@@ -166,6 +171,21 @@ export declare class DonobuFlowsManager {
|
|
|
166
171
|
* );
|
|
167
172
|
*/
|
|
168
173
|
export declare function distillAllowedEnvVariableNames(overallObjective: string | null | undefined, explicitlyAllowedEnvVariableNames: string[] | null | undefined): string[];
|
|
174
|
+
/**
|
|
175
|
+
* Resolves the final set of tools a flow is permitted to use.
|
|
176
|
+
*
|
|
177
|
+
* The resolution follows this priority:
|
|
178
|
+
* 1. If the caller explicitly listed tools, use those (filtered to the target).
|
|
179
|
+
* 2. Otherwise, fall back to target-appropriate defaults (curated subset for
|
|
180
|
+
* web, all target-compatible tools for plugin-provided targets).
|
|
181
|
+
* 3. Tools required by `toolCallsOnStart` are always included.
|
|
182
|
+
* 4. Custom (user-defined) tools are prepended.
|
|
183
|
+
* 5. GPT-requiring tools are stripped when no GPT client is available.
|
|
184
|
+
* 6. Minimal tools (objective bookkeeping) are guaranteed present.
|
|
185
|
+
* 7. The result is deduplicated and sorted by name.
|
|
186
|
+
*/
|
|
187
|
+
/** @internal Exported for testing. */
|
|
188
|
+
export declare function setupAllowedTools(flowParams: Pick<CreateDonobuFlow, 'customTools' | 'toolCallsOnStart' | 'allowedTools'>, hasGptClient: boolean, targetType: string, toolRegistry: ToolRegistry): Promise<Tool<z.ZodObject, z.ZodObject>[]>;
|
|
169
189
|
/**
|
|
170
190
|
* Convert an *executed* list of {@link ToolCall}s into a list of
|
|
171
191
|
* {@link ProposedToolCall}s that can be replayed in a fresh browser
|
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.DonobuFlowsManager = void 0;
|
|
37
37
|
exports.distillAllowedEnvVariableNames = distillAllowedEnvVariableNames;
|
|
38
|
+
exports.setupAllowedTools = setupAllowedTools;
|
|
38
39
|
exports.prepareToolCallsForRerun = prepareToolCallsForRerun;
|
|
39
40
|
const crypto_1 = require("crypto");
|
|
40
41
|
const fs = __importStar(require("fs/promises"));
|
|
@@ -50,7 +51,6 @@ const ToolRequiresGptException_1 = require("../exceptions/ToolRequiresGptExcepti
|
|
|
50
51
|
const UnknownToolException_1 = require("../exceptions/UnknownToolException");
|
|
51
52
|
const GptConfig_1 = require("../models/GptConfig");
|
|
52
53
|
const resolveTargetRuntime_1 = require("../targets/resolveTargetRuntime");
|
|
53
|
-
const TargetRuntimePlugin_1 = require("../targets/TargetRuntimePlugin");
|
|
54
54
|
const ChooseSelectOptionTool_1 = require("../tools/ChooseSelectOptionTool");
|
|
55
55
|
const ClickTool_1 = require("../tools/ClickTool");
|
|
56
56
|
const CustomToolRunnerTool_1 = require("../tools/CustomToolRunnerTool");
|
|
@@ -69,12 +69,11 @@ const MiscUtils_1 = require("../utils/MiscUtils");
|
|
|
69
69
|
const TemplateInterpolator_1 = require("../utils/TemplateInterpolator");
|
|
70
70
|
const DonobuFlow_1 = require("./DonobuFlow");
|
|
71
71
|
const FlowCatalog_1 = require("./FlowCatalog");
|
|
72
|
-
const FlowDependencyResolver_1 = require("./FlowDependencyResolver");
|
|
73
72
|
const FlowRuntime_1 = require("./FlowRuntime");
|
|
74
73
|
const InteractionVisualizer_1 = require("./InteractionVisualizer");
|
|
75
74
|
const ToolManager_1 = require("./ToolManager");
|
|
76
75
|
class DonobuFlowsManager {
|
|
77
|
-
constructor(deploymentEnvironment, gptClientFactory, gptConfigsManager, agentsManager, flowsPersistenceRegistry, envDataManager, controlPanelFactory, environ) {
|
|
76
|
+
constructor(deploymentEnvironment, gptClientFactory, gptConfigsManager, agentsManager, flowsPersistenceRegistry, envDataManager, controlPanelFactory, environ, toolRegistry, targetRuntimePlugins) {
|
|
78
77
|
this.deploymentEnvironment = deploymentEnvironment;
|
|
79
78
|
this.gptClientFactory = gptClientFactory;
|
|
80
79
|
this.gptConfigsManager = gptConfigsManager;
|
|
@@ -83,9 +82,10 @@ class DonobuFlowsManager {
|
|
|
83
82
|
this.envDataManager = envDataManager;
|
|
84
83
|
this.controlPanelFactory = controlPanelFactory;
|
|
85
84
|
this.environ = environ;
|
|
85
|
+
this.toolRegistry = toolRegistry;
|
|
86
|
+
this.targetRuntimePlugins = targetRuntimePlugins;
|
|
86
87
|
this.flowRuntime = new FlowRuntime_1.FlowRuntime();
|
|
87
88
|
this.flowCatalog = new FlowCatalog_1.FlowCatalog(this.flowsPersistenceRegistry, this.flowRuntime, this.deploymentEnvironment);
|
|
88
|
-
this.flowDependencyResolver = new FlowDependencyResolver_1.FlowDependencyResolver(this.flowCatalog);
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Create a flow with the given parameters and invoke its `DonobuFlow#run`
|
|
@@ -124,7 +124,7 @@ class DonobuFlowsManager {
|
|
|
124
124
|
const initialRunMode = flowParams.initialRunMode ??
|
|
125
125
|
(gptClientData.gptClient ? 'AUTONOMOUS' : 'INSTRUCT');
|
|
126
126
|
// --- Generic validation (target-agnostic) ---
|
|
127
|
-
await validateFlowParams(flowParams, gptClientData.gptClient, initialRunMode);
|
|
127
|
+
await validateFlowParams(flowParams, gptClientData.gptClient, initialRunMode, this.toolRegistry);
|
|
128
128
|
const messageDuration = flowParams.defaultMessageDuration ??
|
|
129
129
|
DonobuFlowsManager.DEFAULT_MESSAGE_DURATION;
|
|
130
130
|
const interactionVisualizer = new InteractionVisualizer_1.InteractionVisualizer(messageDuration);
|
|
@@ -137,9 +137,9 @@ class DonobuFlowsManager {
|
|
|
137
137
|
environ: this.environ,
|
|
138
138
|
browserContextOverride,
|
|
139
139
|
getBrowserStorageState: (ref) => this.getBrowserStorageState(ref),
|
|
140
|
-
});
|
|
140
|
+
}, this.targetRuntimePlugins);
|
|
141
141
|
try {
|
|
142
|
-
const allowedTools = await setupAllowedTools(flowParams, gptClientData !== null, targetRuntime.targetType);
|
|
142
|
+
const allowedTools = await setupAllowedTools(flowParams, gptClientData !== null, targetRuntime.targetType, this.toolRegistry);
|
|
143
143
|
const toolManager = new ToolManager_1.ToolManager(allowedTools);
|
|
144
144
|
const toolCallsOnStart = flowParams.toolCallsOnStart?.length
|
|
145
145
|
? flowParams.toolCallsOnStart
|
|
@@ -285,7 +285,7 @@ class DonobuFlowsManager {
|
|
|
285
285
|
const originalToolCalls = await this.getToolCalls(flowId);
|
|
286
286
|
// Delegate tool call preparation to the target runtime plugin so that
|
|
287
287
|
// rerun logic is fully target-agnostic.
|
|
288
|
-
const plugin =
|
|
288
|
+
const plugin = this.targetRuntimePlugins.get(priorFlowMetadata.target);
|
|
289
289
|
const toolCallsOnStart = plugin
|
|
290
290
|
? await plugin.prepareToolCallsForRerun(originalToolCalls, options)
|
|
291
291
|
: await prepareToolCallsForRerun(originalToolCalls, options);
|
|
@@ -323,7 +323,7 @@ class DonobuFlowsManager {
|
|
|
323
323
|
if (!activeFlowHandle) {
|
|
324
324
|
throw new ActiveFlowNotFoundException_1.ActiveFlowNotFoundException(flowId);
|
|
325
325
|
}
|
|
326
|
-
const tool =
|
|
326
|
+
const tool = this.toolRegistry.allTools().find((t) => t.name === toolName);
|
|
327
327
|
if (!tool) {
|
|
328
328
|
throw new UnknownToolException_1.UnknownToolException(toolName);
|
|
329
329
|
}
|
|
@@ -425,9 +425,9 @@ class DonobuFlowsManager {
|
|
|
425
425
|
const proposedToolCalls = await prepareToolCallsForRerun(originalToolCalls, effectiveOptions);
|
|
426
426
|
const scriptVariant = effectiveOptions.playwrightScriptVariant === 'classic' ? 'classic' : 'ai';
|
|
427
427
|
if (scriptVariant === 'classic') {
|
|
428
|
-
return (0, CodeGenerator_1.getFlowAsPlaywrightScript)(flowMetadata, proposedToolCalls, effectiveOptions);
|
|
428
|
+
return (0, CodeGenerator_1.getFlowAsPlaywrightScript)(flowMetadata, proposedToolCalls, effectiveOptions, this.toolRegistry);
|
|
429
429
|
}
|
|
430
|
-
return (0, CodeGenerator_1.getFlowAsAiPlaywrightScript)(flowMetadata, proposedToolCalls, effectiveOptions);
|
|
430
|
+
return (0, CodeGenerator_1.getFlowAsAiPlaywrightScript)(flowMetadata, proposedToolCalls, effectiveOptions, this.toolRegistry);
|
|
431
431
|
}
|
|
432
432
|
/**
|
|
433
433
|
* Generates a complete Playwright project structure for multiple flows with dependency management.
|
|
@@ -473,7 +473,7 @@ class DonobuFlowsManager {
|
|
|
473
473
|
catch (error) {
|
|
474
474
|
Logger_1.appLogger.warn('Error while resolving default GPT client configuration when generating project code', error);
|
|
475
475
|
}
|
|
476
|
-
return await (0, CodeGenerator_1.generateProject)(flowsWithToolCalls, resolvedBrowserStates, defaultGptConfig, options);
|
|
476
|
+
return await (0, CodeGenerator_1.generateProject)(flowsWithToolCalls, resolvedBrowserStates, defaultGptConfig, options, this.toolRegistry);
|
|
477
477
|
}
|
|
478
478
|
/**
|
|
479
479
|
* Resolves a GPT client using the provided GPT configuration name, falling back
|
|
@@ -664,7 +664,7 @@ function validateFlowName(flowName) {
|
|
|
664
664
|
throw new InvalidParamValueException_1.InvalidParamValueException('name', flowName, `the value cannot be longer than ${DonobuFlowsManager.FLOW_NAME_MAX_LENGTH} characters`);
|
|
665
665
|
}
|
|
666
666
|
}
|
|
667
|
-
async function validateFlowParams(flowParams, gptClient, initialRunMode) {
|
|
667
|
+
async function validateFlowParams(flowParams, gptClient, initialRunMode, toolRegistry) {
|
|
668
668
|
// Target-specific validation (e.g. targetWebsite URL format) is handled
|
|
669
669
|
// by the TargetRuntimePlugin.validate() call in resolveTargetRuntime().
|
|
670
670
|
// This function only validates target-agnostic parameters.
|
|
@@ -695,13 +695,27 @@ async function validateFlowParams(flowParams, gptClient, initialRunMode) {
|
|
|
695
695
|
throw new InvalidParamValueException_1.InvalidParamValueException('initialRunMode', initialRunMode);
|
|
696
696
|
}
|
|
697
697
|
if (!gptClient) {
|
|
698
|
-
await throwIfAnyToolsRequireGpt(flowParams.allowedTools ?? null, flowParams.toolCallsOnStart ?? null);
|
|
698
|
+
await throwIfAnyToolsRequireGpt(flowParams.allowedTools ?? null, flowParams.toolCallsOnStart ?? null, toolRegistry);
|
|
699
699
|
}
|
|
700
700
|
}
|
|
701
|
-
|
|
701
|
+
/**
|
|
702
|
+
* Resolves the final set of tools a flow is permitted to use.
|
|
703
|
+
*
|
|
704
|
+
* The resolution follows this priority:
|
|
705
|
+
* 1. If the caller explicitly listed tools, use those (filtered to the target).
|
|
706
|
+
* 2. Otherwise, fall back to target-appropriate defaults (curated subset for
|
|
707
|
+
* web, all target-compatible tools for plugin-provided targets).
|
|
708
|
+
* 3. Tools required by `toolCallsOnStart` are always included.
|
|
709
|
+
* 4. Custom (user-defined) tools are prepended.
|
|
710
|
+
* 5. GPT-requiring tools are stripped when no GPT client is available.
|
|
711
|
+
* 6. Minimal tools (objective bookkeeping) are guaranteed present.
|
|
712
|
+
* 7. The result is deduplicated and sorted by name.
|
|
713
|
+
*/
|
|
714
|
+
/** @internal Exported for testing. */
|
|
715
|
+
async function setupAllowedTools(flowParams, hasGptClient, targetType, toolRegistry) {
|
|
702
716
|
const customTools = flowParams.customTools?.map((tool) => new CustomToolRunnerTool_1.CustomToolRunnerTool(tool)) ?? [];
|
|
703
717
|
const toolsNeededOnStart = flowParams.toolCallsOnStart?.map((t) => t.name) ?? [];
|
|
704
|
-
const targetCompatibleTools =
|
|
718
|
+
const targetCompatibleTools = toolRegistry.toolsForTarget(targetType);
|
|
705
719
|
let prepackagedTools;
|
|
706
720
|
if (flowParams.allowedTools?.length) {
|
|
707
721
|
const allowedTools = [...toolsNeededOnStart, ...flowParams.allowedTools];
|
|
@@ -714,7 +728,7 @@ async function setupAllowedTools(flowParams, hasGptClient, targetType) {
|
|
|
714
728
|
// Web uses a curated default subset; other targets (provided by plugins)
|
|
715
729
|
// default to all target-compatible tools.
|
|
716
730
|
const defaultTools = targetType === 'web'
|
|
717
|
-
?
|
|
731
|
+
? toolRegistry.defaultTools()
|
|
718
732
|
: targetCompatibleTools;
|
|
719
733
|
const allowedTools = [
|
|
720
734
|
...toolsNeededOnStart,
|
|
@@ -726,7 +740,7 @@ async function setupAllowedTools(flowParams, hasGptClient, targetType) {
|
|
|
726
740
|
const prepackagedToolsWithGptFiltered = prepackagedTools.filter((tool) => {
|
|
727
741
|
return hasGptClient || !tool.requiresGpt;
|
|
728
742
|
});
|
|
729
|
-
const minimalTools =
|
|
743
|
+
const minimalTools = toolRegistry.minimalTools();
|
|
730
744
|
const existingToolNames = new Set([...customTools, ...prepackagedToolsWithGptFiltered].map((tool) => tool.name));
|
|
731
745
|
const missingMinimalTools = minimalTools.filter((tool) => !existingToolNames.has(tool.name));
|
|
732
746
|
const combinedTools = [
|
|
@@ -775,8 +789,8 @@ async function setFlowVideo(flowId, flowTempDir, flowsPersistence) {
|
|
|
775
789
|
await flowsPersistence.setVideo(flowId, videoBytes);
|
|
776
790
|
}
|
|
777
791
|
}
|
|
778
|
-
async function throwIfAnyToolsRequireGpt(requestedTools, toolCallsOnStart) {
|
|
779
|
-
const toolMap = new Map(
|
|
792
|
+
async function throwIfAnyToolsRequireGpt(requestedTools, toolCallsOnStart, toolRegistry) {
|
|
793
|
+
const toolMap = new Map(toolRegistry.allTools().map((tool) => [tool.name, tool]));
|
|
780
794
|
const requestedToolsRequiringGpt = [...(requestedTools ?? [])].filter((name) => toolMap.get(name)?.requiresGpt);
|
|
781
795
|
if (requestedToolsRequiringGpt.length) {
|
|
782
796
|
throw new ToolRequiresGptException_1.ToolRequiresGptException(requestedToolsRequiringGpt[0]);
|