donobu 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apis/SpecialFlowsApi.d.ts +7 -1
- package/dist/apis/SpecialFlowsApi.js +41 -29
- package/dist/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/apis/ToolsApi.d.ts +1 -1
- package/dist/apis/ToolsApi.js +1 -1
- package/dist/apis/ToolsApi.js.map +1 -1
- package/dist/assets/generated/parameter-schemas.json +4 -4
- package/dist/assets/generated/version +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.js +1 -1
- package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/clients/AnthropicGptClient.js +1 -1
- package/dist/clients/AnthropicGptClient.js.map +1 -1
- package/dist/clients/GoogleGptClient.js +3 -3
- package/dist/clients/GoogleGptClient.js.map +1 -1
- package/dist/clients/GptClient.d.ts +1 -1
- package/dist/clients/OpenAiGptClient.js +1 -1
- package/dist/clients/OpenAiGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.js +1 -1
- package/dist/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts +7 -1
- package/dist/esm/apis/SpecialFlowsApi.js +41 -29
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/esm/apis/ToolsApi.d.ts +1 -1
- package/dist/esm/apis/ToolsApi.js +1 -1
- package/dist/esm/apis/ToolsApi.js.map +1 -1
- package/dist/esm/assets/generated/parameter-schemas.json +4 -4
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +1 -1
- package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
- package/dist/esm/clients/AnthropicGptClient.js +1 -1
- package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
- package/dist/esm/clients/GoogleGptClient.js +3 -3
- package/dist/esm/clients/GoogleGptClient.js.map +1 -1
- package/dist/esm/clients/GptClient.d.ts +1 -1
- package/dist/esm/clients/OpenAiGptClient.js +1 -1
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.js +1 -1
- package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
- package/dist/esm/main.d.ts +6 -6
- package/dist/esm/main.js +50 -39
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/AdminApiController.js +12 -25
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts +8 -0
- package/dist/esm/managers/CodeGenerator.js +25 -9
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +4 -2
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +16 -7
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuMcpServer.d.ts +24 -0
- package/dist/esm/managers/DonobuMcpServer.js +146 -0
- package/dist/esm/managers/DonobuMcpServer.js.map +1 -0
- package/dist/esm/managers/DonobuStack.d.ts +19 -0
- package/dist/esm/managers/DonobuStack.js +29 -0
- package/dist/esm/managers/DonobuStack.js.map +1 -0
- package/dist/esm/managers/ToolManager.d.ts +1 -2
- package/dist/esm/managers/ToolManager.js +14 -14
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/BrowserFramework.d.ts +8 -15
- package/dist/esm/models/BrowserFramework.js +74 -96
- package/dist/esm/models/BrowserFramework.js.map +1 -1
- package/dist/esm/models/CustomTool.d.ts +1 -1
- package/dist/esm/persistence/DonobuSqliteDb.js +3 -2
- package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
- package/dist/esm/test.d.ts +2 -15
- package/dist/esm/test.js +37 -54
- package/dist/esm/test.js.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js +5 -5
- package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +9 -11
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/esm/tools/Tool.d.ts +2 -2
- package/dist/esm/tools/Tool.js +4 -4
- package/dist/esm/tools/Tool.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +0 -2
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/main.d.ts +6 -6
- package/dist/main.js +50 -39
- package/dist/main.js.map +1 -1
- package/dist/managers/AdminApiController.js +12 -25
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts +8 -0
- package/dist/managers/CodeGenerator.js +25 -9
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/DonobuFlow.js +4 -2
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +16 -7
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuMcpServer.d.ts +24 -0
- package/dist/managers/DonobuMcpServer.js +146 -0
- package/dist/managers/DonobuMcpServer.js.map +1 -0
- package/dist/managers/DonobuStack.d.ts +19 -0
- package/dist/managers/DonobuStack.js +29 -0
- package/dist/managers/DonobuStack.js.map +1 -0
- package/dist/managers/ToolManager.d.ts +1 -2
- package/dist/managers/ToolManager.js +14 -14
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/BrowserFramework.d.ts +8 -15
- package/dist/models/BrowserFramework.js +74 -96
- package/dist/models/BrowserFramework.js.map +1 -1
- package/dist/models/CustomTool.d.ts +1 -1
- package/dist/persistence/DonobuSqliteDb.js +3 -2
- package/dist/persistence/DonobuSqliteDb.js.map +1 -1
- package/dist/test.d.ts +2 -15
- package/dist/test.js +37 -54
- package/dist/test.js.map +1 -1
- package/dist/tools/CustomToolRunnerTool.js +5 -5
- package/dist/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +9 -11
- package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/tools/Tool.d.ts +2 -2
- package/dist/tools/Tool.js +4 -4
- package/dist/tools/Tool.js.map +1 -1
- package/dist/utils/PlaywrightUtils.js +0 -2
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
- package/dist/apis/GptResourcesApi.d.ts +0 -20
- package/dist/apis/GptResourcesApi.js +0 -53
- package/dist/apis/GptResourcesApi.js.map +0 -1
- package/dist/apis/KeysApi.d.ts +0 -25
- package/dist/apis/KeysApi.js +0 -64
- package/dist/apis/KeysApi.js.map +0 -1
- package/dist/assets/Donobu.entitlements.plist +0 -28
- package/dist/clients/GoogleGptClient2.d.ts +0 -18
- package/dist/clients/GoogleGptClient2.js +0 -237
- package/dist/clients/GoogleGptClient2.js.map +0 -1
- package/dist/donobu.fixtures.d.ts +0 -57
- package/dist/donobu.fixtures.js +0 -167
- package/dist/donobu.fixtures.js.map +0 -1
- package/dist/esm/apis/GptResourcesApi.d.ts +0 -20
- package/dist/esm/apis/GptResourcesApi.js +0 -53
- package/dist/esm/apis/GptResourcesApi.js.map +0 -1
- package/dist/esm/apis/KeysApi.d.ts +0 -25
- package/dist/esm/apis/KeysApi.js +0 -64
- package/dist/esm/apis/KeysApi.js.map +0 -1
- package/dist/esm/assets/Donobu.entitlements.plist +0 -28
- package/dist/esm/donobu.fixtures.d.ts +0 -57
- package/dist/esm/donobu.fixtures.js +0 -167
- package/dist/esm/donobu.fixtures.js.map +0 -1
- package/dist/esm/exceptions/GptResourceNotFoundException.d.ts +0 -8
- package/dist/esm/exceptions/GptResourceNotFoundException.js +0 -16
- package/dist/esm/exceptions/GptResourceNotFoundException.js.map +0 -1
- package/dist/esm/managers/FlowsPersistence.d.ts +0 -79
- package/dist/esm/managers/FlowsPersistence.js +0 -3
- package/dist/esm/managers/FlowsPersistence.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceAwsS3.d.ts +0 -48
- package/dist/esm/managers/FlowsPersistenceAwsS3.js +0 -284
- package/dist/esm/managers/FlowsPersistenceAwsS3.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceFactory.d.ts +0 -9
- package/dist/esm/managers/FlowsPersistenceFactory.js +0 -3
- package/dist/esm/managers/FlowsPersistenceFactory.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceFactoryImpl.d.ts +0 -57
- package/dist/esm/managers/FlowsPersistenceFactoryImpl.js +0 -119
- package/dist/esm/managers/FlowsPersistenceFactoryImpl.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceFactoryPreset.d.ts +0 -12
- package/dist/esm/managers/FlowsPersistenceFactoryPreset.js +0 -25
- package/dist/esm/managers/FlowsPersistenceFactoryPreset.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceFilesystem.d.ts +0 -33
- package/dist/esm/managers/FlowsPersistenceFilesystem.js +0 -180
- package/dist/esm/managers/FlowsPersistenceFilesystem.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.d.ts +0 -40
- package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.js +0 -209
- package/dist/esm/managers/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceSupabase.d.ts +0 -33
- package/dist/esm/managers/FlowsPersistenceSupabase.js +0 -152
- package/dist/esm/managers/FlowsPersistenceSupabase.js.map +0 -1
- package/dist/esm/managers/FlowsPersistenceVolatile.d.ts +0 -30
- package/dist/esm/managers/FlowsPersistenceVolatile.js +0 -103
- package/dist/esm/managers/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/esm/managers/GptPlatformApiKeysManager.d.ts +0 -36
- package/dist/esm/managers/GptPlatformApiKeysManager.js +0 -3
- package/dist/esm/managers/GptPlatformApiKeysManager.js.map +0 -1
- package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.d.ts +0 -29
- package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.js +0 -136
- package/dist/esm/managers/GptPlatformApiKeysManagerFilesystem.js.map +0 -1
- package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.d.ts +0 -35
- package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.js +0 -51
- package/dist/esm/managers/GptPlatformApiKeysManagerVolatile.js.map +0 -1
- package/dist/esm/managers/GptResourcesManager.d.ts +0 -39
- package/dist/esm/managers/GptResourcesManager.js +0 -130
- package/dist/esm/managers/GptResourcesManager.js.map +0 -1
- package/dist/esm/managers/SelectorGenerator.d.ts +0 -8
- package/dist/esm/managers/SelectorGenerator.js +0 -15
- package/dist/esm/managers/SelectorGenerator.js.map +0 -1
- package/dist/esm/models/ElementSelectorForReplay.d.ts +0 -14
- package/dist/esm/models/ElementSelectorForReplay.js +0 -3
- package/dist/esm/models/ElementSelectorForReplay.js.map +0 -1
- package/dist/esm/models/GptResource.d.ts +0 -33
- package/dist/esm/models/GptResource.js +0 -3
- package/dist/esm/models/GptResource.js.map +0 -1
- package/dist/esm/persistence/AgentsPersistenceFilesystem.d.ts +0 -15
- package/dist/esm/persistence/AgentsPersistenceFilesystem.js +0 -48
- package/dist/esm/persistence/AgentsPersistenceFilesystem.js.map +0 -1
- package/dist/esm/persistence/GptConfigsPersistenceFilesystem.d.ts +0 -16
- package/dist/esm/persistence/GptConfigsPersistenceFilesystem.js +0 -54
- package/dist/esm/persistence/GptConfigsPersistenceFilesystem.js.map +0 -1
- package/dist/esm/persistence/GptResourcesPersistence.d.ts +0 -11
- package/dist/esm/persistence/GptResourcesPersistence.js +0 -3
- package/dist/esm/persistence/GptResourcesPersistence.js.map +0 -1
- package/dist/esm/persistence/GptResourcesPersistenceFilesystem.d.ts +0 -20
- package/dist/esm/persistence/GptResourcesPersistenceFilesystem.js +0 -79
- package/dist/esm/persistence/GptResourcesPersistenceFilesystem.js.map +0 -1
- package/dist/esm/persistence/GptResourcesPersistenceVolatile.d.ts +0 -14
- package/dist/esm/persistence/GptResourcesPersistenceVolatile.js +0 -32
- package/dist/esm/persistence/GptResourcesPersistenceVolatile.js.map +0 -1
- package/dist/esm/testfixtures.d.ts +0 -66
- package/dist/esm/testfixtures.js +0 -288
- package/dist/esm/testfixtures.js.map +0 -1
- package/dist/esm/tools/AssertTextVisibility.d.ts +0 -19
- package/dist/esm/tools/AssertTextVisibility.js +0 -32
- package/dist/esm/tools/AssertTextVisibility.js.map +0 -1
- package/dist/esm/tools/ClickButtonTool.d.ts +0 -14
- package/dist/esm/tools/ClickButtonTool.js +0 -36
- package/dist/esm/tools/ClickButtonTool.js.map +0 -1
- package/dist/esm/tools/NavigateToWebpageTool.d.ts +0 -20
- package/dist/esm/tools/NavigateToWebpageTool.js +0 -40
- package/dist/esm/tools/NavigateToWebpageTool.js.map +0 -1
- package/dist/esm/utils/DirectoryUtils.d.ts +0 -11
- package/dist/esm/utils/DirectoryUtils.js +0 -37
- package/dist/esm/utils/DirectoryUtils.js.map +0 -1
- package/dist/exceptions/GptResourceNotFoundException.d.ts +0 -8
- package/dist/exceptions/GptResourceNotFoundException.js +0 -16
- package/dist/exceptions/GptResourceNotFoundException.js.map +0 -1
- package/dist/managers/FlowsPersistence.d.ts +0 -79
- package/dist/managers/FlowsPersistence.js +0 -3
- package/dist/managers/FlowsPersistence.js.map +0 -1
- package/dist/managers/FlowsPersistenceAwsS3.d.ts +0 -48
- package/dist/managers/FlowsPersistenceAwsS3.js +0 -284
- package/dist/managers/FlowsPersistenceAwsS3.js.map +0 -1
- package/dist/managers/FlowsPersistenceFactory.d.ts +0 -9
- package/dist/managers/FlowsPersistenceFactory.js +0 -3
- package/dist/managers/FlowsPersistenceFactory.js.map +0 -1
- package/dist/managers/FlowsPersistenceFactoryImpl.d.ts +0 -57
- package/dist/managers/FlowsPersistenceFactoryImpl.js +0 -119
- package/dist/managers/FlowsPersistenceFactoryImpl.js.map +0 -1
- package/dist/managers/FlowsPersistenceFactoryPreset.d.ts +0 -12
- package/dist/managers/FlowsPersistenceFactoryPreset.js +0 -25
- package/dist/managers/FlowsPersistenceFactoryPreset.js.map +0 -1
- package/dist/managers/FlowsPersistenceFilesystem.d.ts +0 -33
- package/dist/managers/FlowsPersistenceFilesystem.js +0 -180
- package/dist/managers/FlowsPersistenceFilesystem.js.map +0 -1
- package/dist/managers/FlowsPersistenceGoogleCloudStorage.d.ts +0 -40
- package/dist/managers/FlowsPersistenceGoogleCloudStorage.js +0 -209
- package/dist/managers/FlowsPersistenceGoogleCloudStorage.js.map +0 -1
- package/dist/managers/FlowsPersistenceSupabase.d.ts +0 -33
- package/dist/managers/FlowsPersistenceSupabase.js +0 -152
- package/dist/managers/FlowsPersistenceSupabase.js.map +0 -1
- package/dist/managers/FlowsPersistenceVolatile.d.ts +0 -30
- package/dist/managers/FlowsPersistenceVolatile.js +0 -103
- package/dist/managers/FlowsPersistenceVolatile.js.map +0 -1
- package/dist/managers/GptPlatformApiKeysManager.d.ts +0 -36
- package/dist/managers/GptPlatformApiKeysManager.js +0 -3
- package/dist/managers/GptPlatformApiKeysManager.js.map +0 -1
- package/dist/managers/GptPlatformApiKeysManagerFilesystem.d.ts +0 -29
- package/dist/managers/GptPlatformApiKeysManagerFilesystem.js +0 -136
- package/dist/managers/GptPlatformApiKeysManagerFilesystem.js.map +0 -1
- package/dist/managers/GptPlatformApiKeysManagerVolatile.d.ts +0 -35
- package/dist/managers/GptPlatformApiKeysManagerVolatile.js +0 -51
- package/dist/managers/GptPlatformApiKeysManagerVolatile.js.map +0 -1
- package/dist/managers/GptResourcesManager.d.ts +0 -44
- package/dist/managers/GptResourcesManager.js +0 -180
- package/dist/managers/GptResourcesManager.js.map +0 -1
- package/dist/managers/SelectorGenerator.d.ts +0 -8
- package/dist/managers/SelectorGenerator.js +0 -15
- package/dist/managers/SelectorGenerator.js.map +0 -1
- package/dist/models/BaseToolParam.d.ts +0 -9
- package/dist/models/BaseToolParam.js +0 -3
- package/dist/models/BaseToolParam.js.map +0 -1
- package/dist/models/BaseToolParameters.d.ts +0 -9
- package/dist/models/BaseToolParameters.js +0 -3
- package/dist/models/BaseToolParameters.js.map +0 -1
- package/dist/models/DonobuAnnotated.d.ts +0 -23
- package/dist/models/DonobuAnnotated.js +0 -12
- package/dist/models/DonobuAnnotated.js.map +0 -1
- package/dist/models/ElementSelectorForReplay.d.ts +0 -14
- package/dist/models/ElementSelectorForReplay.js +0 -3
- package/dist/models/ElementSelectorForReplay.js.map +0 -1
- package/dist/models/GptResource.d.ts +0 -33
- package/dist/models/GptResource.js +0 -3
- package/dist/models/GptResource.js.map +0 -1
- package/dist/persistence/AgentsPersistenceFilesystem.d.ts +0 -15
- package/dist/persistence/AgentsPersistenceFilesystem.js +0 -48
- package/dist/persistence/AgentsPersistenceFilesystem.js.map +0 -1
- package/dist/persistence/GptConfigsPersistenceFilesystem.d.ts +0 -16
- package/dist/persistence/GptConfigsPersistenceFilesystem.js +0 -54
- package/dist/persistence/GptConfigsPersistenceFilesystem.js.map +0 -1
- package/dist/persistence/GptResourcesPersistence.d.ts +0 -11
- package/dist/persistence/GptResourcesPersistence.js +0 -3
- package/dist/persistence/GptResourcesPersistence.js.map +0 -1
- package/dist/persistence/GptResourcesPersistenceFilesystem.d.ts +0 -20
- package/dist/persistence/GptResourcesPersistenceFilesystem.js +0 -79
- package/dist/persistence/GptResourcesPersistenceFilesystem.js.map +0 -1
- package/dist/persistence/GptResourcesPersistenceVolatile.d.ts +0 -14
- package/dist/persistence/GptResourcesPersistenceVolatile.js +0 -32
- package/dist/persistence/GptResourcesPersistenceVolatile.js.map +0 -1
- package/dist/testfixtures.d.ts +0 -66
- package/dist/testfixtures.js +0 -288
- package/dist/testfixtures.js.map +0 -1
- package/dist/tools/AssertTextVisibility.d.ts +0 -19
- package/dist/tools/AssertTextVisibility.js +0 -32
- package/dist/tools/AssertTextVisibility.js.map +0 -1
- package/dist/tools/ClickButtonTool.d.ts +0 -14
- package/dist/tools/ClickButtonTool.js +0 -36
- package/dist/tools/ClickButtonTool.js.map +0 -1
- package/dist/tools/NavigateToWebpage.d.ts +0 -19
- package/dist/tools/NavigateToWebpage.js +0 -25
- package/dist/tools/NavigateToWebpage.js.map +0 -1
- package/dist/tools/NavigateToWebpageTool.d.ts +0 -20
- package/dist/tools/NavigateToWebpageTool.js +0 -40
- package/dist/tools/NavigateToWebpageTool.js.map +0 -1
- package/dist/utils/DirectoryUtils.d.ts +0 -11
- package/dist/utils/DirectoryUtils.js +0 -37
- package/dist/utils/DirectoryUtils.js.map +0 -1
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClickButtonTool = void 0;
|
|
4
|
-
const ReplayableInteraction_1 = require("./ReplayableInteraction");
|
|
5
|
-
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
6
|
-
class ClickButtonTool extends ReplayableInteraction_1.ReplayableInteraction {
|
|
7
|
-
static NAME = 'clickButton';
|
|
8
|
-
constructor() {
|
|
9
|
-
super(ClickButtonTool.NAME, 'Click an element on a webpage.', 'SelectorBasedClickButtonToolParameters', 'AnnotationBasedClickButtonToolParameters');
|
|
10
|
-
}
|
|
11
|
-
async invoke(context, _parameters, element) {
|
|
12
|
-
const page = context.page;
|
|
13
|
-
const box = await element.boundingBox();
|
|
14
|
-
if (!box) {
|
|
15
|
-
throw new Error(`Failed to retrieve element bounding box for '${element}'; element may be offscreen or detached.`);
|
|
16
|
-
}
|
|
17
|
-
try {
|
|
18
|
-
await element.click({
|
|
19
|
-
delay: MiscUtils_1.MiscUtils.generateHumanLikeClickDurationInMs(),
|
|
20
|
-
timeout: 1000,
|
|
21
|
-
});
|
|
22
|
-
return 'Clicked the element.';
|
|
23
|
-
}
|
|
24
|
-
catch (_error) {
|
|
25
|
-
const x = box.x + box.width / 2;
|
|
26
|
-
const y = box.y + box.height / 2;
|
|
27
|
-
await page.mouse.move(x, y);
|
|
28
|
-
await page.mouse.click(x, y, {
|
|
29
|
-
delay: MiscUtils_1.MiscUtils.generateHumanLikeClickDurationInMs(),
|
|
30
|
-
});
|
|
31
|
-
return 'Clicked on the element.';
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.ClickButtonTool = ClickButtonTool;
|
|
36
|
-
//# sourceMappingURL=ClickButtonTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClickButtonTool.js","sourceRoot":"","sources":["../../../src/tools/ClickButtonTool.ts"],"names":[],"mappings":";;;AAEA,mEAIiC;AACjC,kDAA+C;AAU/C,MAAa,eAAgB,SAAQ,6CAIpC;IACQ,MAAM,CAAU,IAAI,GAAG,aAAa,CAAC;IAE5C;QACE,KAAK,CACH,eAAe,CAAC,IAAI,EACpB,gCAAgC,EAChC,wCAAwC,EACxC,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAwB,EACxB,WAA0C,EAC1C,OAAgB;QAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;QAExC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,gDAAgD,OAAO,0CAA0C,CAClG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,KAAK,CAAC;gBAClB,KAAK,EAAE,qBAAS,CAAC,kCAAkC,EAAE;gBACrD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,OAAO,sBAAsB,CAAC;QAChC,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YAChC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;gBAC3B,KAAK,EAAE,qBAAS,CAAC,kCAAkC,EAAE;aACtD,CAAC,CAAC;YACH,OAAO,yBAAyB,CAAC;QACnC,CAAC;IACH,CAAC;;AA7CH,0CA8CC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Tool } from './Tool';
|
|
2
|
-
import { ToolCallContext } from '../models/ToolCallContext';
|
|
3
|
-
import { ToolCallResult } from '../models/ToolCallResult';
|
|
4
|
-
import { BaseToolGptParameters } from '../models/BaseToolGptParameters';
|
|
5
|
-
export interface NavigateToWebpageToolCoreParameters {
|
|
6
|
-
/**
|
|
7
|
-
* The URL to navigate to. Must use HTTP or file protocol (example is https://google.com).
|
|
8
|
-
*/
|
|
9
|
-
url: string;
|
|
10
|
-
}
|
|
11
|
-
export interface NavigateToWebpageToolGptParameters extends BaseToolGptParameters, NavigateToWebpageToolCoreParameters {
|
|
12
|
-
}
|
|
13
|
-
/** Directly navigate to the specified URL. */
|
|
14
|
-
export declare class NavigateToWebpageTool extends Tool<NavigateToWebpageToolCoreParameters, NavigateToWebpageToolGptParameters> {
|
|
15
|
-
static readonly NAME = "navigateToWebpage";
|
|
16
|
-
private static readonly VALID_PROTOCOLS;
|
|
17
|
-
constructor();
|
|
18
|
-
call(context: ToolCallContext, parameters: NavigateToWebpageToolCoreParameters): Promise<ToolCallResult>;
|
|
19
|
-
callFromGpt(context: ToolCallContext, parameters: NavigateToWebpageToolGptParameters): Promise<ToolCallResult>;
|
|
20
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NavigateToWebpageTool = void 0;
|
|
4
|
-
const Tool_1 = require("./Tool");
|
|
5
|
-
const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
|
|
6
|
-
/** Directly navigate to the specified URL. */
|
|
7
|
-
class NavigateToWebpageTool extends Tool_1.Tool {
|
|
8
|
-
static NAME = 'navigateToWebpage';
|
|
9
|
-
static VALID_PROTOCOLS = ['https://', 'http://', 'file://'];
|
|
10
|
-
constructor() {
|
|
11
|
-
super(NavigateToWebpageTool.NAME, 'Navigate to the specified URL.', 'NavigateToWebpageToolCoreParameters', 'NavigateToWebpageToolGptParameters');
|
|
12
|
-
}
|
|
13
|
-
async call(context, parameters) {
|
|
14
|
-
const page = context.page;
|
|
15
|
-
const url = parameters.url.trim();
|
|
16
|
-
if (NavigateToWebpageTool.VALID_PROTOCOLS.some((protocol) => url.startsWith(protocol))) {
|
|
17
|
-
await page.goto(url, {
|
|
18
|
-
waitUntil: 'domcontentloaded',
|
|
19
|
-
});
|
|
20
|
-
await PlaywrightUtils_1.PlaywrightUtils.waitForPageStability(page);
|
|
21
|
-
return {
|
|
22
|
-
isSuccessful: true,
|
|
23
|
-
forLlm: `Successfully navigated to ${url}`,
|
|
24
|
-
metadata: null,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
return {
|
|
29
|
-
isSuccessful: false,
|
|
30
|
-
forLlm: `Will not navigate a URL not using the following prefixes: ${NavigateToWebpageTool.VALID_PROTOCOLS}`,
|
|
31
|
-
metadata: null,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async callFromGpt(context, parameters) {
|
|
36
|
-
return this.call(context, parameters);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.NavigateToWebpageTool = NavigateToWebpageTool;
|
|
40
|
-
//# sourceMappingURL=NavigateToWebpageTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NavigateToWebpageTool.js","sourceRoot":"","sources":["../../../src/tools/NavigateToWebpageTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAI9B,8DAA2D;AAY3D,8CAA8C;AAC9C,MAAa,qBAAsB,SAAQ,WAG1C;IACQ,MAAM,CAAU,IAAI,GAAG,mBAAmB,CAAC;IAE1C,MAAM,CAAU,eAAe,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAE7E;QACE,KAAK,CACH,qBAAqB,CAAC,IAAI,EAC1B,gCAAgC,EAChC,qCAAqC,EACrC,oCAAoC,CACrC,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAA+C;QAE/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAElC,IACE,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtD,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CACzB,EACD,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;YACH,MAAM,iCAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO;gBACL,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,6BAA6B,GAAG,EAAE;gBAC1C,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,6DAA6D,qBAAqB,CAAC,eAAe,EAAE;gBAC5G,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,UAA8C;QAE9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;;AApDH,sDAqDC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This is the base working directory for the entire application. Care is made to ensure we do not
|
|
3
|
-
* access data outside of this directory to maintain proper permissions across platforms.
|
|
4
|
-
* Returns platform-specific application data directories:
|
|
5
|
-
* - macOS: ~/Library/Application Support/Donobu
|
|
6
|
-
* - Windows: %APPDATA%/Donobu
|
|
7
|
-
* - Linux: ~/.config/Donobu
|
|
8
|
-
*
|
|
9
|
-
* If the BASE_WORKING_DIR environment variable is set, its value is used instead.
|
|
10
|
-
*/
|
|
11
|
-
export declare function baseWorkingDirectory(): string;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.baseWorkingDirectory = baseWorkingDirectory;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const os_1 = require("os");
|
|
6
|
-
/**
|
|
7
|
-
* This is the base working directory for the entire application. Care is made to ensure we do not
|
|
8
|
-
* access data outside of this directory to maintain proper permissions across platforms.
|
|
9
|
-
* Returns platform-specific application data directories:
|
|
10
|
-
* - macOS: ~/Library/Application Support/Donobu
|
|
11
|
-
* - Windows: %APPDATA%/Donobu
|
|
12
|
-
* - Linux: ~/.config/Donobu
|
|
13
|
-
*
|
|
14
|
-
* If the BASE_WORKING_DIR environment variable is set, its value is used instead.
|
|
15
|
-
*/
|
|
16
|
-
function baseWorkingDirectory() {
|
|
17
|
-
const persistenceDirOverride = process.env['BASE_WORKING_DIR'];
|
|
18
|
-
if (persistenceDirOverride) {
|
|
19
|
-
return persistenceDirOverride;
|
|
20
|
-
}
|
|
21
|
-
const appName = 'Donobu';
|
|
22
|
-
switch ((0, os_1.platform)()) {
|
|
23
|
-
case 'win32':
|
|
24
|
-
// Windows - typically use %APPDATA% (Roaming).
|
|
25
|
-
return (0, path_1.join)(process.env.APPDATA || (0, path_1.join)((0, os_1.homedir)(), 'AppData', 'Roaming'), appName);
|
|
26
|
-
case 'darwin':
|
|
27
|
-
// macOS
|
|
28
|
-
return (0, path_1.join)((0, os_1.homedir)(), 'Library', 'Application Support', appName);
|
|
29
|
-
case 'linux':
|
|
30
|
-
// Linux - following XDG Base Directory Specification.
|
|
31
|
-
return (0, path_1.join)(process.env.XDG_CONFIG_HOME || (0, path_1.join)((0, os_1.homedir)(), '.config'), appName);
|
|
32
|
-
default:
|
|
33
|
-
// Default fallback to home directory for other platforms.
|
|
34
|
-
return (0, path_1.join)((0, os_1.homedir)(), `.${appName}`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=DirectoryUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DirectoryUtils.js","sourceRoot":"","sources":["../../../src/utils/DirectoryUtils.ts"],"names":[],"mappings":";;AAaA,oDAgCC;AA7CD,+BAA4B;AAC5B,2BAAuC;AAEvC;;;;;;;;;GASG;AACH,SAAgB,oBAAoB;IAClC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAE/D,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC;IAEzB,QAAQ,IAAA,aAAQ,GAAE,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,+CAA+C;YAC/C,OAAO,IAAA,WAAI,EACT,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,SAAS,CAAC,EAC5D,OAAO,CACR,CAAC;QAEJ,KAAK,QAAQ;YACX,QAAQ;YACR,OAAO,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAEpE,KAAK,OAAO;YACV,sDAAsD;YACtD,OAAO,IAAA,WAAI,EACT,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,SAAS,CAAC,EACzD,OAAO,CACR,CAAC;QAEJ;YACE,0DAA0D;YAC1D,OAAO,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { DonobuException } from './DonobuException';
|
|
2
|
-
/**
|
|
3
|
-
* Thrown when attempting resolve a GPT resource that does not exist.
|
|
4
|
-
*/
|
|
5
|
-
export declare class GptResourceNotFoundException extends DonobuException {
|
|
6
|
-
readonly gptResourceName: string | undefined | null;
|
|
7
|
-
constructor(gptResourceName: string | undefined | null);
|
|
8
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GptResourceNotFoundException = void 0;
|
|
4
|
-
const DonobuException_1 = require("./DonobuException");
|
|
5
|
-
/**
|
|
6
|
-
* Thrown when attempting resolve a GPT resource that does not exist.
|
|
7
|
-
*/
|
|
8
|
-
class GptResourceNotFoundException extends DonobuException_1.DonobuException {
|
|
9
|
-
gptResourceName;
|
|
10
|
-
constructor(gptResourceName) {
|
|
11
|
-
super(`The GPT resource '${gptResourceName}' was not found!'`, undefined, 404);
|
|
12
|
-
this.gptResourceName = gptResourceName;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.GptResourceNotFoundException = GptResourceNotFoundException;
|
|
16
|
-
//# sourceMappingURL=GptResourceNotFoundException.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GptResourceNotFoundException.js","sourceRoot":"","sources":["../../src/exceptions/GptResourceNotFoundException.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAEpD;;GAEG;AACH,MAAa,4BAA6B,SAAQ,iCAAe;IACnC;IAA5B,YAA4B,eAA0C;QACpE,KAAK,CACH,qBAAqB,eAAe,mBAAmB,EACvD,SAAS,EACT,GAAG,CACJ,CAAC;QALwB,oBAAe,GAAf,eAAe,CAA2B;IAMtE,CAAC;CACF;AARD,oEAQC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { BrowserStorageState } from '../models/BrowserState';
|
|
2
|
-
import { FlowMetadata } from '../models/FlowMetadata';
|
|
3
|
-
import { ToolCall } from '../models/ToolCall';
|
|
4
|
-
import { VideoSegment } from '../models/VideoSegment';
|
|
5
|
-
/**
|
|
6
|
-
* Interface for persisting data relating to DonobuFlow runs.
|
|
7
|
-
*/
|
|
8
|
-
export interface FlowsPersistence {
|
|
9
|
-
/**
|
|
10
|
-
* Save the given FlowMetadata for the associated flow.
|
|
11
|
-
*/
|
|
12
|
-
saveMetadata(flowMetadata: FlowMetadata): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Load metadata for a specific flow.
|
|
15
|
-
* @throws FlowNotFoundException if the flow is not found
|
|
16
|
-
*/
|
|
17
|
-
getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
|
|
18
|
-
/**
|
|
19
|
-
* Load metadata by a given flow name.
|
|
20
|
-
*/
|
|
21
|
-
getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
|
|
22
|
-
/**
|
|
23
|
-
* Save a PNG screenshot for a specific flow.
|
|
24
|
-
* @returns The identifier for the saved screenshot
|
|
25
|
-
*/
|
|
26
|
-
savePngScreenShot(flowId: string, bytes: Buffer): Promise<string>;
|
|
27
|
-
/**
|
|
28
|
-
* Save a tool call for a specific flow.
|
|
29
|
-
*/
|
|
30
|
-
saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Load all tool calls for a specific flow.
|
|
33
|
-
* @throws FlowNotFoundException if the flow is not found
|
|
34
|
-
*/
|
|
35
|
-
getToolCalls(flowId: string): Promise<ToolCall[]>;
|
|
36
|
-
/**
|
|
37
|
-
* Load all flows.
|
|
38
|
-
*/
|
|
39
|
-
getFlows(): Promise<FlowMetadata[]>;
|
|
40
|
-
/**
|
|
41
|
-
* Set video data for a specific flow.
|
|
42
|
-
*/
|
|
43
|
-
setVideo(flowId: string, bytes: Buffer): Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Get a video segment for a specific flow.
|
|
46
|
-
* @throws FlowNotFoundException if the flow is not found
|
|
47
|
-
*/
|
|
48
|
-
getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
|
|
49
|
-
/**
|
|
50
|
-
* Get a file associated with a specific flow.
|
|
51
|
-
*
|
|
52
|
-
* @throws FlowNotFoundException if the flow is not found.
|
|
53
|
-
*/
|
|
54
|
-
getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
|
|
55
|
-
/**
|
|
56
|
-
* Set a file for a specific flow.
|
|
57
|
-
*/
|
|
58
|
-
setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
* Sets the given browser state for a specific flow.
|
|
61
|
-
*
|
|
62
|
-
* WARNING: This will NOT override the runtime browser state for a flow that
|
|
63
|
-
* is currently running. This is only for persisting the browser state for a
|
|
64
|
-
* flow that has completed so that it can be used by other flows in the
|
|
65
|
-
* future.
|
|
66
|
-
*/
|
|
67
|
-
setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Get the browser state for a specific flow. Note that not all flows will
|
|
70
|
-
* have an associated persisted browser state.
|
|
71
|
-
*
|
|
72
|
-
* @throws FlowNotFoundException if the flow is not found.
|
|
73
|
-
*/
|
|
74
|
-
getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
|
|
75
|
-
/**
|
|
76
|
-
* Delete a specific flow and all associated data.
|
|
77
|
-
*/
|
|
78
|
-
deleteFlow(flowId: string): Promise<void>;
|
|
79
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistence.js","sourceRoot":"","sources":["../../src/managers/FlowsPersistence.ts"],"names":[],"mappings":""}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { FlowsPersistence } from './FlowsPersistence';
|
|
2
|
-
import { FlowMetadata } from '../models/FlowMetadata';
|
|
3
|
-
import { ToolCall } from '../models/ToolCall';
|
|
4
|
-
import { VideoSegment } from '../models/VideoSegment';
|
|
5
|
-
import { BrowserStorageState } from '../models/BrowserState';
|
|
6
|
-
/**
|
|
7
|
-
* A persistence implementation that uses AWS S3.
|
|
8
|
-
* Ensure AWS credentials are properly configured in your environment,
|
|
9
|
-
* or provide them directly in the constructor.
|
|
10
|
-
*/
|
|
11
|
-
export declare class FlowsPersistenceAwsS3 implements FlowsPersistence {
|
|
12
|
-
private static readonly METADATA_FILENAME;
|
|
13
|
-
private static readonly BROWSER_STATE_FILENAME;
|
|
14
|
-
private static readonly SCREENSHOT_FILENAME_SUFFIX;
|
|
15
|
-
private static readonly TOOL_CALL_FILENAME_SUFFIX;
|
|
16
|
-
private static readonly VIDEO_FILENAME;
|
|
17
|
-
private readonly s3Client;
|
|
18
|
-
private readonly bucketName;
|
|
19
|
-
/**
|
|
20
|
-
* Creates a new instance of the AWS S3 persistence layer.
|
|
21
|
-
*
|
|
22
|
-
* @param bucketName The name of the S3 bucket to use for storage
|
|
23
|
-
* @param region AWS region (defaults to 'us-east-1')
|
|
24
|
-
* @param credentials Optional AWS credentials (if not provided, will use environment variables)
|
|
25
|
-
*/
|
|
26
|
-
constructor(bucketName: string, region: string, credentials?: {
|
|
27
|
-
accessKeyId: string;
|
|
28
|
-
secretAccessKey: string;
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Utility method to stream S3 object data to a Buffer
|
|
32
|
-
*/
|
|
33
|
-
private streamToBuffer;
|
|
34
|
-
saveMetadata(flowMetadata: FlowMetadata): Promise<void>;
|
|
35
|
-
getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
|
|
36
|
-
getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
|
|
37
|
-
savePngScreenShot(flowId: string, bytes: Buffer): Promise<string>;
|
|
38
|
-
saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
|
|
39
|
-
getToolCalls(flowId: string): Promise<ToolCall[]>;
|
|
40
|
-
getFlows(): Promise<FlowMetadata[]>;
|
|
41
|
-
setVideo(flowId: string, bytes: Buffer): Promise<void>;
|
|
42
|
-
getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
|
|
43
|
-
getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
|
|
44
|
-
setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
|
|
45
|
-
setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
|
|
46
|
-
getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
|
|
47
|
-
deleteFlow(flowId: string): Promise<void>;
|
|
48
|
-
}
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FlowsPersistenceAwsS3 = void 0;
|
|
4
|
-
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
-
const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
|
|
6
|
-
const Logger_1 = require("../utils/Logger");
|
|
7
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
8
|
-
/**
|
|
9
|
-
* A persistence implementation that uses AWS S3.
|
|
10
|
-
* Ensure AWS credentials are properly configured in your environment,
|
|
11
|
-
* or provide them directly in the constructor.
|
|
12
|
-
*/
|
|
13
|
-
class FlowsPersistenceAwsS3 {
|
|
14
|
-
static METADATA_FILENAME = 'metadata.json';
|
|
15
|
-
static BROWSER_STATE_FILENAME = 'browserstate.json';
|
|
16
|
-
static SCREENSHOT_FILENAME_SUFFIX = '.screenshot.png';
|
|
17
|
-
static TOOL_CALL_FILENAME_SUFFIX = '.tool-call.json';
|
|
18
|
-
static VIDEO_FILENAME = 'video.webm';
|
|
19
|
-
s3Client;
|
|
20
|
-
bucketName;
|
|
21
|
-
/**
|
|
22
|
-
* Creates a new instance of the AWS S3 persistence layer.
|
|
23
|
-
*
|
|
24
|
-
* @param bucketName The name of the S3 bucket to use for storage
|
|
25
|
-
* @param region AWS region (defaults to 'us-east-1')
|
|
26
|
-
* @param credentials Optional AWS credentials (if not provided, will use environment variables)
|
|
27
|
-
*/
|
|
28
|
-
constructor(bucketName, region, credentials) {
|
|
29
|
-
this.bucketName = bucketName;
|
|
30
|
-
this.s3Client = new client_s3_1.S3Client({
|
|
31
|
-
region,
|
|
32
|
-
credentials,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Utility method to stream S3 object data to a Buffer
|
|
37
|
-
*/
|
|
38
|
-
async streamToBuffer(stream) {
|
|
39
|
-
return new Promise((resolve, reject) => {
|
|
40
|
-
const chunks = [];
|
|
41
|
-
stream.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
|
|
42
|
-
stream.on('error', reject);
|
|
43
|
-
stream.on('end', () => resolve(Buffer.concat(chunks)));
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
async saveMetadata(flowMetadata) {
|
|
47
|
-
const objectKey = `${flowMetadata.id}/${FlowsPersistenceAwsS3.METADATA_FILENAME}`;
|
|
48
|
-
await this.s3Client.send(new client_s3_1.PutObjectCommand({
|
|
49
|
-
Bucket: this.bucketName,
|
|
50
|
-
Key: objectKey,
|
|
51
|
-
Body: JSON.stringify(flowMetadata, null, 2),
|
|
52
|
-
ContentType: 'application/json',
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
async getMetadataByFlowId(flowId) {
|
|
56
|
-
const objectKey = `${flowId}/${FlowsPersistenceAwsS3.METADATA_FILENAME}`;
|
|
57
|
-
try {
|
|
58
|
-
const response = await this.s3Client.send(new client_s3_1.GetObjectCommand({
|
|
59
|
-
Bucket: this.bucketName,
|
|
60
|
-
Key: objectKey,
|
|
61
|
-
}));
|
|
62
|
-
if (!response.Body) {
|
|
63
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
64
|
-
}
|
|
65
|
-
const data = await this.streamToBuffer(response.Body);
|
|
66
|
-
return JSON.parse(data.toString('utf-8'));
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
Logger_1.Logger.appLogger.error(`Failed to get metadata for flow ${flowId}`, error);
|
|
70
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
async getMetadataByFlowName(flowName) {
|
|
74
|
-
const flows = (await this.getFlows()).filter((flow) => flow.name === flowName);
|
|
75
|
-
if (flows.length > 0) {
|
|
76
|
-
return flows[0];
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forName(flowName);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
async savePngScreenShot(flowId, bytes) {
|
|
83
|
-
const filename = `${new Date().toISOString()}${FlowsPersistenceAwsS3.SCREENSHOT_FILENAME_SUFFIX}`;
|
|
84
|
-
const objectKey = `${flowId}/${filename}`;
|
|
85
|
-
await this.s3Client.send(new client_s3_1.PutObjectCommand({
|
|
86
|
-
Bucket: this.bucketName,
|
|
87
|
-
Key: objectKey,
|
|
88
|
-
Body: bytes,
|
|
89
|
-
ContentType: 'image/png',
|
|
90
|
-
}));
|
|
91
|
-
return filename;
|
|
92
|
-
}
|
|
93
|
-
async saveToolCall(flowId, toolCall) {
|
|
94
|
-
const filename = `${toolCall.startedAt}${FlowsPersistenceAwsS3.TOOL_CALL_FILENAME_SUFFIX}`;
|
|
95
|
-
const objectKey = `${flowId}/${filename}`;
|
|
96
|
-
await this.s3Client.send(new client_s3_1.PutObjectCommand({
|
|
97
|
-
Bucket: this.bucketName,
|
|
98
|
-
Key: objectKey,
|
|
99
|
-
Body: JSON.stringify(toolCall, null, 2),
|
|
100
|
-
ContentType: 'application/json',
|
|
101
|
-
}));
|
|
102
|
-
}
|
|
103
|
-
async getToolCalls(flowId) {
|
|
104
|
-
const prefix = `${flowId}/`;
|
|
105
|
-
try {
|
|
106
|
-
const response = await this.s3Client.send(new client_s3_1.ListObjectsV2Command({
|
|
107
|
-
Bucket: this.bucketName,
|
|
108
|
-
Prefix: prefix,
|
|
109
|
-
}));
|
|
110
|
-
if (!response.Contents || response.Contents.length === 0) {
|
|
111
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
112
|
-
}
|
|
113
|
-
const toolCallFiles = response.Contents.filter((item) => item.Key &&
|
|
114
|
-
item.Key.endsWith(FlowsPersistenceAwsS3.TOOL_CALL_FILENAME_SUFFIX));
|
|
115
|
-
if (toolCallFiles.length === 0) {
|
|
116
|
-
return [];
|
|
117
|
-
}
|
|
118
|
-
const toolCalls = await Promise.all(toolCallFiles.map(async (file) => {
|
|
119
|
-
const response = await this.s3Client.send(new client_s3_1.GetObjectCommand({
|
|
120
|
-
Bucket: this.bucketName,
|
|
121
|
-
Key: file.Key,
|
|
122
|
-
}));
|
|
123
|
-
if (!response.Body) {
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
const data = await this.streamToBuffer(response.Body);
|
|
127
|
-
return JSON.parse(data.toString('utf-8'));
|
|
128
|
-
}));
|
|
129
|
-
return toolCalls
|
|
130
|
-
.filter((toolCall) => toolCall !== null)
|
|
131
|
-
.sort((a, b) => a.startedAt.localeCompare(b.startedAt));
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
Logger_1.Logger.appLogger.error(`Failed to get tool calls for flow ${flowId}`, error);
|
|
135
|
-
throw FlowNotFoundException_1.FlowNotFoundException.forId(flowId);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
async getFlows() {
|
|
139
|
-
try {
|
|
140
|
-
const response = await this.s3Client.send(new client_s3_1.ListObjectsV2Command({
|
|
141
|
-
Bucket: this.bucketName,
|
|
142
|
-
}));
|
|
143
|
-
if (!response.Contents) {
|
|
144
|
-
return [];
|
|
145
|
-
}
|
|
146
|
-
const metadataFiles = response.Contents.filter((item) => item.Key &&
|
|
147
|
-
item.Key.endsWith(`/${FlowsPersistenceAwsS3.METADATA_FILENAME}`));
|
|
148
|
-
const flowIds = metadataFiles.map((file) => {
|
|
149
|
-
const key = file.Key;
|
|
150
|
-
return key.substring(0, key.indexOf('/'));
|
|
151
|
-
});
|
|
152
|
-
const flows = [];
|
|
153
|
-
for (const flowId of flowIds) {
|
|
154
|
-
try {
|
|
155
|
-
flows.push(await this.getMetadataByFlowId(flowId));
|
|
156
|
-
}
|
|
157
|
-
catch (e) {
|
|
158
|
-
Logger_1.Logger.appLogger.warn(`Flow not found: ${flowId}`, e);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return flows;
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
Logger_1.Logger.appLogger.error('Failed to list flows', error);
|
|
165
|
-
return [];
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
async setVideo(flowId, bytes) {
|
|
169
|
-
const objectKey = `${flowId}/${FlowsPersistenceAwsS3.VIDEO_FILENAME}`;
|
|
170
|
-
await this.s3Client.send(new client_s3_1.PutObjectCommand({
|
|
171
|
-
Bucket: this.bucketName,
|
|
172
|
-
Key: objectKey,
|
|
173
|
-
Body: bytes,
|
|
174
|
-
ContentType: 'video/webm',
|
|
175
|
-
}));
|
|
176
|
-
}
|
|
177
|
-
async getVideoSegment(flowId, startOffset, length) {
|
|
178
|
-
const objectKey = `${flowId}/${FlowsPersistenceAwsS3.VIDEO_FILENAME}`;
|
|
179
|
-
try {
|
|
180
|
-
// First, get the total size of the video file
|
|
181
|
-
const headResponse = await this.s3Client.send(new client_s3_1.HeadObjectCommand({
|
|
182
|
-
Bucket: this.bucketName,
|
|
183
|
-
Key: objectKey,
|
|
184
|
-
}));
|
|
185
|
-
const totalLength = headResponse.ContentLength || 0;
|
|
186
|
-
const adjustedLength = Math.min(length, totalLength - startOffset);
|
|
187
|
-
if (adjustedLength <= 0) {
|
|
188
|
-
return null;
|
|
189
|
-
}
|
|
190
|
-
const range = `bytes=${startOffset}-${startOffset + adjustedLength - 1}`;
|
|
191
|
-
const response = await this.s3Client.send(new client_s3_1.GetObjectCommand({
|
|
192
|
-
Bucket: this.bucketName,
|
|
193
|
-
Key: objectKey,
|
|
194
|
-
Range: range,
|
|
195
|
-
}));
|
|
196
|
-
if (!response.Body) {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
const buffer = await this.streamToBuffer(response.Body);
|
|
200
|
-
return {
|
|
201
|
-
bytes: buffer,
|
|
202
|
-
totalLength: totalLength,
|
|
203
|
-
startOffset: startOffset,
|
|
204
|
-
};
|
|
205
|
-
}
|
|
206
|
-
catch (error) {
|
|
207
|
-
Logger_1.Logger.appLogger.error(`Error reading video segment for flow ${flowId}`, error);
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
async getFlowFile(flowId, fileId) {
|
|
212
|
-
const objectKey = `${flowId}/${fileId}`;
|
|
213
|
-
try {
|
|
214
|
-
const response = await this.s3Client.send(new client_s3_1.GetObjectCommand({
|
|
215
|
-
Bucket: this.bucketName,
|
|
216
|
-
Key: objectKey,
|
|
217
|
-
}));
|
|
218
|
-
if (!response.Body) {
|
|
219
|
-
return null;
|
|
220
|
-
}
|
|
221
|
-
return await this.streamToBuffer(response.Body);
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
Logger_1.Logger.appLogger.debug(`File not found: ${objectKey}`, error);
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
async setFlowFile(flowId, fileId, fileBytes) {
|
|
229
|
-
const objectKey = `${flowId}/${fileId}`;
|
|
230
|
-
await this.s3Client.send(new client_s3_1.PutObjectCommand({
|
|
231
|
-
Bucket: this.bucketName,
|
|
232
|
-
Key: objectKey,
|
|
233
|
-
Body: fileBytes,
|
|
234
|
-
ContentType: 'application/octet-stream',
|
|
235
|
-
}));
|
|
236
|
-
}
|
|
237
|
-
async setBrowserState(flowId, browserState) {
|
|
238
|
-
const serializedBrowserState = Buffer.from(JSON.stringify(browserState), 'utf-8');
|
|
239
|
-
await this.setFlowFile(flowId, FlowsPersistenceAwsS3.BROWSER_STATE_FILENAME, serializedBrowserState);
|
|
240
|
-
}
|
|
241
|
-
async getBrowserState(flowId) {
|
|
242
|
-
const browserStateRaw = await this.getFlowFile(flowId, FlowsPersistenceAwsS3.BROWSER_STATE_FILENAME);
|
|
243
|
-
if (browserStateRaw) {
|
|
244
|
-
const browserState = JsonUtils_1.JsonUtils.jsonStringToJsonObject(browserStateRaw.toString('utf-8'));
|
|
245
|
-
if (browserState) {
|
|
246
|
-
return browserState;
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
throw new Error(`Cannot load malformed browser state from flow ${flowId}`);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
return null;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
async deleteFlow(flowId) {
|
|
257
|
-
const prefix = `${flowId}/`;
|
|
258
|
-
try {
|
|
259
|
-
// List all objects with the flow prefix
|
|
260
|
-
const response = await this.s3Client.send(new client_s3_1.ListObjectsV2Command({
|
|
261
|
-
Bucket: this.bucketName,
|
|
262
|
-
Prefix: prefix,
|
|
263
|
-
}));
|
|
264
|
-
if (!response.Contents || response.Contents.length === 0) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
// Delete each object
|
|
268
|
-
for (const object of response.Contents) {
|
|
269
|
-
if (object.Key) {
|
|
270
|
-
await this.s3Client.send(new client_s3_1.DeleteObjectCommand({
|
|
271
|
-
Bucket: this.bucketName,
|
|
272
|
-
Key: object.Key,
|
|
273
|
-
}));
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
catch (error) {
|
|
278
|
-
Logger_1.Logger.appLogger.error(`Failed to delete flow ${flowId}`, error);
|
|
279
|
-
throw error;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
exports.FlowsPersistenceAwsS3 = FlowsPersistenceAwsS3;
|
|
284
|
-
//# sourceMappingURL=FlowsPersistenceAwsS3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceAwsS3.js","sourceRoot":"","sources":["../../src/managers/FlowsPersistenceAwsS3.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FlowsPersistence } from './FlowsPersistence';
|
|
2
|
-
export interface FlowsPersistenceFactory {
|
|
3
|
-
/**
|
|
4
|
-
* Creates a new FlowsPersistence instance. Throws an error if no persistence layer is available.
|
|
5
|
-
*/
|
|
6
|
-
createPersistenceLayer(): Promise<FlowsPersistence>;
|
|
7
|
-
/** Returns a list of all valid persistence layers. Note that the returned list may be empty! */
|
|
8
|
-
createPersistenceLayers(): Promise<FlowsPersistence[]>;
|
|
9
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceFactory.js","sourceRoot":"","sources":["../../src/managers/FlowsPersistenceFactory.ts"],"names":[],"mappings":""}
|