donobu 2.52.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +100 -100
- package/dist/assets/generated/version +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/exceptions/PageAiException.d.ts +2 -1
- package/dist/esm/exceptions/PageAiException.d.ts.map +1 -1
- package/dist/esm/exceptions/PageAiException.js +10 -2
- package/dist/esm/exceptions/PageAiException.js.map +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +75 -100
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/PageAi.d.ts +10 -6
- package/dist/esm/lib/PageAi.d.ts.map +1 -1
- package/dist/esm/lib/PageAi.js +3 -10
- package/dist/esm/lib/PageAi.js.map +1 -1
- package/dist/esm/lib/SmartSelector.d.ts +16 -15
- package/dist/esm/lib/SmartSelector.d.ts.map +1 -1
- package/dist/esm/lib/SmartSelector.js +20 -7
- package/dist/esm/lib/SmartSelector.js.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js +103 -136
- package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/esm/lib/pageAi/cache.d.ts +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +58 -28
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts +17 -0
- package/dist/esm/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js +26 -32
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +6 -0
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/exceptions/PageAiException.d.ts +2 -1
- package/dist/exceptions/PageAiException.d.ts.map +1 -1
- package/dist/exceptions/PageAiException.js +10 -2
- package/dist/exceptions/PageAiException.js.map +1 -1
- package/dist/lib/DonobuExtendedPage.d.ts +75 -100
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/PageAi.d.ts +10 -6
- package/dist/lib/PageAi.d.ts.map +1 -1
- package/dist/lib/PageAi.js +3 -10
- package/dist/lib/PageAi.js.map +1 -1
- package/dist/lib/SmartSelector.d.ts +16 -15
- package/dist/lib/SmartSelector.d.ts.map +1 -1
- package/dist/lib/SmartSelector.js +20 -7
- package/dist/lib/SmartSelector.js.map +1 -1
- package/dist/lib/createDonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/createDonobuExtendedPage.js +103 -136
- package/dist/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/lib/pageAi/cache.d.ts +1 -1
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +58 -28
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.d.ts +17 -0
- package/dist/tools/CreateBrowserCookieReportTool.d.ts.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js +26 -32
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts +6 -0
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,19 +13,11 @@ const PageInspector_1 = require("../managers/PageInspector");
|
|
|
13
13
|
const ToolManager_1 = require("../managers/ToolManager");
|
|
14
14
|
const ControlPanel_1 = require("../models/ControlPanel");
|
|
15
15
|
const AnalyzePageTextTool_1 = require("../tools/AnalyzePageTextTool");
|
|
16
|
-
const AssertPageTextTool_1 = require("../tools/AssertPageTextTool");
|
|
17
16
|
const AssertTool_1 = require("../tools/AssertTool");
|
|
18
17
|
const ChangeWebBrowserTabTool_1 = require("../tools/ChangeWebBrowserTabTool");
|
|
19
|
-
const ChooseSelectOptionTool_1 = require("../tools/ChooseSelectOptionTool");
|
|
20
|
-
const ClickTool_1 = require("../tools/ClickTool");
|
|
21
18
|
const CreateBrowserCookieReportTool_1 = require("../tools/CreateBrowserCookieReportTool");
|
|
22
19
|
const GoToWebpageTool_1 = require("../tools/GoToWebpageTool");
|
|
23
|
-
const HoverOverElementTool_1 = require("../tools/HoverOverElementTool");
|
|
24
|
-
const InputRandomizedEmailAddressTool_1 = require("../tools/InputRandomizedEmailAddressTool");
|
|
25
|
-
const InputTextTool_1 = require("../tools/InputTextTool");
|
|
26
|
-
const PressKeyTool_1 = require("../tools/PressKeyTool");
|
|
27
20
|
const RunAccessibilityTestTool_1 = require("../tools/RunAccessibilityTestTool");
|
|
28
|
-
const ScrollPageTool_1 = require("../tools/ScrollPageTool");
|
|
29
21
|
const BrowserUtils_1 = require("../utils/BrowserUtils");
|
|
30
22
|
const Logger_1 = require("../utils/Logger");
|
|
31
23
|
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
@@ -113,42 +105,80 @@ function createDonobuPageExtender(sharedState, cacheFilepath) {
|
|
|
113
105
|
return extend;
|
|
114
106
|
}
|
|
115
107
|
function attachDonobuMethods(page, sharedState, extend, cacheFilepath) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (!
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
finalGptClient = gptClientOverride;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
else if (sharedState.gptClient) {
|
|
127
|
-
finalGptClient = sharedState.gptClient;
|
|
128
|
-
}
|
|
129
|
-
if (!finalGptClient) {
|
|
130
|
-
throw new Error(`No AI connection available. Establish a connection by setting an API key via an environment variable.
|
|
108
|
+
async function act(instruction, options) {
|
|
109
|
+
if (!sharedState.pageAi) {
|
|
110
|
+
const gptClient = getGptClient(page);
|
|
111
|
+
if (!gptClient) {
|
|
112
|
+
throw new Error(`No AI connection available. Establish a connection by setting an API key via an environment variable.
|
|
131
113
|
Valid options:
|
|
132
114
|
- ${envVars_1.env.keys.ANTHROPIC_API_KEY}
|
|
133
115
|
- ${envVars_1.env.keys.GOOGLE_GENERATIVE_AI_API_KEY}
|
|
134
116
|
- ${envVars_1.env.keys.OPENAI_API_KEY}`);
|
|
135
|
-
|
|
136
|
-
if (!sharedState.pageAi) {
|
|
117
|
+
}
|
|
137
118
|
sharedState.pageAi = cacheFilepath
|
|
138
|
-
? PageAi_1.PageAi.withFileCache(sharedState.donobuStack,
|
|
139
|
-
: PageAi_1.PageAi.withInMemoryCache(sharedState.donobuStack,
|
|
119
|
+
? PageAi_1.PageAi.withFileCache(sharedState.donobuStack, gptClient, cacheFilepath)
|
|
120
|
+
: PageAi_1.PageAi.withInMemoryCache(sharedState.donobuStack, gptClient);
|
|
121
|
+
}
|
|
122
|
+
const pageAiInstance = sharedState.pageAi;
|
|
123
|
+
if (!pageAiInstance) {
|
|
124
|
+
throw new Error('Failed to initialize Page AI.');
|
|
140
125
|
}
|
|
141
126
|
const clearAiCacheForRun = sharedState.runtimeDirectives?.clearPageAiCache ?? false;
|
|
142
127
|
const revisedOptions = {
|
|
143
128
|
envVars: sharedState.donobuFlowMetadata.envVars ?? [],
|
|
129
|
+
gptClient: getGptClient(page, options?.gptClient),
|
|
144
130
|
...(options ? options : {}),
|
|
145
131
|
};
|
|
146
132
|
if (clearAiCacheForRun) {
|
|
147
|
-
await
|
|
133
|
+
await pageAiInstance.invalidate(page, instruction, revisedOptions);
|
|
148
134
|
Logger_1.appLogger.debug(`Page.AI cache invalidated for this run via ${envVars_1.env.keys.DONOBU_PAGE_AI_CLEAR_CACHE}`);
|
|
149
135
|
}
|
|
150
|
-
return
|
|
136
|
+
return pageAiInstance.ai(page, instruction, revisedOptions);
|
|
137
|
+
}
|
|
138
|
+
const pageAi = {
|
|
139
|
+
act,
|
|
140
|
+
assertPage: async (assertion, options) => {
|
|
141
|
+
const result = await runTool(page, AssertTool_1.AssertTool.NAME, {
|
|
142
|
+
assertionToTestFor: assertion,
|
|
143
|
+
retries: options?.retries,
|
|
144
|
+
retryWaitSeconds: options?.retryDelaySeconds,
|
|
145
|
+
}, options?.gptClient);
|
|
146
|
+
if (!result.isSuccessful) {
|
|
147
|
+
throw new Error(result.forLlm);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
extract: async (schema, options) => {
|
|
151
|
+
const gptClient = getGptClient(page, options?.gptClient);
|
|
152
|
+
if (!gptClient) {
|
|
153
|
+
throw Error('Cannot extract an object from page without a GPT client set up!');
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
const toolCallHistory = await sharedState.persistence.getToolCalls(sharedState.donobuFlowMetadata.id);
|
|
157
|
+
const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(options?.instruction ??
|
|
158
|
+
'Generate an object conforming to the given JSON-schema', schema, page, toolCallHistory, gptClient);
|
|
159
|
+
sharedState.donobuFlowMetadata.resultJsonSchema =
|
|
160
|
+
v4_1.z.toJSONSchema(schema);
|
|
161
|
+
sharedState.donobuFlowMetadata.result = JSON.parse(JSON.stringify(structuredOutputMessage.output));
|
|
162
|
+
await sharedState.persistence.setFlowMetadata(sharedState.donobuFlowMetadata);
|
|
163
|
+
return schema.parse(structuredOutputMessage.output);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
analyzePageText: async (analysisToRun, options) => {
|
|
170
|
+
const result = await page.run(AnalyzePageTextTool_1.AnalyzePageTextTool.NAME, {
|
|
171
|
+
analysisToRun: analysisToRun,
|
|
172
|
+
additionalRelevantContext: options?.additionalContext ?? '',
|
|
173
|
+
}, options);
|
|
174
|
+
return result.forLlm;
|
|
175
|
+
},
|
|
176
|
+
createCookieReport: async (options) => {
|
|
177
|
+
const result = await page.run(CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME, {}, options);
|
|
178
|
+
return result.metadata;
|
|
179
|
+
},
|
|
151
180
|
};
|
|
181
|
+
page.ai = pageAi;
|
|
152
182
|
page.find = (selector, options) => {
|
|
153
183
|
return new SmartSelector_1.SmartSelectorImpl(page, {
|
|
154
184
|
element: [selector, ...(options?.failover ?? [])],
|
|
@@ -216,57 +246,12 @@ Valid options:
|
|
|
216
246
|
throw error;
|
|
217
247
|
}
|
|
218
248
|
};
|
|
219
|
-
page.run = async (toolName, toolParams,
|
|
220
|
-
|
|
221
|
-
if (
|
|
222
|
-
|
|
223
|
-
finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
finalGptClient = gptClientOverride;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
else if (sharedState.gptClient) {
|
|
230
|
-
finalGptClient = sharedState.gptClient;
|
|
249
|
+
page.run = async (toolName, toolParams, options) => {
|
|
250
|
+
const result = await runTool(page, toolName, toolParams, options?.gptClient);
|
|
251
|
+
if (!result.isSuccessful) {
|
|
252
|
+
throw new Error(`${toolName} execution failed: ${JSON.stringify(result, null, 2)}`);
|
|
231
253
|
}
|
|
232
|
-
|
|
233
|
-
const controlPanel = new ControlPanel_1.NoOpControlPanel();
|
|
234
|
-
const clonedParams = toolParams
|
|
235
|
-
? JSON.parse(JSON.stringify(toolParams))
|
|
236
|
-
: {};
|
|
237
|
-
clonedParams.rationale || (clonedParams.rationale = '');
|
|
238
|
-
const envData = await sharedState.donobuStack.flowsManager.buildEnvData(sharedState.donobuFlowMetadata.envVars ?? []);
|
|
239
|
-
const toolCallContext = {
|
|
240
|
-
flowsManager: sharedState.donobuStack.flowsManager,
|
|
241
|
-
envData: envData,
|
|
242
|
-
pageInspector: pageInspector,
|
|
243
|
-
controlPanel: controlPanel,
|
|
244
|
-
persistence: sharedState.persistence,
|
|
245
|
-
gptClient: finalGptClient,
|
|
246
|
-
interactionVisualizer: sharedState.interactionVisualizer,
|
|
247
|
-
proposedToolCalls: [],
|
|
248
|
-
invokedToolCalls: [],
|
|
249
|
-
page: { current: page },
|
|
250
|
-
metadata: sharedState.donobuFlowMetadata,
|
|
251
|
-
toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
|
|
252
|
-
};
|
|
253
|
-
try {
|
|
254
|
-
const tools = await ToolManager_1.ToolManager.allTools();
|
|
255
|
-
const result = await new ToolManager_1.ToolManager(tools).invokeTool(toolCallContext, toolName, clonedParams, false);
|
|
256
|
-
if (!result.outcome.isSuccessful) {
|
|
257
|
-
throw new Error(`${toolName} execution failed: ${JSON.stringify(result, null, 2)}`);
|
|
258
|
-
}
|
|
259
|
-
return result.outcome;
|
|
260
|
-
}
|
|
261
|
-
catch (error) {
|
|
262
|
-
throw error;
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
page.analyzePageText = async (params, gptClientOverride) => {
|
|
266
|
-
return page.run(AnalyzePageTextTool_1.AnalyzePageTextTool.NAME, params, gptClientOverride);
|
|
267
|
-
};
|
|
268
|
-
page.assertPageText = async (params, gptClientOverride) => {
|
|
269
|
-
return page.run(AssertPageTextTool_1.AssertPageTextTool.NAME, params, gptClientOverride);
|
|
254
|
+
return result;
|
|
270
255
|
};
|
|
271
256
|
page.changeTab = async (url) => {
|
|
272
257
|
const result = await page.run(ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME, {
|
|
@@ -284,69 +269,51 @@ Valid options:
|
|
|
284
269
|
}
|
|
285
270
|
throw Error(result.forLlm);
|
|
286
271
|
};
|
|
287
|
-
page.chooseSelectOption = async (params) => {
|
|
288
|
-
return page.run(ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME, params);
|
|
289
|
-
};
|
|
290
|
-
page.clickElement = async (params) => {
|
|
291
|
-
return page.run(ClickTool_1.ClickTool.NAME, params);
|
|
292
|
-
};
|
|
293
|
-
page.createCookieReport = async (gptClientOverride) => {
|
|
294
|
-
return page.run(CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME, {}, gptClientOverride);
|
|
295
|
-
};
|
|
296
|
-
page.extract = async (params, gptClientOverride) => {
|
|
297
|
-
let finalGptClient = null;
|
|
298
|
-
if (gptClientOverride) {
|
|
299
|
-
if (!(gptClientOverride instanceof GptClient_1.GptClient)) {
|
|
300
|
-
finalGptClient = new VercelAiGptClient_1.VercelAiGptClient(gptClientOverride);
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
303
|
-
finalGptClient = gptClientOverride;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
else if (sharedState.gptClient) {
|
|
307
|
-
finalGptClient = sharedState.gptClient;
|
|
308
|
-
}
|
|
309
|
-
if (!finalGptClient) {
|
|
310
|
-
throw Error('Cannot extract an object from page without a GPT client set up!');
|
|
311
|
-
}
|
|
312
|
-
try {
|
|
313
|
-
const toolCallHistory = await sharedState.persistence.getToolCalls(sharedState.donobuFlowMetadata.id);
|
|
314
|
-
const structuredOutputMessage = await (0, DonobuFlow_1.extractFromPage)(params.instruction ??
|
|
315
|
-
'Generate an object conforming to the given JSON-schema', params.schema, page, toolCallHistory, finalGptClient);
|
|
316
|
-
sharedState.donobuFlowMetadata.resultJsonSchema = v4_1.z.toJSONSchema(params.schema);
|
|
317
|
-
sharedState.donobuFlowMetadata.result = JSON.parse(JSON.stringify(structuredOutputMessage.output));
|
|
318
|
-
await sharedState.persistence.setFlowMetadata(sharedState.donobuFlowMetadata);
|
|
319
|
-
return structuredOutputMessage.output;
|
|
320
|
-
}
|
|
321
|
-
catch (error) {
|
|
322
|
-
throw error;
|
|
323
|
-
}
|
|
324
|
-
};
|
|
325
|
-
page.hoverOverElement = async (params) => {
|
|
326
|
-
return page.run(HoverOverElementTool_1.HoverOverElementTool.NAME, params);
|
|
327
|
-
};
|
|
328
|
-
page.inputRandomizedEmailAddress = async (params) => {
|
|
329
|
-
return page.run(InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME, params);
|
|
330
|
-
};
|
|
331
|
-
page.inputText = async (params) => {
|
|
332
|
-
return page.run(InputTextTool_1.InputTextTool.NAME, params);
|
|
333
|
-
};
|
|
334
|
-
page.pressKey = async (params) => {
|
|
335
|
-
return page.run(PressKeyTool_1.PressKeyTool.NAME, params);
|
|
336
|
-
};
|
|
337
272
|
page.runAccessibilityTest = async () => {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
page.scroll = async (params) => {
|
|
341
|
-
return page.run(ScrollPageTool_1.ScrollPageTool.NAME, params);
|
|
342
|
-
};
|
|
343
|
-
page.visuallyAssert = async (params, gptClientOverride) => {
|
|
344
|
-
return page.run(AssertTool_1.AssertTool.NAME, params, gptClientOverride);
|
|
273
|
+
const result = await page.run(RunAccessibilityTestTool_1.RunAccessibilityTestTool.NAME);
|
|
274
|
+
return result.metadata;
|
|
345
275
|
};
|
|
346
276
|
page.once('close', () => {
|
|
347
277
|
void finalizeFlowOnPageClose(sharedState);
|
|
348
278
|
});
|
|
349
279
|
}
|
|
280
|
+
async function runTool(page, toolName, toolParams, gptClient) {
|
|
281
|
+
const clonedParams = toolParams ? JSON.parse(JSON.stringify(toolParams)) : {};
|
|
282
|
+
clonedParams.rationale || (clonedParams.rationale = '');
|
|
283
|
+
const toolCallContext = {
|
|
284
|
+
flowsManager: page._dnb.donobuStack.flowsManager,
|
|
285
|
+
envData: await page._dnb.donobuStack.flowsManager.buildEnvData(page._dnb.donobuFlowMetadata.envVars ?? []),
|
|
286
|
+
pageInspector: new PageInspector_1.PageInspector(),
|
|
287
|
+
controlPanel: new ControlPanel_1.NoOpControlPanel(),
|
|
288
|
+
persistence: page._dnb.persistence,
|
|
289
|
+
gptClient: getGptClient(page, gptClient),
|
|
290
|
+
interactionVisualizer: page._dnb.interactionVisualizer,
|
|
291
|
+
proposedToolCalls: [],
|
|
292
|
+
invokedToolCalls: [],
|
|
293
|
+
page: { current: page },
|
|
294
|
+
metadata: page._dnb.donobuFlowMetadata,
|
|
295
|
+
toolCallId: clonedParams.toolCallId ?? MiscUtils_1.MiscUtils.createAdHocToolCallId(),
|
|
296
|
+
};
|
|
297
|
+
const tools = await ToolManager_1.ToolManager.allTools();
|
|
298
|
+
const result = await new ToolManager_1.ToolManager(tools).invokeTool(toolCallContext, toolName, clonedParams, false);
|
|
299
|
+
return result.outcome;
|
|
300
|
+
}
|
|
301
|
+
function getGptClient(page, gptClient) {
|
|
302
|
+
if (gptClient) {
|
|
303
|
+
if (!(gptClient instanceof GptClient_1.GptClient)) {
|
|
304
|
+
return new VercelAiGptClient_1.VercelAiGptClient(gptClient);
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
return gptClient;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
else if (page._dnb.gptClient) {
|
|
311
|
+
return page._dnb.gptClient;
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
return null;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
350
317
|
async function buttonUpGptClient(gptClient) {
|
|
351
318
|
try {
|
|
352
319
|
if (!gptClient) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createDonobuExtendedPage.js","sourceRoot":"","sources":["../../src/lib/createDonobuExtendedPage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createDonobuExtendedPage.js","sourceRoot":"","sources":["../../src/lib/createDonobuExtendedPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProposedToolCall } from '../../models/ProposedToolCall';
|
|
2
2
|
/**
|
|
3
|
-
* Cache key used to identify a unique `page.ai` invocation. Keep this structure
|
|
3
|
+
* Cache key used to identify a unique `page.ai.act(...)` invocation. Keep this structure
|
|
4
4
|
* aligned with the code generator so replayed runs remain deterministic.
|
|
5
5
|
*/
|
|
6
6
|
export type PageAiCacheKey = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeGenerator.d.ts","sourceRoot":"","sources":["../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"CodeGenerator.d.ts","sourceRoot":"","sources":["../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AA0CnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,8EAA8E;IACjE,yBAAyB,CACpC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC;IA2GlB,8EAA8E;IACjE,2BAA2B,CACtC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC;IAkGlB;;OAEG;IACU,eAAe,CAC1B,kBAAkB,EAAE,KAAK,CAAC;QACxB,QAAQ,EAAE,YAAY,CAAC;QACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;KAC/B,CAAC,EACF,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;YAqDd,6BAA6B;IAwKpC,kBAAkB,CACvB,kBAAkB,EAAE,KAAK,CAAC;QACxB,QAAQ,EAAE,YAAY,CAAC;QACvB,SAAS,EAAE,gBAAgB,EAAE,CAAC;KAC/B,CAAC,GACD,mBAAmB;IAwBtB,OAAO,CAAC,cAAc;IAkBtB;;;OAGG;IACH,OAAO,CAAC,uCAAuC;IAwK/C,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;YACW,wBAAwB;IAuDtC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;YACW,iBAAiB;IAqB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,OAAO,CAAC,eAAe;YAKT,YAAY;IAY1B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,mBAAmB;IAoB3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAoBrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;WACiB,wBAAwB,CAC1C,SAAS,EAAE,QAAQ,EAAE,EACrB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,EAAE,CAAC;CA2C/B"}
|
|
@@ -37,7 +37,6 @@ exports.CodeGenerator = void 0;
|
|
|
37
37
|
const fs = __importStar(require("fs"));
|
|
38
38
|
const cacheEntryBuilder_1 = require("../lib/pageAi/cacheEntryBuilder");
|
|
39
39
|
const AnalyzePageTextTool_1 = require("../tools/AnalyzePageTextTool");
|
|
40
|
-
const AssertPageTextTool_1 = require("../tools/AssertPageTextTool");
|
|
41
40
|
const AssertPageTool_1 = require("../tools/AssertPageTool");
|
|
42
41
|
const AssertTool_1 = require("../tools/AssertTool");
|
|
43
42
|
const ChangeWebBrowserTabTool_1 = require("../tools/ChangeWebBrowserTabTool");
|
|
@@ -139,7 +138,9 @@ class CodeGenerator {
|
|
|
139
138
|
.join('\n');
|
|
140
139
|
const resultJson = flowMetadata.resultJsonSchema
|
|
141
140
|
? `// Extract an object from the page using the following JSON-schema.
|
|
142
|
-
const extractedObject = await page.extract(
|
|
141
|
+
const extractedObject = await page.ai.extract(
|
|
142
|
+
jsonSchemaToZod(${JSON.stringify(flowMetadata.resultJsonSchema)})
|
|
143
|
+
);
|
|
143
144
|
testInfo.attach('extracted-object', { body: JSON.stringify(extractedObject), contentType: 'application/json' });`
|
|
144
145
|
: '';
|
|
145
146
|
const needsExpectImport = toolCalls.some((toolCall) => toolCall.name === AssertPageTool_1.AssertPageTool.NAME);
|
|
@@ -149,7 +150,9 @@ testInfo.attach('extracted-object', { body: JSON.stringify(extractedObject), con
|
|
|
149
150
|
${gptSetupNote}*/`
|
|
150
151
|
: '';
|
|
151
152
|
const script = `${preamble}
|
|
152
|
-
import { test${needsExpectImport ? ', expect' : ''}${needsJsonSchemaToZodImport ? ', jsonSchemaToZod' : ''} } from 'donobu';${useStorageState
|
|
153
|
+
import { test${needsExpectImport ? ', expect' : ''}${needsJsonSchemaToZodImport ? ', jsonSchemaToZod' : ''} } from 'donobu';${useStorageState
|
|
154
|
+
? "\nimport { getBrowserStorageStateFixture } from 'donobu';"
|
|
155
|
+
: ''}
|
|
153
156
|
|
|
154
157
|
const title = '${testName}';
|
|
155
158
|
const details = ${testDetails};
|
|
@@ -162,7 +165,7 @@ ${resultJson}
|
|
|
162
165
|
}
|
|
163
166
|
/** Creates a Node.js Microsoft Playwright script to replay the given flow. */
|
|
164
167
|
async getFlowAsAiPlaywrightScript(flowMetadata, toolCalls) {
|
|
165
|
-
const gptSetupNote = ` * This test replays a recorded Donobu flow via \`page.ai\` using the cached
|
|
168
|
+
const gptSetupNote = ` * This test replays a recorded Donobu flow via \`page.ai.act(...)\` using the cached
|
|
166
169
|
* tool calls stored alongside this spec in \`donobu.json\`. If the cache entry
|
|
167
170
|
* is missing or the parameters change, the run falls back to autonomous mode
|
|
168
171
|
* and will require a GPT API key (e.g. OPENAI_API_KEY, ANTHROPIC_API_KEY, or
|
|
@@ -212,8 +215,8 @@ ${resultJson}
|
|
|
212
215
|
? `{\n${optionsLines.map((line) => ` ${line}`).join(',\n')}\n }`
|
|
213
216
|
: '';
|
|
214
217
|
const aiCallExpression = optionsLines.length > 0
|
|
215
|
-
? `page.ai(\`${sanitizedInstruction}\`, ${aiOptionsLiteral})`
|
|
216
|
-
: `page.ai(\`${sanitizedInstruction}\`)`;
|
|
218
|
+
? `page.ai.act(\`${sanitizedInstruction}\`, ${aiOptionsLiteral})`
|
|
219
|
+
: `page.ai.act(\`${sanitizedInstruction}\`)`;
|
|
217
220
|
const needsTestInfo = flowMetadata.resultJsonSchema !== null;
|
|
218
221
|
const cacheComment = ' // Cached tool calls for this flow live in donobu.json next to this spec.\n';
|
|
219
222
|
const aiInvocation = needsTestInfo
|
|
@@ -451,11 +454,21 @@ ${pullRequestCreationSection}`;
|
|
|
451
454
|
const serializedParams = JSON.stringify(rawParams, null, 2);
|
|
452
455
|
switch (proposedToolCall.name) {
|
|
453
456
|
case AssertTool_1.AssertTool.NAME: {
|
|
454
|
-
|
|
457
|
+
const options = {
|
|
458
|
+
...(rawParams.retries > 0 ? { retries: rawParams.retries } : {}),
|
|
459
|
+
...(rawParams.retries > 0 && rawParams.retryWaitSeconds > 0
|
|
460
|
+
? { retryWaitSeconds: rawParams.retryWaitSeconds }
|
|
461
|
+
: {}),
|
|
462
|
+
};
|
|
463
|
+
const serializedOptions = Object.keys(options).length > 0
|
|
464
|
+
? `,${JSON.stringify(options, null, 2)}`
|
|
465
|
+
: '';
|
|
466
|
+
return `${rationale}await page.ai.assertPage(
|
|
467
|
+
${JSON.stringify(rawParams.assertionToTestFor)}${serializedOptions});`;
|
|
455
468
|
}
|
|
456
469
|
case ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME: {
|
|
457
470
|
const url = ChangeWebBrowserTabTool_1.ChangeWebBrowserTabCoreSchema.parse(proposedToolCall.parameters);
|
|
458
|
-
return `${rationale}page = await page.changeTab(
|
|
471
|
+
return `${rationale}page = await page.changeTab(${JSON.stringify(url.tabUrl)});`;
|
|
459
472
|
}
|
|
460
473
|
case ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME: {
|
|
461
474
|
const find = this.parseFindCall(rawParams);
|
|
@@ -466,7 +479,7 @@ ${pullRequestCreationSection}`;
|
|
|
466
479
|
const find = this.parseFindCall(rawParams);
|
|
467
480
|
return `${rationale}${find}.click()`;
|
|
468
481
|
}
|
|
469
|
-
case GoForwardOrBackTool_1.GoForwardOrBackTool.NAME:
|
|
482
|
+
case GoForwardOrBackTool_1.GoForwardOrBackTool.NAME: {
|
|
470
483
|
if (rawParams.direction === 'FORWARD') {
|
|
471
484
|
return `${rationale}await page.goForward();`;
|
|
472
485
|
}
|
|
@@ -476,8 +489,10 @@ ${pullRequestCreationSection}`;
|
|
|
476
489
|
else {
|
|
477
490
|
throw new Error(`Invalid ${GoForwardOrBackTool_1.GoForwardOrBackTool.NAME} params: ${serializedParams}`);
|
|
478
491
|
}
|
|
479
|
-
|
|
480
|
-
|
|
492
|
+
}
|
|
493
|
+
case GoToWebpageTool_1.GoToWebpageTool.NAME: {
|
|
494
|
+
return `${rationale}await page.goto(${JSON.stringify(rawParams.url)});`;
|
|
495
|
+
}
|
|
481
496
|
case HoverOverElementTool_1.HoverOverElementTool.NAME: {
|
|
482
497
|
const find = this.parseFindCall(rawParams);
|
|
483
498
|
return `${rationale}${find}.hover()`;
|
|
@@ -501,64 +516,79 @@ ${pullRequestCreationSection}`;
|
|
|
501
516
|
const { selector: _selector, key } = rawParams;
|
|
502
517
|
return `${rationale}${find}.pressKey(${JSON.stringify(key)})`;
|
|
503
518
|
}
|
|
504
|
-
case ReloadPageTool_1.ReloadPageTool.NAME:
|
|
519
|
+
case ReloadPageTool_1.ReloadPageTool.NAME: {
|
|
505
520
|
return `${rationale}await page.reload();`;
|
|
506
|
-
|
|
521
|
+
}
|
|
522
|
+
case ScrollPageTool_1.ScrollPageTool.NAME: {
|
|
507
523
|
const find = this.parseFindCall(rawParams);
|
|
508
524
|
const { selector: _selector, direction, maxScroll } = rawParams;
|
|
509
525
|
return `${rationale}${find}.scroll(
|
|
510
526
|
${JSON.stringify(direction)},
|
|
511
527
|
${maxScroll ? JSON.stringify({ maxScroll }) : ''})`;
|
|
512
|
-
|
|
528
|
+
}
|
|
529
|
+
case WaitTool_1.WaitTool.NAME: {
|
|
513
530
|
return `${rationale}await page.waitForTimeout(${rawParams.seconds * 1000});`;
|
|
531
|
+
}
|
|
514
532
|
case AssertPageTool_1.AssertPageTool.NAME: {
|
|
515
533
|
const assertionType = rawParams.type;
|
|
516
534
|
const expected = rawParams.expected;
|
|
517
535
|
const isRegex = rawParams.isRegex || false;
|
|
518
536
|
switch (assertionType) {
|
|
519
|
-
case 'title':
|
|
537
|
+
case 'title': {
|
|
520
538
|
if (isRegex) {
|
|
521
539
|
return `${rationale}await expect(page).toHaveTitle(new RegExp(${JSON.stringify(expected)}));`;
|
|
522
540
|
}
|
|
523
541
|
else {
|
|
524
542
|
return `${rationale}await expect(page).toHaveTitle('${expected}');`;
|
|
525
543
|
}
|
|
526
|
-
|
|
544
|
+
}
|
|
545
|
+
case 'url': {
|
|
527
546
|
if (isRegex) {
|
|
528
547
|
return `${rationale}await expect(page).toHaveURL(new RegExp(${JSON.stringify(expected)}));`;
|
|
529
548
|
}
|
|
530
549
|
else {
|
|
531
550
|
return `${rationale}await expect(page).toHaveURL('${expected}');`;
|
|
532
551
|
}
|
|
533
|
-
|
|
552
|
+
}
|
|
553
|
+
case 'content': {
|
|
534
554
|
if (isRegex) {
|
|
535
555
|
return `${rationale}await expect(page.locator('body')).toContainText(new RegExp(${JSON.stringify(expected)}));`;
|
|
536
556
|
}
|
|
537
557
|
else {
|
|
538
558
|
return `${rationale}await expect(page.getByText('${expected}')).toBeVisible();`;
|
|
539
559
|
}
|
|
540
|
-
|
|
560
|
+
}
|
|
561
|
+
default: {
|
|
541
562
|
// Fallback to the generic tool call if unknown type
|
|
542
|
-
return `${rationale}await page.${proposedToolCall.name}(
|
|
563
|
+
return `${rationale}await page.${proposedToolCall.name}(
|
|
564
|
+
${hasNonEmptyParameters ? JSON.stringify({ type: assertionType, expected, isRegex }, null, 2) : ''});`;
|
|
565
|
+
}
|
|
543
566
|
}
|
|
544
567
|
}
|
|
545
|
-
case RememberPageTextTool_1.RememberPageTextTool.NAME:
|
|
568
|
+
case RememberPageTextTool_1.RememberPageTextTool.NAME: {
|
|
546
569
|
delete rawParams.text;
|
|
547
570
|
const updatedSerializedParams = JSON.stringify(rawParams, null, 2);
|
|
548
571
|
return `${rationale}await page.run('${proposedToolCall.name}', ${updatedSerializedParams});`;
|
|
549
|
-
|
|
550
|
-
case AnalyzePageTextTool_1.AnalyzePageTextTool.NAME:
|
|
551
|
-
|
|
552
|
-
|
|
572
|
+
}
|
|
573
|
+
case AnalyzePageTextTool_1.AnalyzePageTextTool.NAME: {
|
|
574
|
+
return `${rationale}await page.ai.analyzePageText(
|
|
575
|
+
${JSON.stringify(rawParams.analysisToRun)},
|
|
576
|
+
${JSON.stringify({ additionalContext: rawParams.additionalRelevantContext })})`;
|
|
577
|
+
}
|
|
553
578
|
case RunAccessibilityTestTool_1.RunAccessibilityTestTool.NAME: {
|
|
554
|
-
return `${rationale}await page
|
|
579
|
+
return `${rationale}await page.runAccessibilityTest();`;
|
|
555
580
|
}
|
|
556
|
-
|
|
581
|
+
case CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME: {
|
|
582
|
+
return `${rationale}await page.ai.createCookieReport();`;
|
|
583
|
+
}
|
|
584
|
+
// All other tools delegate to the general 'run' method.
|
|
585
|
+
default: {
|
|
557
586
|
const toolName = proposedToolCall.name;
|
|
558
587
|
const toolCallScript = hasNonEmptyParameters
|
|
559
|
-
? `${rationale}await page.run(
|
|
560
|
-
: `${rationale}await page.run(
|
|
588
|
+
? `${rationale}await page.run(${JSON.stringify(toolName)}, ${serializedParams});`
|
|
589
|
+
: `${rationale}await page.run(${JSON.stringify(toolName)});`;
|
|
561
590
|
return toolCallScript;
|
|
591
|
+
}
|
|
562
592
|
}
|
|
563
593
|
}
|
|
564
594
|
generateGitIgnore() {
|