donobu 2.0.0 → 2.2.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/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/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/AgentsManager.js +2 -1
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +7 -3
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- 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 +1 -2
- package/dist/esm/managers/DonobuFlowsManager.js +28 -42
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/GptConfigsManager.d.ts +1 -1
- package/dist/esm/managers/GptConfigsManager.js +11 -7
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/ToolManager.js +3 -0
- 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/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 +2 -0
- package/dist/esm/test.js +10 -5
- 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/AgentsManager.js +2 -1
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/CodeGenerator.js +7 -3
- package/dist/managers/CodeGenerator.js.map +1 -1
- 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 +1 -2
- package/dist/managers/DonobuFlowsManager.js +28 -42
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/GptConfigsManager.d.ts +1 -1
- package/dist/managers/GptConfigsManager.js +11 -7
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/ToolManager.js +3 -0
- 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/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 +2 -0
- package/dist/test.js +10 -5
- 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 +8 -6
|
@@ -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"}
|
|
@@ -88,6 +88,81 @@ CREATE TABLE IF NOT EXISTS gpt_configs (
|
|
|
88
88
|
);`);
|
|
89
89
|
},
|
|
90
90
|
},
|
|
91
|
+
{
|
|
92
|
+
// Update the flow JSON metadata schema.
|
|
93
|
+
version: 4,
|
|
94
|
+
up: (db) => {
|
|
95
|
+
// For each row in the flow_metadata table...
|
|
96
|
+
// 1. Load the metadata field.
|
|
97
|
+
// 2. Parse it as JSON data.
|
|
98
|
+
// 3. Update the JSON data such that...
|
|
99
|
+
// a. There is a new field called "browser" that is an object.
|
|
100
|
+
// b. The "initialBrowserState" field is moved to the "browser" object as "initialState".
|
|
101
|
+
// c. The "persistBrowserState" field is moved to the "browser" object as "persistState".
|
|
102
|
+
// d. There is a field in all "browser" objects called "using" that is an object.
|
|
103
|
+
// e. If there is a non-null "remoteBrowserInstanceUrl" field, then...
|
|
104
|
+
// i. The "remoteBrowserInstanceUrl" field is moved to the "using" object as "url".
|
|
105
|
+
// ii. The "type" field in the "using" object is set to "remoteInstance".
|
|
106
|
+
// f. If the "remoteBrowserInstanceUrl" field is null, then...
|
|
107
|
+
// i. The "deviceName" field is moved to the "using" object. If "deviceName" is null,
|
|
108
|
+
// then it is defaulted to "Desktop Chromium".
|
|
109
|
+
// ii. The "headless" field is moved to the "using" object.
|
|
110
|
+
// iii. The "type" field in the "using" object is set to "device".
|
|
111
|
+
// g. The original top-level "initialBrowserState" field is removed.
|
|
112
|
+
// h. The original top-level "persistBrowserState" field is removed.
|
|
113
|
+
// i. The original top-level "remoteBrowserInstanceUrl" field is removed.
|
|
114
|
+
// j. The original top-level "deviceName" field is removed.
|
|
115
|
+
// k. The original top-level "headless" field is removed.
|
|
116
|
+
// 4. Save the JSON data back to the metadata field.
|
|
117
|
+
// Get all rows from the flow_metadata table.
|
|
118
|
+
const flows = db
|
|
119
|
+
.prepare('SELECT id, metadata FROM flow_metadata')
|
|
120
|
+
.all();
|
|
121
|
+
// Prepare the update statement.
|
|
122
|
+
const updateStmt = db.prepare('UPDATE flow_metadata SET metadata = ? WHERE id = ?');
|
|
123
|
+
// Process each flow's metadata.
|
|
124
|
+
for (const flow of flows) {
|
|
125
|
+
try {
|
|
126
|
+
// Parse the metadata JSON.
|
|
127
|
+
const metadata = JSON.parse(flow.metadata);
|
|
128
|
+
// Create the new browser object structure.
|
|
129
|
+
metadata.browser = {
|
|
130
|
+
initialState: metadata.initialBrowserState || null,
|
|
131
|
+
persistState: metadata.persistBrowserState || false,
|
|
132
|
+
using: {},
|
|
133
|
+
};
|
|
134
|
+
// Determine the browser type and populate the 'using' object.
|
|
135
|
+
if (metadata.remoteBrowserInstanceUrl) {
|
|
136
|
+
// Remote browser instance configuration.
|
|
137
|
+
metadata.browser.using = {
|
|
138
|
+
type: 'remoteInstance',
|
|
139
|
+
url: metadata.remoteBrowserInstanceUrl,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Local device configuration.
|
|
144
|
+
metadata.browser.using = {
|
|
145
|
+
type: 'device',
|
|
146
|
+
deviceName: metadata.deviceName || 'Desktop Chromium',
|
|
147
|
+
headless: metadata.headless !== undefined ? metadata.headless : false,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// Remove the old fields.
|
|
151
|
+
delete metadata.initialBrowserState;
|
|
152
|
+
delete metadata.persistBrowserState;
|
|
153
|
+
delete metadata.remoteBrowserInstanceUrl;
|
|
154
|
+
delete metadata.deviceName;
|
|
155
|
+
delete metadata.headless;
|
|
156
|
+
// Update the database with the modified metadata.
|
|
157
|
+
updateStmt.run(JSON.stringify(metadata), flow.id);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
console.error(`Error updating metadata for flow ${flow.id}:`, error);
|
|
161
|
+
// Continue processing other flows even if one fails.
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
},
|
|
91
166
|
];
|
|
92
167
|
/**
|
|
93
168
|
* Create the SQL schema migrations table that can be used to manage table
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonobuSqliteDb.js","sourceRoot":"","sources":["../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"DonobuSqliteDb.js","sourceRoot":"","sources":["../../src/persistence/DonobuSqliteDb.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,6 @@ export declare class FlowsPersistenceFactoryImpl implements FlowsPersistenceFact
|
|
|
14
14
|
private readonly googleCloudStorageBucket;
|
|
15
15
|
private readonly supabaseJwtSecretKey;
|
|
16
16
|
private readonly requestContextHolder;
|
|
17
|
-
private static readonly AWS_S3_BUCKET_KEY;
|
|
18
|
-
private static readonly AWS_S3_REGION_KEY;
|
|
19
|
-
private static readonly GOOGLE_CLOUD_STORAGE_BUCKET_ENV;
|
|
20
|
-
private static readonly SUPABASE_JWT_SECRET_KEY_ENV;
|
|
21
17
|
/**
|
|
22
18
|
* Creates an instance.
|
|
23
19
|
*
|
|
@@ -17,6 +17,7 @@ const FlowsPersistenceSqlite_1 = require("./FlowsPersistenceSqlite");
|
|
|
17
17
|
const Logger_1 = require("../utils/Logger");
|
|
18
18
|
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
19
19
|
const DonobuSqliteDb_1 = require("./DonobuSqliteDb");
|
|
20
|
+
const envVars_1 = require("../envVars");
|
|
20
21
|
/**
|
|
21
22
|
* A factory class for creating new FlowsPersistence instances. The type of persistence
|
|
22
23
|
* objects created varies depending on this factory's constructor arguments and the current API
|
|
@@ -29,10 +30,6 @@ class FlowsPersistenceFactoryImpl {
|
|
|
29
30
|
googleCloudStorageBucket;
|
|
30
31
|
supabaseJwtSecretKey;
|
|
31
32
|
requestContextHolder;
|
|
32
|
-
static AWS_S3_BUCKET_KEY = 'AWS_S3_BUCKET';
|
|
33
|
-
static AWS_S3_REGION_KEY = 'AWS_S3_REGION';
|
|
34
|
-
static GOOGLE_CLOUD_STORAGE_BUCKET_ENV = 'GOOGLE_CLOUD_STORAGE_BUCKET';
|
|
35
|
-
static SUPABASE_JWT_SECRET_KEY_ENV = 'SUPABASE_JWT_SECRET_KEY';
|
|
36
33
|
/**
|
|
37
34
|
* Creates an instance.
|
|
38
35
|
*
|
|
@@ -72,10 +69,10 @@ class FlowsPersistenceFactoryImpl {
|
|
|
72
69
|
if (deploymentEnvironment === DonobuDeploymentEnvironment_1.DonobuDeploymentEnvironment.LOCAL) {
|
|
73
70
|
await FlowsPersistenceFactoryImpl.migrateToSqlite();
|
|
74
71
|
}
|
|
75
|
-
const awsS3Bucket = process.env[
|
|
76
|
-
const awsS3Region = process.env[
|
|
77
|
-
const googleCloudStorageBucket = process.env[
|
|
78
|
-
const supabaseJwtSecretKey = process.env[
|
|
72
|
+
const awsS3Bucket = process.env[envVars_1.ENV_VAR_NAMES.AWS_S3_BUCKET];
|
|
73
|
+
const awsS3Region = process.env[envVars_1.ENV_VAR_NAMES.AWS_S3_REGION];
|
|
74
|
+
const googleCloudStorageBucket = process.env[envVars_1.ENV_VAR_NAMES.GOOGLE_CLOUD_STORAGE_BUCKET];
|
|
75
|
+
const supabaseJwtSecretKey = process.env[envVars_1.ENV_VAR_NAMES.SUPABASE_JWT_SECRET_KEY];
|
|
79
76
|
return new FlowsPersistenceFactoryImpl(deploymentEnvironment, awsS3Bucket ? awsS3Bucket : null, awsS3Region ? awsS3Region : null, googleCloudStorageBucket ? googleCloudStorageBucket : null, supabaseJwtSecretKey ? supabaseJwtSecretKey : null, requestContextHolder);
|
|
80
77
|
}
|
|
81
78
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowsPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceFactoryImpl.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6B;AAC7B,gDAAwB;AACxB,qGAAkG;AAElG,6FAA0F;AAC1F,6EAA0E;AAC1E,yEAAsE;AACtE,8DAA2D;AAE3D,uFAAoF;AAEpF,mEAAgE;AAChE,qEAAkE;AAClE,4CAAyC;AACzC,kDAA+C;AAC/C,qDAA2D;
|
|
1
|
+
{"version":3,"file":"FlowsPersistenceFactoryImpl.js","sourceRoot":"","sources":["../../src/persistence/FlowsPersistenceFactoryImpl.ts"],"names":[],"mappings":"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"}
|
package/dist/test.d.ts
CHANGED
|
@@ -20,12 +20,14 @@ import { ScrollPageToolCoreParameters } from './tools/ScrollPageTool';
|
|
|
20
20
|
import { SelectorBasedHoverOverElementToolParameters } from './tools/HoverOverElementTool';
|
|
21
21
|
import { SelectorBasedClickToolParameters } from './tools/ClickTool';
|
|
22
22
|
import { LanguageModel } from 'ai';
|
|
23
|
+
import { AssertPageTextToolCoreParameters } from './tools/AssertPageTextTool';
|
|
23
24
|
/**
|
|
24
25
|
* Extends the Page object with additional test-related methods.
|
|
25
26
|
*/
|
|
26
27
|
interface DonobuExtendedPage extends Page {
|
|
27
28
|
run(toolName: string, toolParams?: any): Promise<ToolCallResult>;
|
|
28
29
|
analyzePageText(params: AnalyzePageTextToolCoreParameters): Promise<ToolCallResult>;
|
|
30
|
+
assertPageText(params: AssertPageTextToolCoreParameters): Promise<ToolCallResult>;
|
|
29
31
|
chooseSelectOption(params: SelectorBasedChooseSelectOptionToolParameters): Promise<ToolCallResult>;
|
|
30
32
|
clickElement(params: SelectorBasedClickToolParameters): Promise<ToolCallResult>;
|
|
31
33
|
createCookieReport(): Promise<ToolCallResult>;
|
package/dist/test.js
CHANGED
|
@@ -175,18 +175,20 @@ exports.test = test_1.test.extend({
|
|
|
175
175
|
id: crypto_1.default.randomUUID(),
|
|
176
176
|
name: testInfo.title,
|
|
177
177
|
createdWithDonobuVersion: donobu.donobuVersion,
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
browser: {
|
|
179
|
+
using: {
|
|
180
|
+
type: 'device',
|
|
181
|
+
deviceName: 'Desktop Chromium',
|
|
182
|
+
headless: true,
|
|
183
|
+
},
|
|
184
|
+
},
|
|
180
185
|
gptConfigName: null,
|
|
181
186
|
hasGptConfigNameOverride: false,
|
|
182
187
|
customTools: null,
|
|
183
188
|
defaultToolTipDurationMilliseconds: 0,
|
|
184
189
|
runMode: FlowMetadata_1.RunMode.DETERMINISTIC,
|
|
185
190
|
isControlPanelEnabled: false,
|
|
186
|
-
deviceName: null,
|
|
187
|
-
remoteBrowserInstanceUrl: null,
|
|
188
191
|
callbackUrl: null,
|
|
189
|
-
headless: true,
|
|
190
192
|
targetWebsite: 'https://example.com',
|
|
191
193
|
overallObjective: null,
|
|
192
194
|
allowedTools: [],
|
|
@@ -241,6 +243,9 @@ exports.test = test_1.test.extend({
|
|
|
241
243
|
page.analyzePageText = async (params) => {
|
|
242
244
|
return page.run('analyzePageText', params);
|
|
243
245
|
};
|
|
246
|
+
page.assertPageText = async (params) => {
|
|
247
|
+
return page.run('assertPageText', params);
|
|
248
|
+
};
|
|
244
249
|
page.chooseSelectOption = async (params) => {
|
|
245
250
|
return page.run('chooseSelectOption', params);
|
|
246
251
|
};
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|