donobu 3.5.5 → 3.6.1
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/GptConfigsApi.d.ts.map +1 -1
- package/dist/apis/GptConfigsApi.js +0 -2
- package/dist/apis/GptConfigsApi.js.map +1 -1
- package/dist/assets/donobu-namespace.js +54 -0
- package/dist/assets/interactive-elements-tracker.js +9 -9
- package/dist/assets/page-interactions-tracker.js +21 -22
- package/dist/assets/smart-selector-generator.js +11 -13
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +1 -0
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/envVars.d.ts +0 -2
- package/dist/envVars.d.ts.map +1 -1
- package/dist/envVars.js +0 -4
- package/dist/envVars.js.map +1 -1
- package/dist/esm/apis/GptConfigsApi.d.ts.map +1 -1
- package/dist/esm/apis/GptConfigsApi.js +0 -2
- package/dist/esm/apis/GptConfigsApi.js.map +1 -1
- package/dist/esm/assets/donobu-namespace.js +54 -0
- package/dist/esm/assets/interactive-elements-tracker.js +9 -9
- package/dist/esm/assets/page-interactions-tracker.js +21 -22
- package/dist/esm/assets/smart-selector-generator.js +11 -13
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +1 -0
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/envVars.d.ts +0 -2
- package/dist/esm/envVars.d.ts.map +1 -1
- package/dist/esm/envVars.js +0 -4
- package/dist/esm/envVars.js.map +1 -1
- package/dist/esm/lib/PageAi.d.ts +1 -1
- package/dist/esm/lib/PageAi.js +1 -1
- package/dist/esm/lib/PageAi.js.map +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js +1 -1
- package/dist/esm/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.d.ts +7 -61
- package/dist/esm/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/esm/lib/fixtures/gptClients.js +48 -160
- package/dist/esm/lib/fixtures/gptClients.js.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.d.ts +4 -2
- package/dist/esm/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js +1 -1
- package/dist/esm/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/esm/managers/AdminApiController.d.ts +1 -5
- package/dist/esm/managers/AdminApiController.d.ts.map +1 -1
- package/dist/esm/managers/AdminApiController.js +0 -13
- package/dist/esm/managers/AdminApiController.js.map +1 -1
- package/dist/esm/managers/AgentsManager.d.ts +1 -17
- package/dist/esm/managers/AgentsManager.d.ts.map +1 -1
- package/dist/esm/managers/AgentsManager.js +1 -64
- package/dist/esm/managers/AgentsManager.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts +13 -40
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +45 -316
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/DonobuStack.d.ts +4 -2
- package/dist/esm/managers/DonobuStack.d.ts.map +1 -1
- package/dist/esm/managers/DonobuStack.js +3 -3
- package/dist/esm/managers/DonobuStack.js.map +1 -1
- package/dist/esm/managers/EnvDataManager.d.ts +11 -0
- package/dist/esm/managers/EnvDataManager.d.ts.map +1 -1
- package/dist/esm/managers/EnvDataManager.js +20 -0
- package/dist/esm/managers/EnvDataManager.js.map +1 -1
- package/dist/esm/managers/FlowCatalog.d.ts +29 -0
- package/dist/esm/managers/FlowCatalog.d.ts.map +1 -0
- package/dist/esm/managers/FlowCatalog.js +153 -0
- package/dist/esm/managers/FlowCatalog.js.map +1 -0
- package/dist/esm/managers/FlowDependencyResolver.d.ts +20 -0
- package/dist/esm/managers/FlowDependencyResolver.d.ts.map +1 -0
- package/dist/esm/managers/FlowDependencyResolver.js +101 -0
- package/dist/esm/managers/FlowDependencyResolver.js.map +1 -0
- package/dist/esm/managers/FlowRuntime.d.ts +18 -0
- package/dist/esm/managers/FlowRuntime.d.ts.map +1 -0
- package/dist/esm/managers/FlowRuntime.js +33 -0
- package/dist/esm/managers/FlowRuntime.js.map +1 -0
- package/dist/esm/managers/GptConfigsManager.d.ts +1 -8
- package/dist/esm/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/esm/managers/GptConfigsManager.js +1 -177
- package/dist/esm/managers/GptConfigsManager.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts +1 -1
- package/dist/esm/managers/PageInspector.js +1 -1
- package/dist/esm/models/FlowHandle.d.ts +12 -0
- package/dist/esm/models/FlowHandle.d.ts.map +1 -0
- package/dist/esm/models/FlowHandle.js +3 -0
- package/dist/esm/models/FlowHandle.js.map +1 -0
- package/dist/esm/tools/InputRandomizedEmailAddressTool.js +2 -2
- package/dist/esm/utils/Logger.d.ts +1 -0
- package/dist/esm/utils/Logger.d.ts.map +1 -1
- package/dist/esm/utils/Logger.js +100 -12
- package/dist/esm/utils/Logger.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts +4 -0
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +5 -0
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/lib/PageAi.d.ts +1 -1
- package/dist/lib/PageAi.js +1 -1
- package/dist/lib/PageAi.js.map +1 -1
- package/dist/lib/createDonobuExtendedPage.js +1 -1
- package/dist/lib/createDonobuExtendedPage.js.map +1 -1
- package/dist/lib/fixtures/gptClients.d.ts +7 -61
- package/dist/lib/fixtures/gptClients.d.ts.map +1 -1
- package/dist/lib/fixtures/gptClients.js +48 -160
- package/dist/lib/fixtures/gptClients.js.map +1 -1
- package/dist/lib/utils/donobuTestStack.d.ts +4 -2
- package/dist/lib/utils/donobuTestStack.d.ts.map +1 -1
- package/dist/lib/utils/donobuTestStack.js +1 -1
- package/dist/lib/utils/donobuTestStack.js.map +1 -1
- package/dist/managers/AdminApiController.d.ts +1 -5
- package/dist/managers/AdminApiController.d.ts.map +1 -1
- package/dist/managers/AdminApiController.js +0 -13
- package/dist/managers/AdminApiController.js.map +1 -1
- package/dist/managers/AgentsManager.d.ts +1 -17
- package/dist/managers/AgentsManager.d.ts.map +1 -1
- package/dist/managers/AgentsManager.js +1 -64
- package/dist/managers/AgentsManager.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts +13 -40
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +45 -316
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/DonobuStack.d.ts +4 -2
- package/dist/managers/DonobuStack.d.ts.map +1 -1
- package/dist/managers/DonobuStack.js +3 -3
- package/dist/managers/DonobuStack.js.map +1 -1
- package/dist/managers/EnvDataManager.d.ts +11 -0
- package/dist/managers/EnvDataManager.d.ts.map +1 -1
- package/dist/managers/EnvDataManager.js +20 -0
- package/dist/managers/EnvDataManager.js.map +1 -1
- package/dist/managers/FlowCatalog.d.ts +29 -0
- package/dist/managers/FlowCatalog.d.ts.map +1 -0
- package/dist/managers/FlowCatalog.js +153 -0
- package/dist/managers/FlowCatalog.js.map +1 -0
- package/dist/managers/FlowDependencyResolver.d.ts +20 -0
- package/dist/managers/FlowDependencyResolver.d.ts.map +1 -0
- package/dist/managers/FlowDependencyResolver.js +101 -0
- package/dist/managers/FlowDependencyResolver.js.map +1 -0
- package/dist/managers/FlowRuntime.d.ts +18 -0
- package/dist/managers/FlowRuntime.d.ts.map +1 -0
- package/dist/managers/FlowRuntime.js +33 -0
- package/dist/managers/FlowRuntime.js.map +1 -0
- package/dist/managers/GptConfigsManager.d.ts +1 -8
- package/dist/managers/GptConfigsManager.d.ts.map +1 -1
- package/dist/managers/GptConfigsManager.js +1 -177
- package/dist/managers/GptConfigsManager.js.map +1 -1
- package/dist/managers/PageInspector.d.ts +1 -1
- package/dist/managers/PageInspector.js +1 -1
- package/dist/models/FlowHandle.d.ts +12 -0
- package/dist/models/FlowHandle.d.ts.map +1 -0
- package/dist/models/FlowHandle.js +3 -0
- package/dist/models/FlowHandle.js.map +1 -0
- package/dist/tools/InputRandomizedEmailAddressTool.js +2 -2
- package/dist/utils/Logger.d.ts +1 -0
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +100 -12
- package/dist/utils/Logger.js.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts +4 -0
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +5 -0
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
- package/dist/apis/SpecialFlowsApi.d.ts +0 -20
- package/dist/apis/SpecialFlowsApi.d.ts.map +0 -1
- package/dist/apis/SpecialFlowsApi.js +0 -466
- package/dist/apis/SpecialFlowsApi.js.map +0 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts +0 -20
- package/dist/esm/apis/SpecialFlowsApi.d.ts.map +0 -1
- package/dist/esm/apis/SpecialFlowsApi.js +0 -466
- package/dist/esm/apis/SpecialFlowsApi.js.map +0 -1
|
@@ -1,466 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SpecialFlowsApi = void 0;
|
|
4
|
-
const v4_1 = require("zod/v4");
|
|
5
|
-
const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueException");
|
|
6
|
-
const ChooseSelectOptionTool_1 = require("../tools/ChooseSelectOptionTool");
|
|
7
|
-
const ClickTool_1 = require("../tools/ClickTool");
|
|
8
|
-
const CreateBrowserCookieReportTool_1 = require("../tools/CreateBrowserCookieReportTool");
|
|
9
|
-
const DetectBrokenLinksTool_1 = require("../tools/DetectBrokenLinksTool");
|
|
10
|
-
const GoForwardOrBackTool_1 = require("../tools/GoForwardOrBackTool");
|
|
11
|
-
const GoToWebpageTool_1 = require("../tools/GoToWebpageTool");
|
|
12
|
-
const InputRandomizedEmailAddressTool_1 = require("../tools/InputRandomizedEmailAddressTool");
|
|
13
|
-
const InputTextTool_1 = require("../tools/InputTextTool");
|
|
14
|
-
const MarkObjectiveCompleteTool_1 = require("../tools/MarkObjectiveCompleteTool");
|
|
15
|
-
const MarkObjectiveNotCompletableTool_1 = require("../tools/MarkObjectiveNotCompletableTool");
|
|
16
|
-
const PressKeyTool_1 = require("../tools/PressKeyTool");
|
|
17
|
-
const ScrollPageTool_1 = require("../tools/ScrollPageTool");
|
|
18
|
-
const WaitTool_1 = require("../tools/WaitTool");
|
|
19
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
20
|
-
const Logger_1 = require("../utils/Logger");
|
|
21
|
-
/**
|
|
22
|
-
* This class defines the API for special flows (i.e. flows that are essentially
|
|
23
|
-
* pre-defined and have a specific purpose).
|
|
24
|
-
*/
|
|
25
|
-
class SpecialFlowsApi {
|
|
26
|
-
constructor(donobuFlowsManager) {
|
|
27
|
-
this.donobuFlowsManager = donobuFlowsManager;
|
|
28
|
-
}
|
|
29
|
-
async analyzeCookieConsent(req, res) {
|
|
30
|
-
const parsedBody = v4_1.z.object({ url: v4_1.z.string() }).parse(req.body);
|
|
31
|
-
const overallObjective = `
|
|
32
|
-
You are a web-browsing QA agent verifying a website's cookie banner behavior and compliance. Follow the steps below carefully.
|
|
33
|
-
If any step (such as rejecting cookies) is not possible due to the absence of a cookie banner or a lack of “Reject”/“Customize” options,
|
|
34
|
-
document your observations but do not conclude “objective not completable.” Instead, continue with the process and produce a final report.
|
|
35
|
-
|
|
36
|
-
1. Initial Cookie Report:
|
|
37
|
-
- After the webpage initially loads, but before interacting with any cookie banner, generate a comprehensive cookie report.
|
|
38
|
-
- This report should capture all cookies present in the browser at this moment.
|
|
39
|
-
|
|
40
|
-
2. Check for Cookie Banner:
|
|
41
|
-
- If a cookie banner is present:
|
|
42
|
-
- Look for a “Reject” option.
|
|
43
|
-
- If found, select “Reject” (reject all non-essential cookies).
|
|
44
|
-
- If there is no explicit “Reject” option, select the most restrictive choice (e.g., “Customize” and deselect all possible categories).
|
|
45
|
-
- Document the absence of a direct “Reject” button as a potential compliance concern.
|
|
46
|
-
- Proceed to Step 3.
|
|
47
|
-
- If no cookie banner is present:
|
|
48
|
-
- Document the absence of a banner as a potential compliance concern.
|
|
49
|
-
- For the relevant schema fields, set:
|
|
50
|
-
- cookieBannerDisplayed = false
|
|
51
|
-
- rejectOptionAvailable = false
|
|
52
|
-
- retainedCookies = [] (empty list, assuming no cookies are added after rejecting).
|
|
53
|
-
- Skip Step 3 and proceed directly to Step 4.
|
|
54
|
-
|
|
55
|
-
3. Post-Rejection Cookie Report:
|
|
56
|
-
- Generate a second cookie report after you have selected “Reject” or the most restrictive settings in the cookie banner.
|
|
57
|
-
- This second report helps determine if any non-essential cookies remain.
|
|
58
|
-
|
|
59
|
-
4. Analysis & Summary:
|
|
60
|
-
- Compare the two cookie reports (initial vs. post-rejection).
|
|
61
|
-
- If a second report was generated (i.e., a cookie banner existed):
|
|
62
|
-
- Verify whether only strictly necessary cookies remain post-rejection.
|
|
63
|
-
- Identify any non-essential cookies that were retained and flag them as potential compliance issues.
|
|
64
|
-
- Document whether a “Reject” option was available and whether the site appears to respect the user’s preferences.
|
|
65
|
-
- If no banner was present:
|
|
66
|
-
- Note that no second report was generated.
|
|
67
|
-
- Document the absence of a cookie banner as a compliance concern, since users could not explicitly reject non-essential cookies.
|
|
68
|
-
|
|
69
|
-
5. End the Flow Gracefully:
|
|
70
|
-
- Regardless of whether a cookie banner was found, finalize your findings in a clear, structured format.
|
|
71
|
-
- Do not mark the objective as “not completable” or abruptly end the flow just because the banner was missing.
|
|
72
|
-
- Instead, complete all the documentation steps and conclude with a summary of potential compliance issues and overall observations.`;
|
|
73
|
-
const resultJsonSchema = {
|
|
74
|
-
type: 'object',
|
|
75
|
-
required: [
|
|
76
|
-
'cookieBannerDisplayed',
|
|
77
|
-
'potentialCookieIssues',
|
|
78
|
-
'rejectOptionAvailable',
|
|
79
|
-
'initialCookies',
|
|
80
|
-
'retainedCookies',
|
|
81
|
-
],
|
|
82
|
-
additionalProperties: false,
|
|
83
|
-
properties: {
|
|
84
|
-
cookieBannerDisplayed: {
|
|
85
|
-
type: 'boolean',
|
|
86
|
-
description: 'Whether a cookie banner was displayed on the page.',
|
|
87
|
-
},
|
|
88
|
-
potentialCookieIssues: {
|
|
89
|
-
type: 'array',
|
|
90
|
-
items: {
|
|
91
|
-
type: 'string',
|
|
92
|
-
},
|
|
93
|
-
description: 'The list of potential cookie issues (if any).\nExamples:\n- A marketing/advertising cookies being retained.\n- Lack of a "Reject" option in the cookie banner.\n- No cookie banner present (if expected).\n- Other indications of non-compliance with regional cookie laws.',
|
|
94
|
-
},
|
|
95
|
-
rejectOptionAvailable: {
|
|
96
|
-
type: 'boolean',
|
|
97
|
-
description: 'Indicates whether the cookie banner had a "Reject" option.\n- true: Banner provided a "Reject" option.\n- false: Banner lacked a "Reject" option.',
|
|
98
|
-
},
|
|
99
|
-
initialCookies: {
|
|
100
|
-
type: 'array',
|
|
101
|
-
items: {
|
|
102
|
-
type: 'string',
|
|
103
|
-
},
|
|
104
|
-
description: 'Cookies discovered immediately after page load, before any user interaction.',
|
|
105
|
-
},
|
|
106
|
-
retainedCookies: {
|
|
107
|
-
type: 'array',
|
|
108
|
-
items: {
|
|
109
|
-
type: 'string',
|
|
110
|
-
},
|
|
111
|
-
description: 'Cookies that remain after attempting to reject or minimize non-essential cookies.',
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
const flowParams = {
|
|
116
|
-
targetWebsite: parsedBody.url,
|
|
117
|
-
overallObjective: overallObjective,
|
|
118
|
-
maxToolCalls: 10,
|
|
119
|
-
defaultMessageDuration: 0,
|
|
120
|
-
initialRunMode: 'AUTONOMOUS',
|
|
121
|
-
isControlPanelEnabled: false,
|
|
122
|
-
allowedTools: [
|
|
123
|
-
CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME,
|
|
124
|
-
GoToWebpageTool_1.GoToWebpageTool.NAME,
|
|
125
|
-
ClickTool_1.ClickTool.NAME,
|
|
126
|
-
MarkObjectiveNotCompletableTool_1.MarkObjectiveNotCompletableTool.NAME,
|
|
127
|
-
MarkObjectiveCompleteTool_1.MarkObjectiveCompleteTool.NAME,
|
|
128
|
-
WaitTool_1.WaitTool.NAME,
|
|
129
|
-
],
|
|
130
|
-
toolCallsOnStart: [
|
|
131
|
-
{
|
|
132
|
-
name: GoToWebpageTool_1.GoToWebpageTool.NAME,
|
|
133
|
-
parameters: {
|
|
134
|
-
url: parsedBody.url,
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
name: WaitTool_1.WaitTool.NAME,
|
|
139
|
-
parameters: {
|
|
140
|
-
seconds: 3,
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
name: CreateBrowserCookieReportTool_1.CreateBrowserCookieReportTool.NAME,
|
|
145
|
-
parameters: {},
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
resultJsonSchema: resultJsonSchema,
|
|
149
|
-
};
|
|
150
|
-
const flowHandle = await this.donobuFlowsManager.createFlow(flowParams);
|
|
151
|
-
const isAsync = req.query.async === 'true';
|
|
152
|
-
if (isAsync) {
|
|
153
|
-
res.json({ id: flowHandle.donobuFlow.metadata.id });
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
await this.wrapUp(res, flowHandle);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
async detectBrokenLinks(req, res) {
|
|
160
|
-
const parsedBody = v4_1.z.object({ url: v4_1.z.string() }).parse(req.body);
|
|
161
|
-
const flowParams = {
|
|
162
|
-
targetWebsite: parsedBody.url,
|
|
163
|
-
defaultMessageDuration: 0,
|
|
164
|
-
initialRunMode: 'DETERMINISTIC',
|
|
165
|
-
isControlPanelEnabled: false,
|
|
166
|
-
toolCallsOnStart: [
|
|
167
|
-
{
|
|
168
|
-
name: GoToWebpageTool_1.GoToWebpageTool.NAME,
|
|
169
|
-
parameters: {
|
|
170
|
-
url: parsedBody.url,
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
name: DetectBrokenLinksTool_1.DetectBrokenLinksTool.NAME,
|
|
175
|
-
parameters: { captureScreenshots: false },
|
|
176
|
-
},
|
|
177
|
-
],
|
|
178
|
-
};
|
|
179
|
-
const flowHandle = await this.donobuFlowsManager.createFlow(flowParams);
|
|
180
|
-
res.json({ id: flowHandle.donobuFlow.metadata.id });
|
|
181
|
-
}
|
|
182
|
-
async extractPublicFacebookEntityData(req, res) {
|
|
183
|
-
const httpBodyParams = v4_1.z
|
|
184
|
-
.object({
|
|
185
|
-
facebookEntityName: v4_1.z
|
|
186
|
-
.string()
|
|
187
|
-
.optional()
|
|
188
|
-
.describe("The name of the entity's public Facebook page used in its URL. For example, passing a value of 'TheCocaColaCo' would cause Donobu to inspect https://www.facebook.com/TheCocaColaCo."),
|
|
189
|
-
facebookEntityUrl: v4_1.z
|
|
190
|
-
.string()
|
|
191
|
-
.optional()
|
|
192
|
-
.describe("The URL of the entity's public Facebook page. For example, https://www.facebook.com/TheCocaColaCo."),
|
|
193
|
-
})
|
|
194
|
-
.parse(req.body);
|
|
195
|
-
const overallObjective = `Source Facebook transparency data for ${httpBodyParams.facebookEntityName || httpBodyParams.facebookEntityUrl}`;
|
|
196
|
-
const flowParams = {
|
|
197
|
-
targetWebsite: 'https://www.facebook.com',
|
|
198
|
-
overallObjective: overallObjective,
|
|
199
|
-
maxToolCalls: 1,
|
|
200
|
-
defaultMessageDuration: 0,
|
|
201
|
-
initialRunMode: 'AUTONOMOUS',
|
|
202
|
-
isControlPanelEnabled: false,
|
|
203
|
-
allowedTools: ['extractPublicFacebookEntityData'],
|
|
204
|
-
toolCallsOnStart: [
|
|
205
|
-
{
|
|
206
|
-
name: 'extractPublicFacebookEntityData',
|
|
207
|
-
parameters: httpBodyParams,
|
|
208
|
-
},
|
|
209
|
-
],
|
|
210
|
-
};
|
|
211
|
-
const flowHandle = await this.donobuFlowsManager.createFlow(flowParams);
|
|
212
|
-
await this.wrapUp(res, flowHandle);
|
|
213
|
-
}
|
|
214
|
-
async extractPaymentProviderData(req, res) {
|
|
215
|
-
const parsedBody = v4_1.z.object({ website: v4_1.z.string() }).parse(req.body);
|
|
216
|
-
const url = this.parseUrl(parsedBody.website);
|
|
217
|
-
if (!url) {
|
|
218
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('website', url);
|
|
219
|
-
}
|
|
220
|
-
const overallObjective = `Find the payments provider for ${url}
|
|
221
|
-
|
|
222
|
-
Add a paid product to the shopping cart.
|
|
223
|
-
|
|
224
|
-
Proceed to the checkout page (do not use Paypal).
|
|
225
|
-
|
|
226
|
-
Once on the checkout page, use the 'extractPaymentProviderKey' tool to extract payment provider
|
|
227
|
-
details.
|
|
228
|
-
|
|
229
|
-
IF AND ONLY IF the 'extractPaymentProviderKey' tool call fails, advance further through the checkout process
|
|
230
|
-
then try calling the 'extractPaymentProviderKey' tool again.
|
|
231
|
-
|
|
232
|
-
IF AND ONLY IF necessary to advance through the checkout process because the 'extractPaymentProviderKey' tool call fails,
|
|
233
|
-
and use the following information:
|
|
234
|
-
- Name: Sam Langhorne
|
|
235
|
-
- Address: 351 Farmington Ave, Hartford, Conn. 06105, USA
|
|
236
|
-
- Phone: +15002470998
|
|
237
|
-
- Email: (use the '${InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME}' tool to generate this)`;
|
|
238
|
-
const flowParams = {
|
|
239
|
-
targetWebsite: url,
|
|
240
|
-
overallObjective: overallObjective,
|
|
241
|
-
maxToolCalls: 30,
|
|
242
|
-
defaultMessageDuration: 0,
|
|
243
|
-
initialRunMode: 'AUTONOMOUS',
|
|
244
|
-
isControlPanelEnabled: false,
|
|
245
|
-
allowedTools: [
|
|
246
|
-
ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME,
|
|
247
|
-
ClickTool_1.ClickTool.NAME,
|
|
248
|
-
'extractPaymentProviderKey',
|
|
249
|
-
GoForwardOrBackTool_1.GoForwardOrBackTool.NAME,
|
|
250
|
-
InputRandomizedEmailAddressTool_1.InputRandomizedEmailAddressTool.NAME,
|
|
251
|
-
InputTextTool_1.InputTextTool.NAME,
|
|
252
|
-
GoToWebpageTool_1.GoToWebpageTool.NAME,
|
|
253
|
-
MarkObjectiveNotCompletableTool_1.MarkObjectiveNotCompletableTool.NAME,
|
|
254
|
-
PressKeyTool_1.PressKeyTool.NAME,
|
|
255
|
-
ScrollPageTool_1.ScrollPageTool.NAME,
|
|
256
|
-
],
|
|
257
|
-
};
|
|
258
|
-
const flowHandle = await this.donobuFlowsManager.createFlow(flowParams);
|
|
259
|
-
await this.wrapUp(res, flowHandle);
|
|
260
|
-
}
|
|
261
|
-
async extractGoogleStreetviewEntityData(req, res) {
|
|
262
|
-
const parsedBody = v4_1.z
|
|
263
|
-
.object({
|
|
264
|
-
/**
|
|
265
|
-
* The name of the business/entity to verify. If this is specified, then entityLocation
|
|
266
|
-
* must also be specified. If this is null, then googleMapsUrl cannot also be null.
|
|
267
|
-
*/
|
|
268
|
-
entityName: v4_1.z.string().nullable().optional(),
|
|
269
|
-
/**
|
|
270
|
-
* The location of the business/entity to verify. If this is specified, then entityName
|
|
271
|
-
* must also be specified. If this is null, then googleMapsUrl cannot also be null.
|
|
272
|
-
*/
|
|
273
|
-
entityLocation: v4_1.z.string().nullable().optional(),
|
|
274
|
-
/**
|
|
275
|
-
* The Google Maps URL of the entity to verify. If this is null, then entityName
|
|
276
|
-
* and entityLocation cannot also be null.
|
|
277
|
-
*/
|
|
278
|
-
googleMapsUrl: v4_1.z.string().nullable().optional(),
|
|
279
|
-
})
|
|
280
|
-
.refine((data) => {
|
|
281
|
-
const hasEntityData = data.entityName !== null &&
|
|
282
|
-
data.entityName !== undefined &&
|
|
283
|
-
data.entityLocation !== null &&
|
|
284
|
-
data.entityLocation !== undefined;
|
|
285
|
-
const hasGoogleMapsUrl = data.googleMapsUrl !== null && data.googleMapsUrl !== undefined;
|
|
286
|
-
// At least one approach must be provided
|
|
287
|
-
return hasEntityData || hasGoogleMapsUrl;
|
|
288
|
-
}, {
|
|
289
|
-
message: 'Either both entityName and entityLocation must be provided, or googleMapsUrl must be provided',
|
|
290
|
-
})
|
|
291
|
-
.refine((data) => {
|
|
292
|
-
// If entityName is provided, entityLocation must also be provided
|
|
293
|
-
const entityNameProvided = data.entityName !== null && data.entityName !== undefined;
|
|
294
|
-
const entityLocationProvided = data.entityLocation !== null && data.entityLocation !== undefined;
|
|
295
|
-
if (entityNameProvided && !entityLocationProvided) {
|
|
296
|
-
return false;
|
|
297
|
-
}
|
|
298
|
-
// If entityLocation is provided, entityName must also be provided
|
|
299
|
-
if (entityLocationProvided && !entityNameProvided) {
|
|
300
|
-
return false;
|
|
301
|
-
}
|
|
302
|
-
return true;
|
|
303
|
-
}, {
|
|
304
|
-
message: 'If entityName is specified, entityLocation must also be specified, and vice versa',
|
|
305
|
-
})
|
|
306
|
-
.parse(req.body);
|
|
307
|
-
let entityName;
|
|
308
|
-
let entityLocation;
|
|
309
|
-
let inputTokensForTmpFlow;
|
|
310
|
-
let completionTokensForTmpFlow;
|
|
311
|
-
if (parsedBody.entityName) {
|
|
312
|
-
entityName = parsedBody.entityName;
|
|
313
|
-
entityLocation = parsedBody.entityLocation;
|
|
314
|
-
inputTokensForTmpFlow = 0;
|
|
315
|
-
completionTokensForTmpFlow = 0;
|
|
316
|
-
}
|
|
317
|
-
else {
|
|
318
|
-
const tmpFlow = await this.divineTargetEntityDataFromGoogleMapUrl(parsedBody.googleMapsUrl);
|
|
319
|
-
const entityData = JsonUtils_1.JsonUtils.objectToJson(tmpFlow.metadata.result);
|
|
320
|
-
entityName = entityData.entityName;
|
|
321
|
-
entityLocation = entityData.entityAddress;
|
|
322
|
-
inputTokensForTmpFlow = tmpFlow.metadata.inputTokensUsed;
|
|
323
|
-
completionTokensForTmpFlow = tmpFlow.metadata.completionTokensUsed;
|
|
324
|
-
}
|
|
325
|
-
const overallObjective = `
|
|
326
|
-
Attempt to locate the business/entity, ${entityName}, at (or around!) the location ${entityLocation}, using Google Maps street view.
|
|
327
|
-
Note that the initial street view will likely already been oriented towards the business/entity, so if
|
|
328
|
-
business/entity signage is initially blurry, first try zooming in the view before rotating the view.
|
|
329
|
-
|
|
330
|
-
Business/entity data can be extracted using the 'extractGoogleStreetviewEntityData' tool.
|
|
331
|
-
|
|
332
|
-
If the target business/entity is not found, DO NOT instantly give up! Here is what to do for various conditions:
|
|
333
|
-
- If building is visible but business/entity signage wasn't a match, prefer zooming in first.
|
|
334
|
-
- Business/entity signage is illegible/blurry/etc -> Try zooming in.
|
|
335
|
-
- Business/entity is not present -> Try rotating, or, moving the current position of the street view.
|
|
336
|
-
|
|
337
|
-
If the street view has been adjusted, be sure to follow that up with a call to the 'extractGoogleStreetviewEntityData' tool.
|
|
338
|
-
|
|
339
|
-
Once confident about the existence or non-existence of the target business/entity at the given location,
|
|
340
|
-
using (perhaps multiple times) the 'extractGoogleStreetviewEntityData' tool, call the 'aggregateExtractedStreetviewData' tool.
|
|
341
|
-
`;
|
|
342
|
-
const flowParams = {
|
|
343
|
-
targetWebsite: 'https://maps.google.com',
|
|
344
|
-
overallObjective: overallObjective,
|
|
345
|
-
maxToolCalls: 12,
|
|
346
|
-
defaultMessageDuration: 0,
|
|
347
|
-
initialRunMode: 'AUTONOMOUS',
|
|
348
|
-
isControlPanelEnabled: false,
|
|
349
|
-
allowedTools: [
|
|
350
|
-
ClickTool_1.ClickTool.NAME,
|
|
351
|
-
'goToGoogleMapsStreetView',
|
|
352
|
-
'navigateWithinStreetView',
|
|
353
|
-
'extractGoogleStreetviewEntityData',
|
|
354
|
-
'aggregateExtractedStreetviewData',
|
|
355
|
-
],
|
|
356
|
-
toolCallsOnStart: [
|
|
357
|
-
{
|
|
358
|
-
name: 'goToGoogleMapsStreetView',
|
|
359
|
-
parameters: {
|
|
360
|
-
entityName: entityName,
|
|
361
|
-
entityLocation: entityLocation,
|
|
362
|
-
},
|
|
363
|
-
},
|
|
364
|
-
{
|
|
365
|
-
name: 'extractGoogleStreetviewEntityData',
|
|
366
|
-
parameters: {
|
|
367
|
-
entityName: entityName,
|
|
368
|
-
},
|
|
369
|
-
},
|
|
370
|
-
],
|
|
371
|
-
};
|
|
372
|
-
const flowHandle = await this.donobuFlowsManager.createFlow(flowParams);
|
|
373
|
-
flowHandle.donobuFlow.metadata.inputTokensUsed += inputTokensForTmpFlow;
|
|
374
|
-
flowHandle.donobuFlow.metadata.completionTokensUsed +=
|
|
375
|
-
completionTokensForTmpFlow;
|
|
376
|
-
await this.wrapUpWithStreetDataRecovery(res, flowHandle);
|
|
377
|
-
}
|
|
378
|
-
async divineTargetEntityDataFromGoogleMapUrl(googleMapUrl) {
|
|
379
|
-
const flowParams = {
|
|
380
|
-
targetWebsite: googleMapUrl,
|
|
381
|
-
overallObjective: 'Extract the business/entity data from the current Google Maps page.',
|
|
382
|
-
maxToolCalls: 2,
|
|
383
|
-
defaultMessageDuration: 0,
|
|
384
|
-
initialRunMode: 'AUTONOMOUS',
|
|
385
|
-
isControlPanelEnabled: false,
|
|
386
|
-
allowedTools: ['getEntityDataFromGoogleMapResult', GoToWebpageTool_1.GoToWebpageTool.NAME],
|
|
387
|
-
toolCallsOnStart: [],
|
|
388
|
-
};
|
|
389
|
-
const flowHandle = await this.donobuFlowsManager.createFlow(flowParams);
|
|
390
|
-
await flowHandle.job;
|
|
391
|
-
return flowHandle.donobuFlow;
|
|
392
|
-
}
|
|
393
|
-
// Helper methods
|
|
394
|
-
async wrapUp(res, flowHandle) {
|
|
395
|
-
const flowId = flowHandle.donobuFlow.metadata.id;
|
|
396
|
-
const flow = flowHandle.donobuFlow;
|
|
397
|
-
await flowHandle.job;
|
|
398
|
-
if (!flow.metadata.result) {
|
|
399
|
-
res.status(500);
|
|
400
|
-
}
|
|
401
|
-
else if (typeof flow.metadata.result.failed === 'string' &&
|
|
402
|
-
flow.metadata.result.failed.toLowerCase().includes('internal error')) {
|
|
403
|
-
res.status(500);
|
|
404
|
-
}
|
|
405
|
-
else if (flow.metadata.state !== 'SUCCESS') {
|
|
406
|
-
res.status(400);
|
|
407
|
-
}
|
|
408
|
-
res.header('x-input-tokens-used', flow.metadata.inputTokensUsed.toString());
|
|
409
|
-
res.header('x-completion-tokens-used', flow.metadata.completionTokensUsed.toString());
|
|
410
|
-
res.header('x-gpt-config-name', flow.metadata.gptConfigName ?? '');
|
|
411
|
-
res.header('x-flow-id', flow.metadata.id);
|
|
412
|
-
res.json(flow.metadata.result ?? {
|
|
413
|
-
error: `Unexpected null result for flow ${flowId}.`,
|
|
414
|
-
});
|
|
415
|
-
}
|
|
416
|
-
async wrapUpWithStreetDataRecovery(res, flowHandle) {
|
|
417
|
-
const flowId = flowHandle.donobuFlow.metadata.id;
|
|
418
|
-
const flow = flowHandle.donobuFlow;
|
|
419
|
-
await flowHandle.job;
|
|
420
|
-
let flowResult = flow.metadata.result;
|
|
421
|
-
if (!flowResult) {
|
|
422
|
-
Logger_1.appLogger.error(`Unexpected null result for flow ${flowId}.`);
|
|
423
|
-
res.status(500);
|
|
424
|
-
}
|
|
425
|
-
else if (flow.metadata.state !== 'SUCCESS') {
|
|
426
|
-
const accumulatedResults = flow.invokedToolCalls
|
|
427
|
-
.filter((tc) => tc.toolName === 'extractGoogleStreetviewEntityData')
|
|
428
|
-
.map((tc) => tc.outcome)
|
|
429
|
-
.filter((outcome) => outcome.metadata !== null)
|
|
430
|
-
.map((outcome) => outcome.metadata)
|
|
431
|
-
.filter((metadata) => metadata.businessSignage !== undefined)
|
|
432
|
-
.sort((a, b) => {
|
|
433
|
-
// Sort in reverse order (true values first)
|
|
434
|
-
return b.isBusinessMatch - a.isBusinessMatch;
|
|
435
|
-
})
|
|
436
|
-
.map((metadata) => {
|
|
437
|
-
const copy = { ...metadata };
|
|
438
|
-
delete copy.recommendedNextStepForStreetViewNavigator;
|
|
439
|
-
return copy;
|
|
440
|
-
});
|
|
441
|
-
flowResult = {
|
|
442
|
-
streetviews: accumulatedResults,
|
|
443
|
-
flowId: flow.metadata.id,
|
|
444
|
-
};
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
447
|
-
res.status(200);
|
|
448
|
-
}
|
|
449
|
-
res.header('x-input-tokens-used', flow.metadata.inputTokensUsed.toString());
|
|
450
|
-
res.header('x-completion-tokens-used', flow.metadata.completionTokensUsed.toString());
|
|
451
|
-
res.header('x-gpt-config-name', flow.metadata.gptConfigName ?? '');
|
|
452
|
-
res.header('x-flow-id', flowHandle.donobuFlow.metadata.id);
|
|
453
|
-
res.json(flowResult || {});
|
|
454
|
-
}
|
|
455
|
-
parseUrl(url) {
|
|
456
|
-
if (!url) {
|
|
457
|
-
return null;
|
|
458
|
-
}
|
|
459
|
-
if (!url.startsWith('http')) {
|
|
460
|
-
url = `https://${url}`;
|
|
461
|
-
}
|
|
462
|
-
return url;
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
exports.SpecialFlowsApi = SpecialFlowsApi;
|
|
466
|
-
//# sourceMappingURL=SpecialFlowsApi.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpecialFlowsApi.js","sourceRoot":"","sources":["../../src/apis/SpecialFlowsApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Request, Response } from 'express';
|
|
2
|
-
import type { DonobuFlowsManager } from '../managers/DonobuFlowsManager';
|
|
3
|
-
/**
|
|
4
|
-
* This class defines the API for special flows (i.e. flows that are essentially
|
|
5
|
-
* pre-defined and have a specific purpose).
|
|
6
|
-
*/
|
|
7
|
-
export declare class SpecialFlowsApi {
|
|
8
|
-
private readonly donobuFlowsManager;
|
|
9
|
-
constructor(donobuFlowsManager: DonobuFlowsManager);
|
|
10
|
-
analyzeCookieConsent(req: Request, res: Response): Promise<void>;
|
|
11
|
-
detectBrokenLinks(req: Request, res: Response): Promise<void>;
|
|
12
|
-
extractPublicFacebookEntityData(req: Request, res: Response): Promise<void>;
|
|
13
|
-
extractPaymentProviderData(req: Request, res: Response): Promise<void>;
|
|
14
|
-
extractGoogleStreetviewEntityData(req: Request, res: Response): Promise<void>;
|
|
15
|
-
private divineTargetEntityDataFromGoogleMapUrl;
|
|
16
|
-
private wrapUp;
|
|
17
|
-
private wrapUpWithStreetDataRecovery;
|
|
18
|
-
private parseUrl;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=SpecialFlowsApi.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpecialFlowsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/SpecialFlowsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMjD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,gCAAgC,CAAC;AAqBxC;;;GAGG;AACH,qBAAa,eAAe;IACP,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE7D,oBAAoB,CAC/B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAyIH,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7D,+BAA+B,CAC1C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAwCH,0BAA0B,CACrC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAmDH,iCAAiC,CAC5C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;YA6IF,sCAAsC;YAqBtC,MAAM;YA8BN,4BAA4B;IA8C1C,OAAO,CAAC,QAAQ;CAWjB"}
|