donobu 1.0.0 → 2.1.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 +5 -2
- package/dist/apis/SpecialFlowsApi.js +46 -25
- package/dist/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/assets/control-panel.js +16 -1
- package/dist/assets/generated/parameter-schemas.json +340 -94
- package/dist/assets/generated/version +1 -1
- package/dist/clients/AnthropicGptClient.js +1 -1
- package/dist/clients/AnthropicGptClient.js.map +1 -1
- package/dist/clients/GoogleGptClient.js +1 -1
- package/dist/clients/GoogleGptClient.js.map +1 -1
- package/dist/clients/OpenAiGptClient.js +1 -1
- package/dist/clients/OpenAiGptClient.js.map +1 -1
- package/dist/clients/VercelAiGptClient.d.ts +26 -0
- package/dist/clients/VercelAiGptClient.js +231 -0
- package/dist/clients/VercelAiGptClient.js.map +1 -0
- package/dist/envVars.d.ts +76 -0
- package/dist/envVars.js +80 -0
- package/dist/envVars.js.map +1 -0
- package/dist/esm/apis/SpecialFlowsApi.d.ts +5 -2
- package/dist/esm/apis/SpecialFlowsApi.js +46 -25
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/esm/assets/control-panel.js +16 -1
- package/dist/esm/assets/generated/parameter-schemas.json +340 -94
- package/dist/esm/assets/generated/version +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 +1 -1
- package/dist/esm/clients/GoogleGptClient.js.map +1 -1
- package/dist/esm/clients/OpenAiGptClient.js +1 -1
- package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
- package/dist/esm/clients/VercelAiGptClient.d.ts +26 -0
- package/dist/esm/clients/VercelAiGptClient.js +231 -0
- package/dist/esm/clients/VercelAiGptClient.js.map +1 -0
- package/dist/esm/envVars.d.ts +76 -0
- package/dist/esm/envVars.js +80 -0
- package/dist/esm/envVars.js.map +1 -0
- package/dist/esm/main.js +2 -2
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/AdminApiController.js +1 -1
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.js +2 -1
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts +17 -0
- package/dist/esm/managers/CodeGenerator.js +258 -0
- package/dist/esm/managers/CodeGenerator.js.map +1 -0
- package/dist/esm/managers/DonobuFlow.d.ts +4 -4
- package/dist/esm/managers/DonobuFlow.js +73 -71
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +3 -6
- package/dist/esm/managers/DonobuFlowsManager.js +38 -175
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/GptConfigsManager.d.ts +1 -1
- package/dist/esm/managers/GptConfigsManager.js +45 -25
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts +0 -5
- package/dist/esm/managers/ToolManager.js +3 -68
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/BrowserConfig.d.ts +65 -0
- package/dist/esm/models/BrowserConfig.js +4 -0
- package/dist/esm/models/BrowserConfig.js.map +1 -0
- package/dist/esm/models/BrowserFramework.d.ts +31 -4
- package/dist/esm/models/BrowserFramework.js +125 -7
- package/dist/esm/models/BrowserFramework.js.map +1 -1
- package/dist/esm/models/BrowserStateFlowReference.js +1 -0
- package/dist/esm/models/BrowserStateFlowReference.js.map +1 -1
- package/dist/esm/models/CreateDonobuFlow.d.ts +2 -27
- package/dist/esm/models/FlowMetadata.d.ts +6 -19
- package/dist/esm/models/FlowMetadata.js +1 -0
- package/dist/esm/models/FlowMetadata.js.map +1 -1
- package/dist/esm/models/GptConfig.d.ts +6 -1
- package/dist/esm/persistence/DonobuSqliteDb.js +75 -0
- package/dist/esm/persistence/DonobuSqliteDb.js.map +1 -1
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -4
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js +5 -8
- package/dist/esm/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/esm/test.d.ts +12 -8
- package/dist/esm/test.js +52 -39
- package/dist/esm/test.js.map +1 -1
- package/dist/esm/tools/AssertPageTextTool.d.ts +19 -0
- package/dist/esm/tools/AssertPageTextTool.js +42 -0
- package/dist/esm/tools/AssertPageTextTool.js.map +1 -0
- package/dist/esm/tools/AssertTextVisibility.d.ts +19 -0
- package/dist/esm/tools/AssertTextVisibility.js +32 -0
- package/dist/esm/tools/AssertTextVisibility.js.map +1 -0
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +33 -16
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/esm/utils/MiscUtils.js +2 -1
- package/dist/esm/utils/MiscUtils.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +1 -2
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/managers/AdminApiController.js +1 -1
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.js +2 -1
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts +17 -0
- package/dist/managers/CodeGenerator.js +258 -0
- package/dist/managers/CodeGenerator.js.map +1 -0
- package/dist/managers/DonobuFlow.d.ts +4 -4
- package/dist/managers/DonobuFlow.js +73 -71
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +3 -6
- package/dist/managers/DonobuFlowsManager.js +38 -175
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/GptConfigsManager.d.ts +1 -1
- package/dist/managers/GptConfigsManager.js +45 -25
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/ToolManager.d.ts +0 -5
- package/dist/managers/ToolManager.js +3 -68
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/BrowserConfig.d.ts +65 -0
- package/dist/models/BrowserConfig.js +4 -0
- package/dist/models/BrowserConfig.js.map +1 -0
- package/dist/models/BrowserFramework.d.ts +31 -4
- package/dist/models/BrowserFramework.js +125 -7
- package/dist/models/BrowserFramework.js.map +1 -1
- package/dist/models/BrowserStateFlowReference.js +1 -0
- package/dist/models/BrowserStateFlowReference.js.map +1 -1
- package/dist/models/CreateDonobuFlow.d.ts +2 -27
- package/dist/models/FlowMetadata.d.ts +6 -19
- package/dist/models/FlowMetadata.js +1 -0
- package/dist/models/FlowMetadata.js.map +1 -1
- package/dist/models/GptConfig.d.ts +6 -1
- package/dist/persistence/DonobuSqliteDb.js +75 -0
- package/dist/persistence/DonobuSqliteDb.js.map +1 -1
- package/dist/persistence/FlowsPersistenceFactoryImpl.d.ts +0 -4
- package/dist/persistence/FlowsPersistenceFactoryImpl.js +5 -8
- package/dist/persistence/FlowsPersistenceFactoryImpl.js.map +1 -1
- package/dist/test.d.ts +12 -8
- package/dist/test.js +52 -39
- package/dist/test.js.map +1 -1
- package/dist/tools/AssertPageTextTool.d.ts +19 -0
- package/dist/tools/AssertPageTextTool.js +42 -0
- package/dist/tools/AssertPageTextTool.js.map +1 -0
- package/dist/tools/AssertTextVisibility.d.ts +19 -0
- package/dist/tools/AssertTextVisibility.js +32 -0
- package/dist/tools/AssertTextVisibility.js.map +1 -0
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +33 -16
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/utils/MiscUtils.js +2 -1
- package/dist/utils/MiscUtils.js.map +1 -1
- package/dist/utils/PlaywrightUtils.js +1 -2
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +7 -5
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.ToolManager = void 0;
|
|
7
4
|
const Logger_1 = require("../utils/Logger");
|
|
@@ -44,7 +41,7 @@ const WaitTool_1 = require("../tools/WaitTool");
|
|
|
44
41
|
const HoverOverElementTool_1 = require("../tools/HoverOverElementTool");
|
|
45
42
|
const DetectBrokenLinksTool_1 = require("../tools/DetectBrokenLinksTool");
|
|
46
43
|
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
47
|
-
const
|
|
44
|
+
const AssertPageTextTool_1 = require("../tools/AssertPageTextTool");
|
|
48
45
|
/**
|
|
49
46
|
* Manages calls to a given list of tools.
|
|
50
47
|
*/
|
|
@@ -54,6 +51,7 @@ class ToolManager {
|
|
|
54
51
|
static ALL_TOOLS = [
|
|
55
52
|
new AnalyzePageTextTool_1.AnalyzePageTextTool(),
|
|
56
53
|
new AssertTool_1.AssertTool(),
|
|
54
|
+
new AssertPageTextTool_1.AssertPageTextTool(),
|
|
57
55
|
new CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool(),
|
|
58
56
|
new ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool(),
|
|
59
57
|
new ChooseSelectOptionTool_1.ChooseSelectOptionTool(),
|
|
@@ -92,6 +90,7 @@ class ToolManager {
|
|
|
92
90
|
static DEFAULT_TOOLS = [
|
|
93
91
|
new AnalyzePageTextTool_1.AnalyzePageTextTool(),
|
|
94
92
|
new AssertTool_1.AssertTool(),
|
|
93
|
+
new AssertPageTextTool_1.AssertPageTextTool(),
|
|
95
94
|
new CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool(),
|
|
96
95
|
new ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool(),
|
|
97
96
|
new ChooseSelectOptionTool_1.ChooseSelectOptionTool(),
|
|
@@ -195,70 +194,6 @@ class ToolManager {
|
|
|
195
194
|
throw error;
|
|
196
195
|
}
|
|
197
196
|
}
|
|
198
|
-
/**
|
|
199
|
-
* Maps a proposed Donobu tool call to valid NodeJS Playwright code that uses
|
|
200
|
-
* the `DonobuExtendedPage` extension.
|
|
201
|
-
*/
|
|
202
|
-
convertToPlaywrightCode(proposedToolCall) {
|
|
203
|
-
const rawParams = JsonUtils_1.JsonUtils.objectToJson(proposedToolCall.parameters);
|
|
204
|
-
const rationale = rawParams.rationale
|
|
205
|
-
? '// ' + rawParams.rationale + '\n'
|
|
206
|
-
: '';
|
|
207
|
-
// Delete fields that should not be directly mapped.
|
|
208
|
-
delete rawParams.rationale;
|
|
209
|
-
delete rawParams.whyThisAnnotation;
|
|
210
|
-
delete rawParams.annotation;
|
|
211
|
-
const hasNonEmptyParameters = Object.keys(rawParams).length > 0;
|
|
212
|
-
// Used JSON5 to stringify instead of JSON so that object properties do not
|
|
213
|
-
// get double-quoted (this makes the code look more natural for NodeJS).
|
|
214
|
-
const serializedParams = json5_1.default.stringify(rawParams, null, 2);
|
|
215
|
-
switch (proposedToolCall.name) {
|
|
216
|
-
case AssertTool_1.AssertTool.NAME: {
|
|
217
|
-
return `${rationale}await page.visuallyAssert(${serializedParams});`;
|
|
218
|
-
}
|
|
219
|
-
case ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME: {
|
|
220
|
-
return `${rationale}page = page.context().pages().find((tab) => tab.url() === '${rawParams.tabUrl}');`;
|
|
221
|
-
}
|
|
222
|
-
case ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME: {
|
|
223
|
-
return `${rationale}await page.chooseSelectOption(${serializedParams});`;
|
|
224
|
-
}
|
|
225
|
-
case ClickTool_1.ClickTool.NAME: {
|
|
226
|
-
return `${rationale}await page.clickElement(${serializedParams});`;
|
|
227
|
-
}
|
|
228
|
-
case GoForwardOrBackTool_1.GoForwardOrBackTool.NAME:
|
|
229
|
-
if (rawParams.direction === 'FORWARD') {
|
|
230
|
-
return `${rationale}await page.goForward();`;
|
|
231
|
-
}
|
|
232
|
-
else if (rawParams.direction === 'BACK') {
|
|
233
|
-
return `${rationale}await page.goBack();`;
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
throw new Error(`Invalid ${GoForwardOrBackTool_1.GoForwardOrBackTool.NAME} params: ${serializedParams}`);
|
|
237
|
-
}
|
|
238
|
-
case GoToWebpageTool_1.GoToWebpageTool.NAME:
|
|
239
|
-
return `${rationale}await page.goto('${rawParams.url}');`;
|
|
240
|
-
case ReloadPageTool_1.ReloadPageTool.NAME:
|
|
241
|
-
return `${rationale}await page.reload();`;
|
|
242
|
-
case ScrollPageTool_1.ScrollPageTool.NAME:
|
|
243
|
-
return `${rationale}await page.scroll(${serializedParams});`;
|
|
244
|
-
// The following tools can be mapped directly.
|
|
245
|
-
case CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME:
|
|
246
|
-
case DetectBrokenLinksTool_1.DetectBrokenLinksTool.NAME:
|
|
247
|
-
case HoverOverElementTool_1.HoverOverElementTool.NAME:
|
|
248
|
-
case InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME:
|
|
249
|
-
case InputTextTool_1.InputTextTool.NAME:
|
|
250
|
-
case PressKeyTool_1.PressKeyTool.NAME:
|
|
251
|
-
case RunAccessibilityTestTool_1.RunAccessibilityTestTool.NAME: {
|
|
252
|
-
return `${rationale}await page.${proposedToolCall.name}(${hasNonEmptyParameters ? serializedParams : ''});`;
|
|
253
|
-
}
|
|
254
|
-
default:
|
|
255
|
-
const toolName = proposedToolCall.name;
|
|
256
|
-
const toolCallScript = hasNonEmptyParameters
|
|
257
|
-
? `${rationale}await page.run('${toolName}', ${serializedParams});`
|
|
258
|
-
: `${rationale}await page.run('${toolName}');`;
|
|
259
|
-
return toolCallScript;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
197
|
}
|
|
263
198
|
exports.ToolManager = ToolManager;
|
|
264
199
|
//# sourceMappingURL=ToolManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolManager.js","sourceRoot":"","sources":["../../src/managers/ToolManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ToolManager.js","sourceRoot":"","sources":["../../src/managers/ToolManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BrowserStateFlowReference } from './BrowserStateFlowReference';
|
|
2
|
+
/**
|
|
3
|
+
* Broadly follows the HTTP body fields described in...
|
|
4
|
+
* https://docs.browserbase.com/reference/api/create-a-session
|
|
5
|
+
*/
|
|
6
|
+
export type BrowserBaseSessionArgs = {
|
|
7
|
+
/**
|
|
8
|
+
* If the project ID contains "${env.VARIABLE_NAME}", then it will be expanded
|
|
9
|
+
* to the value of the specified environment variable.
|
|
10
|
+
*/
|
|
11
|
+
readonly projectId: string;
|
|
12
|
+
readonly extensionId?: string;
|
|
13
|
+
readonly browserSettings?: {
|
|
14
|
+
readonly context?: {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
};
|
|
17
|
+
readonly extensionId?: string;
|
|
18
|
+
readonly viewport?: {
|
|
19
|
+
readonly width: number;
|
|
20
|
+
readonly height: number;
|
|
21
|
+
};
|
|
22
|
+
readonly blockAds?: boolean;
|
|
23
|
+
readonly solveCaptchas?: boolean;
|
|
24
|
+
readonly advancedStealth?: boolean;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Duration in seconds after which the session will automatically end.
|
|
28
|
+
*/
|
|
29
|
+
readonly timeout?: number;
|
|
30
|
+
readonly proxies?: boolean;
|
|
31
|
+
readonly region?: string;
|
|
32
|
+
readonly userMetadata?: Record<string, string>;
|
|
33
|
+
};
|
|
34
|
+
export type BrowserConfig = {
|
|
35
|
+
/**
|
|
36
|
+
* When starting the flow, initialize the browser state from the given flow
|
|
37
|
+
* by its ID or name.
|
|
38
|
+
**/
|
|
39
|
+
readonly initialState?: BrowserStateFlowReference;
|
|
40
|
+
/** If set to true, saves the browser state at the end of the flow. */
|
|
41
|
+
readonly persistState?: boolean;
|
|
42
|
+
readonly using: {
|
|
43
|
+
readonly type: 'device';
|
|
44
|
+
/**
|
|
45
|
+
* The name of the device to run the flow with. See `devices.json` for details.
|
|
46
|
+
* If not specified, defaults to 'Desktop Chromium'.
|
|
47
|
+
*/
|
|
48
|
+
readonly deviceName?: string;
|
|
49
|
+
/**
|
|
50
|
+
* If true, will not open a real browser window to perform the flow.
|
|
51
|
+
*/
|
|
52
|
+
readonly headless?: boolean;
|
|
53
|
+
} | {
|
|
54
|
+
readonly type: 'remoteInstance';
|
|
55
|
+
/**
|
|
56
|
+
* The URL of a remote browser instance to connect to using the Chrome DevTools
|
|
57
|
+
* Protocol (CDP). If the URL contains "${env.VARIABLE_NAME}", then it will be
|
|
58
|
+
* expanded to the value of the specified environment variable.
|
|
59
|
+
*/
|
|
60
|
+
readonly url: string;
|
|
61
|
+
} | {
|
|
62
|
+
readonly type: 'browserBase';
|
|
63
|
+
readonly sessionArgs: BrowserBaseSessionArgs;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserConfig.js","sourceRoot":"","sources":["../../src/models/BrowserConfig.ts"],"names":[],"mappings":";AAAA,8BAA8B"}
|
|
@@ -1,29 +1,56 @@
|
|
|
1
1
|
import { Browser, BrowserContext } from 'playwright';
|
|
2
2
|
import { BrowserStorageState } from '../models/BrowserState';
|
|
3
|
+
import { BrowserConfig } from './BrowserConfig';
|
|
3
4
|
export declare class BrowserFramework {
|
|
5
|
+
readonly browserConfig: BrowserConfig;
|
|
4
6
|
readonly browser: Browser;
|
|
5
7
|
readonly browserContext: BrowserContext;
|
|
8
|
+
private readonly browserBaseData?;
|
|
9
|
+
private static readonly DEFAULT_DEVICE_NAME;
|
|
6
10
|
private static readonly DEVICES;
|
|
7
|
-
constructor(
|
|
11
|
+
private constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Closes the browser and browser context. If the browser is a BrowserBase
|
|
14
|
+
* instance, it will also release the session.
|
|
15
|
+
*/
|
|
16
|
+
close(): Promise<void>;
|
|
8
17
|
/**
|
|
9
18
|
* Returns the list of supported devices by name. These values can be passed as a deviceName to
|
|
10
19
|
* the {@link forDevice} function.
|
|
11
20
|
*/
|
|
12
21
|
static supportedDevicesNames(): string[];
|
|
22
|
+
static create(browserConfig: BrowserConfig, outputDir: string, storageState?: BrowserStorageState): Promise<BrowserFramework>;
|
|
13
23
|
/**
|
|
14
24
|
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given
|
|
15
25
|
* URL. If the URL contains "${env.VARIABLE_NAME}", then it will be expanded to the value of the
|
|
16
26
|
* specified environment variable.
|
|
17
27
|
*/
|
|
18
|
-
static forRemoteBrowser
|
|
28
|
+
private static forRemoteBrowser;
|
|
19
29
|
/**
|
|
20
30
|
* If {@link storageState} is present, must be an object conforming to what is returned by
|
|
21
31
|
* {@link BrowserContext.storageState()}.
|
|
22
32
|
*/
|
|
23
|
-
static forDevice
|
|
33
|
+
private static forDevice;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a BrowserBase session. If the project ID
|
|
36
|
+
* contains "${env.VARIABLE_NAME}", then it will be expanded to the value of
|
|
37
|
+
* the specified environment variable. Using this method requires the
|
|
38
|
+
* BROWSERBASE_API_KEY environment variable to be set.
|
|
39
|
+
*
|
|
40
|
+
* The returned browserBaseData object conforms to the response of the session
|
|
41
|
+
* creation API endpoint. See...
|
|
42
|
+
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
43
|
+
*/
|
|
44
|
+
private static forBrowserBase;
|
|
45
|
+
/**
|
|
46
|
+
* Establishes a BrowserBase session. The returned structure matches the
|
|
47
|
+
* response structore from the BrowserBase session API. See...
|
|
48
|
+
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
49
|
+
*/
|
|
50
|
+
private static establishBrowserBaseSession;
|
|
24
51
|
private static forDeviceWithType;
|
|
25
52
|
private static browserFramework;
|
|
26
|
-
private static
|
|
53
|
+
private static expandEnvVariables;
|
|
27
54
|
/**
|
|
28
55
|
* Loads all the pre-canned browser device configurations from the local
|
|
29
56
|
* filesystem.
|
|
@@ -9,18 +9,62 @@ const puppeteer_extra_plugin_stealth_1 = __importDefault(require("puppeteer-extr
|
|
|
9
9
|
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
10
10
|
const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueException");
|
|
11
11
|
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const envVars_1 = require("../envVars");
|
|
13
|
+
const Logger_1 = require("../utils/Logger");
|
|
12
14
|
class BrowserFramework {
|
|
15
|
+
browserConfig;
|
|
13
16
|
browser;
|
|
14
17
|
browserContext;
|
|
18
|
+
browserBaseData;
|
|
19
|
+
static DEFAULT_DEVICE_NAME = 'Desktop Chromium';
|
|
15
20
|
static {
|
|
16
21
|
playwright_extra_1.firefox.use((0, puppeteer_extra_plugin_stealth_1.default)());
|
|
17
22
|
playwright_extra_1.chromium.use((0, puppeteer_extra_plugin_stealth_1.default)());
|
|
18
23
|
playwright_extra_1.webkit.use((0, puppeteer_extra_plugin_stealth_1.default)());
|
|
19
24
|
}
|
|
20
25
|
static DEVICES = BrowserFramework.getDevices();
|
|
21
|
-
constructor(browser, browserContext) {
|
|
26
|
+
constructor(browserConfig, browser, browserContext, browserBaseData) {
|
|
27
|
+
this.browserConfig = browserConfig;
|
|
22
28
|
this.browser = browser;
|
|
23
29
|
this.browserContext = browserContext;
|
|
30
|
+
this.browserBaseData = browserBaseData;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Closes the browser and browser context. If the browser is a BrowserBase
|
|
34
|
+
* instance, it will also release the session.
|
|
35
|
+
*/
|
|
36
|
+
async close() {
|
|
37
|
+
try {
|
|
38
|
+
await this.browserContext.close();
|
|
39
|
+
}
|
|
40
|
+
catch (_error) {
|
|
41
|
+
// Ignore, the browser context may have already been closed and that is fine.
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
await this.browser.close();
|
|
45
|
+
}
|
|
46
|
+
catch (_error) {
|
|
47
|
+
// Ignore, the browser may have already been closed and that is fine.
|
|
48
|
+
}
|
|
49
|
+
if (this.browserConfig.using.type === 'browserBase' &&
|
|
50
|
+
this.browserBaseData) {
|
|
51
|
+
const password = process.env[envVars_1.ENV_VAR_NAMES.BROWSERBASE_API_KEY] ?? '';
|
|
52
|
+
const options = {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: {
|
|
55
|
+
'X-BB-API-Key': password,
|
|
56
|
+
'Content-Type': 'application/json',
|
|
57
|
+
},
|
|
58
|
+
body: `{"projectId":"${this.browserBaseData.projectId}","status":"REQUEST_RELEASE"}`,
|
|
59
|
+
};
|
|
60
|
+
try {
|
|
61
|
+
await fetch(`https://api.browserbase.com/v1/sessions/${this.browserBaseData.id}`, options);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// Ignore, BrowserBase sessions expire automatically anyway.
|
|
65
|
+
Logger_1.Logger.appLogger.warn('Failed to release BrowserBase session', error);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
24
68
|
}
|
|
25
69
|
/**
|
|
26
70
|
* Returns the list of supported devices by name. These values can be passed as a deviceName to
|
|
@@ -29,13 +73,34 @@ class BrowserFramework {
|
|
|
29
73
|
static supportedDevicesNames() {
|
|
30
74
|
return [...BrowserFramework.DEVICES.keys()].reverse();
|
|
31
75
|
}
|
|
76
|
+
static async create(browserConfig, outputDir, storageState) {
|
|
77
|
+
const type = browserConfig.using.type;
|
|
78
|
+
switch (type) {
|
|
79
|
+
case 'device': {
|
|
80
|
+
const { browser, browserContext } = await BrowserFramework.forDevice(browserConfig.using.deviceName ??
|
|
81
|
+
BrowserFramework.DEFAULT_DEVICE_NAME, browserConfig.using.headless ?? false, outputDir, storageState);
|
|
82
|
+
return new BrowserFramework(browserConfig, browser, browserContext);
|
|
83
|
+
}
|
|
84
|
+
case 'remoteInstance': {
|
|
85
|
+
const { browser, browserContext } = await BrowserFramework.forRemoteBrowser(browserConfig.using.url, outputDir, storageState);
|
|
86
|
+
return new BrowserFramework(browserConfig, browser, browserContext);
|
|
87
|
+
}
|
|
88
|
+
case 'browserBase': {
|
|
89
|
+
const { browser, browserContext, browserBaseData } = await BrowserFramework.forBrowserBase(browserConfig.using.sessionArgs, outputDir, storageState);
|
|
90
|
+
return new BrowserFramework(browserConfig, browser, browserContext, browserBaseData);
|
|
91
|
+
}
|
|
92
|
+
default: {
|
|
93
|
+
throw new InvalidParamValueException_1.InvalidParamValueException('type', type);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
32
97
|
/**
|
|
33
98
|
* Connects to an existing Chromium browser using the Chrome DevTools Protocol (CDP) at the given
|
|
34
99
|
* URL. If the URL contains "${env.VARIABLE_NAME}", then it will be expanded to the value of the
|
|
35
100
|
* specified environment variable.
|
|
36
101
|
*/
|
|
37
102
|
static async forRemoteBrowser(remoteBrowserInstanceUrl, outputDir, storageState) {
|
|
38
|
-
const expandedUrl = this.
|
|
103
|
+
const expandedUrl = this.expandEnvVariables(remoteBrowserInstanceUrl);
|
|
39
104
|
try {
|
|
40
105
|
const browser = await playwright_extra_1.chromium.connectOverCDP(expandedUrl);
|
|
41
106
|
const contextOptions = {
|
|
@@ -44,7 +109,10 @@ class BrowserFramework {
|
|
|
44
109
|
if (storageState) {
|
|
45
110
|
contextOptions.storageState = storageState;
|
|
46
111
|
}
|
|
47
|
-
return
|
|
112
|
+
return {
|
|
113
|
+
browser: browser,
|
|
114
|
+
browserContext: await browser.newContext(contextOptions),
|
|
115
|
+
};
|
|
48
116
|
}
|
|
49
117
|
catch (_) {
|
|
50
118
|
throw new InvalidParamValueException_1.InvalidParamValueException('remoteBrowserInstanceUrl', remoteBrowserInstanceUrl);
|
|
@@ -63,6 +131,56 @@ class BrowserFramework {
|
|
|
63
131
|
throw new InvalidParamValueException_1.InvalidParamValueException('deviceName', deviceName);
|
|
64
132
|
}
|
|
65
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Creates a BrowserBase session. If the project ID
|
|
136
|
+
* contains "${env.VARIABLE_NAME}", then it will be expanded to the value of
|
|
137
|
+
* the specified environment variable. Using this method requires the
|
|
138
|
+
* BROWSERBASE_API_KEY environment variable to be set.
|
|
139
|
+
*
|
|
140
|
+
* The returned browserBaseData object conforms to the response of the session
|
|
141
|
+
* creation API endpoint. See...
|
|
142
|
+
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
143
|
+
*/
|
|
144
|
+
static async forBrowserBase(sessionArgs, outputDir, storageState) {
|
|
145
|
+
const browserBaseData = await BrowserFramework.establishBrowserBaseSession(sessionArgs);
|
|
146
|
+
const browser = await playwright_extra_1.chromium.connectOverCDP(browserBaseData.connectUrl);
|
|
147
|
+
const contextOptions = {
|
|
148
|
+
recordVideo: { dir: outputDir },
|
|
149
|
+
};
|
|
150
|
+
if (storageState) {
|
|
151
|
+
contextOptions.storageState = storageState;
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
browser: browser,
|
|
155
|
+
browserContext: await browser.newContext(contextOptions),
|
|
156
|
+
browserBaseData: browserBaseData,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Establishes a BrowserBase session. The returned structure matches the
|
|
161
|
+
* response structore from the BrowserBase session API. See...
|
|
162
|
+
* https://docs.browserbase.com/reference/api/create-a-session#response-id
|
|
163
|
+
*/
|
|
164
|
+
static async establishBrowserBaseSession(sessionArgs) {
|
|
165
|
+
const expandedSessionArgs = {
|
|
166
|
+
...sessionArgs,
|
|
167
|
+
projectId: this.expandEnvVariables(sessionArgs.projectId),
|
|
168
|
+
};
|
|
169
|
+
const password = process.env[envVars_1.ENV_VAR_NAMES.BROWSERBASE_API_KEY];
|
|
170
|
+
if (!password) {
|
|
171
|
+
throw new InvalidParamValueException_1.InvalidParamValueException(envVars_1.ENV_VAR_NAMES.BROWSERBASE_API_KEY, null);
|
|
172
|
+
}
|
|
173
|
+
const options = {
|
|
174
|
+
method: 'POST',
|
|
175
|
+
headers: { 'X-BB-API-Key': password, 'Content-Type': 'application/json' },
|
|
176
|
+
body: JSON.stringify(expandedSessionArgs),
|
|
177
|
+
};
|
|
178
|
+
const browserBaseData = await fetch('https://api.browserbase.com/v1/sessions', options).then((response) => response.json());
|
|
179
|
+
if (browserBaseData.error) {
|
|
180
|
+
throw new InvalidParamValueException_1.InvalidParamValueException(envVars_1.ENV_VAR_NAMES.BROWSERBASE_API_KEY, '(redacted)', `${browserBaseData.error}: ${browserBaseData.message}`);
|
|
181
|
+
}
|
|
182
|
+
return browserBaseData;
|
|
183
|
+
}
|
|
66
184
|
static async forDeviceWithType(deviceName, browserType, headless, outputDir, storageState) {
|
|
67
185
|
const device = BrowserFramework.DEVICES.get(deviceName);
|
|
68
186
|
if (device) {
|
|
@@ -126,17 +244,17 @@ class BrowserFramework {
|
|
|
126
244
|
throw new InvalidParamValueException_1.InvalidParamValueException('browserType', browserType);
|
|
127
245
|
}
|
|
128
246
|
try {
|
|
129
|
-
const
|
|
130
|
-
return
|
|
247
|
+
const browserContext = await browser.newContext(contextOptions);
|
|
248
|
+
return { browser, browserContext };
|
|
131
249
|
}
|
|
132
250
|
catch (error) {
|
|
133
251
|
await browser.close();
|
|
134
252
|
throw error;
|
|
135
253
|
}
|
|
136
254
|
}
|
|
137
|
-
static
|
|
255
|
+
static expandEnvVariables(str) {
|
|
138
256
|
const pattern = /\${env\.(\w+)}/g;
|
|
139
|
-
return
|
|
257
|
+
return str.replace(pattern, (_, envVarName) => {
|
|
140
258
|
const envVarValue = process.env[envVarName];
|
|
141
259
|
if (!envVarValue) {
|
|
142
260
|
throw new InvalidParamValueException_1.InvalidParamValueException(envVarName, null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserFramework.js","sourceRoot":"","sources":["../../src/models/BrowserFramework.ts"],"names":[],"mappings":";;;;;;AAMA,uDAA6D;AAC7D,oGAAqD;AACrD,kDAA+C;AAC/C,yFAAsF;AAGtF,gDAAwB;AAExB,MAAa,gBAAgB;
|
|
1
|
+
{"version":3,"file":"BrowserFramework.js","sourceRoot":"","sources":["../../src/models/BrowserFramework.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserStateFlowReference.js","sourceRoot":"","sources":["../../src/models/BrowserStateFlowReference.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"BrowserStateFlowReference.js","sourceRoot":"","sources":["../../src/models/BrowserStateFlowReference.ts"],"names":[],"mappings":";AAAA,0CAA0C"}
|
|
@@ -2,7 +2,7 @@ import { CustomTool } from './CustomTool';
|
|
|
2
2
|
import { ProposedToolCall } from './ProposedToolCall';
|
|
3
3
|
import { RunMode } from './FlowMetadata';
|
|
4
4
|
import { JSONSchema7 } from 'json-schema';
|
|
5
|
-
import {
|
|
5
|
+
import { BrowserConfig } from './BrowserConfig';
|
|
6
6
|
/**
|
|
7
7
|
* This is the expected payload for a request to create a new DonobuFlow flow.
|
|
8
8
|
*/
|
|
@@ -16,38 +16,13 @@ export type CreateDonobuFlow = {
|
|
|
16
16
|
readonly overallObjective?: string;
|
|
17
17
|
/** The name for this flow; if present, must be fewer than 256 characters. */
|
|
18
18
|
readonly name?: string;
|
|
19
|
-
|
|
20
|
-
* When starting the flow, initialize the browser state from the given flow
|
|
21
|
-
* by its ID or name.
|
|
22
|
-
**/
|
|
23
|
-
readonly initialBrowserState?: BrowserStateFlowReference;
|
|
24
|
-
/** If set to true, saves the browser state at the end of the flow. */
|
|
25
|
-
readonly persistBrowserState?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* The name of the device to run the flow with. See `devices.json` for details.
|
|
28
|
-
* If not specified, defaults to DonobuFlowsManager.DEFAULT_DEVICE_NAME unless
|
|
29
|
-
* remoteBrowserInstanceUrl is specified. If this is non-null, then
|
|
30
|
-
* remoteBrowserInstanceUrl must be null.
|
|
31
|
-
*/
|
|
32
|
-
readonly deviceName?: string;
|
|
33
|
-
/**
|
|
34
|
-
* The URL of a remote browser instance to connect to using the Chrome DevTools
|
|
35
|
-
* Protocol (CDP). If this is non-null, then deviceName must be null. If the URL
|
|
36
|
-
* contains "${env.VARIABLE_NAME}", then it will be expanded to the value of the
|
|
37
|
-
* specified environment variable.
|
|
38
|
-
*/
|
|
39
|
-
readonly remoteBrowserInstanceUrl?: string;
|
|
19
|
+
readonly browser?: BrowserConfig;
|
|
40
20
|
/**
|
|
41
21
|
* The URL to HTTP POST to when the flow completes. The body will contain a
|
|
42
22
|
* JSON object with single field, "id", of which is the ID of the flow that
|
|
43
23
|
* completed.
|
|
44
24
|
*/
|
|
45
25
|
readonly callbackUrl?: string;
|
|
46
|
-
/**
|
|
47
|
-
* If true, will not open a real browser window to perform the flow.
|
|
48
|
-
* If remoteBrowserInstanceUrl is non-null, this parameter is ignored.
|
|
49
|
-
*/
|
|
50
|
-
readonly headless?: boolean;
|
|
51
26
|
/**
|
|
52
27
|
* Custom tools to enable for this flow. Any tools specified here will be
|
|
53
28
|
* implicitly added to allowedTools.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CustomTool } from './CustomTool';
|
|
2
|
-
import { BrowserStateFlowReference } from './BrowserStateFlowReference';
|
|
3
2
|
import { JSONSchema7 } from 'json-schema';
|
|
3
|
+
import { BrowserConfig } from './BrowserConfig';
|
|
4
4
|
/**
|
|
5
5
|
* Metadata type of the details/status/state of a Donobu flow.
|
|
6
6
|
*/
|
|
@@ -11,16 +11,16 @@ export type FlowMetadata = {
|
|
|
11
11
|
readonly name: string | null;
|
|
12
12
|
/** The version of Donobu that created the flow. */
|
|
13
13
|
readonly createdWithDonobuVersion: string;
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
readonly
|
|
14
|
+
/**
|
|
15
|
+
* The configuration of the browser to use for the flow.
|
|
16
|
+
*/
|
|
17
|
+
readonly browser: BrowserConfig;
|
|
18
18
|
/** The name of the specific GPT configuration used for the flow. */
|
|
19
19
|
readonly gptConfigName: string | null;
|
|
20
20
|
/**
|
|
21
21
|
* If true, means that the `gptConfigName` was explicitly overwritten when the
|
|
22
22
|
* flow was created.
|
|
23
|
-
|
|
23
|
+
*/
|
|
24
24
|
readonly hasGptConfigNameOverride: boolean;
|
|
25
25
|
/** Custom tools available for the flow. */
|
|
26
26
|
readonly customTools: CustomTool[] | null;
|
|
@@ -30,25 +30,12 @@ export type FlowMetadata = {
|
|
|
30
30
|
runMode: RunMode;
|
|
31
31
|
/** Set to true if the in-browser control panel should be enabled. */
|
|
32
32
|
isControlPanelEnabled: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* The name of the device to use for the flow.
|
|
35
|
-
* If non-null, remoteBrowserInstanceUrl must be null
|
|
36
|
-
*/
|
|
37
|
-
readonly deviceName: string | null;
|
|
38
|
-
/**
|
|
39
|
-
* The URL of a remote browser instance to connect to using Chrome DevTools Protocol (CDP).
|
|
40
|
-
* If non-null, deviceName must be null. URLs containing "${env.VARIABLE_NAME}" will be
|
|
41
|
-
* expanded to the value of the specified environment variable.
|
|
42
|
-
*/
|
|
43
|
-
readonly remoteBrowserInstanceUrl: string | null;
|
|
44
33
|
/**
|
|
45
34
|
* The URL to HTTP POST to when the flow completes. The
|
|
46
35
|
* body will contain a JSON object with single field, "id", of which is
|
|
47
36
|
* the ID of the flow that completed.
|
|
48
37
|
*/
|
|
49
38
|
readonly callbackUrl: string | null;
|
|
50
|
-
/** If true, a real browser window was not used to perform the flow. */
|
|
51
|
-
readonly headless: boolean;
|
|
52
39
|
/** The website URL to start the flow at. */
|
|
53
40
|
readonly targetWebsite: string;
|
|
54
41
|
/** The overall objective to pursue. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowMetadata.js","sourceRoot":"","sources":["../../src/models/FlowMetadata.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"FlowMetadata.js","sourceRoot":"","sources":["../../src/models/FlowMetadata.ts"],"names":[],"mappings":";AAAA,6BAA6B;;;AAgG7B;;GAEG;AACH,IAAY,KAUX;AAVD,WAAY,KAAK;IACf,gCAAuB,CAAA;IACvB,sCAA6B,CAAA;IAC7B,sEAA6D,CAAA;IAC7D,4EAAmE,CAAA;IACnE,0BAAiB,CAAA;IACjB,8BAAqB,CAAA;IACrB,0CAAiC,CAAA;IACjC,0BAAiB,CAAA;IACjB,4BAAmB,CAAA;AACrB,CAAC,EAVW,KAAK,qBAAL,KAAK,QAUhB;AAED;;;;;GAKG;AACI,MAAM,UAAU,GAAG,CAAC,KAAY,EAAW,EAAE;IAClD,OAAO,KAAK,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEF;;GAEG;AACH,IAAY,OAgBX;AAhBD,WAAY,OAAO;IACjB;;;OAGG;IACH,oCAAyB,CAAA;IACzB;;;OAGG;IACH,gCAAqB,CAAA;IACrB;;;OAGG;IACH,0CAA+B,CAAA;AACjC,CAAC,EAhBW,OAAO,uBAAP,OAAO,QAgBlB"}
|
|
@@ -29,10 +29,15 @@ export type LlamaLocalConfig = {
|
|
|
29
29
|
export type LlamaHuggingFaceConfig = {
|
|
30
30
|
type: 'LLAMA_HUGGING_FACE';
|
|
31
31
|
};
|
|
32
|
+
export type VercelAiConfig = {
|
|
33
|
+
type: 'VERCEL_AI';
|
|
34
|
+
provider: string;
|
|
35
|
+
modelName: string;
|
|
36
|
+
};
|
|
32
37
|
/**
|
|
33
38
|
* A resource structure that can be used to establish connectivity with a
|
|
34
39
|
* particular GPT platform and model. If there are an 'apiKey', and/or a
|
|
35
40
|
* `secretAccessKey` fields, they will be redacted before being returned
|
|
36
41
|
* through the API.
|
|
37
42
|
*/
|
|
38
|
-
export type GptConfig = AnthropicConfig | AnthropicAwsBedrockConfig | GoogleGeminiConfig | OpenApiConfig | OpenApiAzureConfig | LlamaLocalConfig | LlamaHuggingFaceConfig;
|
|
43
|
+
export type GptConfig = AnthropicConfig | AnthropicAwsBedrockConfig | GoogleGeminiConfig | OpenApiConfig | OpenApiAzureConfig | LlamaLocalConfig | LlamaHuggingFaceConfig | VercelAiConfig;
|