donobu 2.26.0 → 2.27.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.map +1 -1
- package/dist/apis/SpecialFlowsApi.js +60 -31
- package/dist/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/apis/ToolsApi.d.ts.map +1 -1
- package/dist/apis/ToolsApi.js +2 -1
- package/dist/apis/ToolsApi.js.map +1 -1
- package/dist/assets/generated/version +1 -1
- package/dist/esm/apis/SpecialFlowsApi.d.ts.map +1 -1
- package/dist/esm/apis/SpecialFlowsApi.js +60 -31
- package/dist/esm/apis/SpecialFlowsApi.js.map +1 -1
- package/dist/esm/apis/ToolsApi.d.ts.map +1 -1
- package/dist/esm/apis/ToolsApi.js +2 -1
- package/dist/esm/apis/ToolsApi.js.map +1 -1
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/lib/testExtension.js +1 -1
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -1
- package/dist/esm/lib/utils/selfHealing.js +44 -45
- package/dist/esm/lib/utils/selfHealing.js.map +1 -1
- package/dist/esm/main.d.ts +2 -0
- package/dist/esm/main.d.ts.map +1 -1
- package/dist/esm/main.js +2 -0
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +2 -1
- package/dist/esm/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts.map +1 -1
- package/dist/esm/managers/PageInspector.js +4 -2
- package/dist/esm/managers/PageInspector.js.map +1 -1
- package/dist/esm/managers/PluginLoader.d.ts.map +1 -1
- package/dist/esm/managers/PluginLoader.js +2 -1
- package/dist/esm/managers/PluginLoader.js.map +1 -1
- package/dist/esm/managers/ToolManager.d.ts +6 -2
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +90 -76
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +42 -22
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/lib/testExtension.js +1 -1
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/lib/utils/selfHealing.d.ts.map +1 -1
- package/dist/lib/utils/selfHealing.js +44 -45
- package/dist/lib/utils/selfHealing.js.map +1 -1
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +2 -1
- package/dist/managers/DonobuFlowsManager.js.map +1 -1
- package/dist/managers/PageInspector.d.ts.map +1 -1
- package/dist/managers/PageInspector.js +4 -2
- package/dist/managers/PageInspector.js.map +1 -1
- package/dist/managers/PluginLoader.js +2 -2
- package/dist/managers/PluginLoader.js.map +1 -1
- package/dist/managers/ToolManager.d.ts +6 -2
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +90 -76
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +42 -22
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +3 -2
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts +0 -22
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.d.ts.map +0 -1
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js +0 -61
- package/dist/esm/tools/AggregateExtractedStreetviewDataTool.js.map +0 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.d.ts +0 -62
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.d.ts.map +0 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +0 -164
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +0 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts +0 -81
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.d.ts.map +0 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +0 -316
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +0 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.d.ts +0 -39
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.d.ts.map +0 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +0 -228
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +0 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.d.ts +0 -47
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.d.ts.map +0 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +0 -126
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +0 -1
- package/dist/esm/tools/NavigateWithinStreetView.d.ts +0 -54
- package/dist/esm/tools/NavigateWithinStreetView.d.ts.map +0 -1
- package/dist/esm/tools/NavigateWithinStreetView.js +0 -119
- package/dist/esm/tools/NavigateWithinStreetView.js.map +0 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts +0 -22
- package/dist/tools/AggregateExtractedStreetviewDataTool.d.ts.map +0 -1
- package/dist/tools/AggregateExtractedStreetviewDataTool.js +0 -61
- package/dist/tools/AggregateExtractedStreetviewDataTool.js.map +0 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.d.ts +0 -62
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.d.ts.map +0 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +0 -164
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +0 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts +0 -81
- package/dist/tools/ExtractPaymentProviderKeyTool.d.ts.map +0 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js +0 -316
- package/dist/tools/ExtractPaymentProviderKeyTool.js.map +0 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.d.ts +0 -39
- package/dist/tools/ExtractPublicFacebookEntityDataTool.d.ts.map +0 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +0 -228
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +0 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.d.ts +0 -47
- package/dist/tools/GoToGoogleMapsStreetViewTool.d.ts.map +0 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +0 -126
- package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +0 -1
- package/dist/tools/NavigateWithinStreetView.d.ts +0 -54
- package/dist/tools/NavigateWithinStreetView.d.ts.map +0 -1
- package/dist/tools/NavigateWithinStreetView.js +0 -119
- package/dist/tools/NavigateWithinStreetView.js.map +0 -1
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExtractPaymentProviderKeyTool = void 0;
|
|
4
|
-
const Tool_1 = require("./Tool");
|
|
5
|
-
const ToolSchema_1 = require("../models/ToolSchema");
|
|
6
|
-
/**
|
|
7
|
-
* This tool scans the current web page for publishable payment
|
|
8
|
-
* provider credentials and merchant IDs from the current page's inline `<script>` blocks.
|
|
9
|
-
*
|
|
10
|
-
* ### Supported providers
|
|
11
|
-
* | Provider | Type | Regex | Example |
|
|
12
|
-
* |----------|-------------|------------------------------------------|----------------------|
|
|
13
|
-
* | Stripe | Publishable | `/pk_(test\|live)_[A-Za-z0-9]+/i` | `pk_test_51M…` |
|
|
14
|
-
* | Stripe | Merchant ID | `/acct_[A-Za-z0-9]{8,}/i` | `acct_1AB23CD4` |
|
|
15
|
-
* | PayPal | Client ID | `/A[A-Za-z0-9-_]{75,}/i` | `AUGIH…` |
|
|
16
|
-
* | PayPal | Merchant ID | `merchant[-_]?id=([A-Z0-9]{13,17})` | `2WVSVREX9TL9J` |
|
|
17
|
-
*
|
|
18
|
-
* On **success** the tool returns a JSON object containing any discovered keys and the
|
|
19
|
-
* URL of the page that was scanned. If **no keys** are found, `isSuccessful` is set to
|
|
20
|
-
* `false` and a short error string is provided.
|
|
21
|
-
*
|
|
22
|
-
* ```json
|
|
23
|
-
* {
|
|
24
|
-
* "stripe": ["pk_test_123"],
|
|
25
|
-
* "paypal": ["AUGIH…"],
|
|
26
|
-
* "stripeMerchant": ["acct_1AB23CD4"],
|
|
27
|
-
* "paypalMerchant": ["2WVSVREX9TL9J"],
|
|
28
|
-
* "checkoutPageUrl": "https://shop.example.com/checkout"
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
class ExtractPaymentProviderKeyTool extends Tool_1.Tool {
|
|
33
|
-
constructor() {
|
|
34
|
-
super(ExtractPaymentProviderKeyTool.NAME, 'Extract multiple publishable payment provider keys and merchant IDs from the current page.', ToolSchema_1.NoArgsSchema, ToolSchema_1.BaseGptArgsSchema);
|
|
35
|
-
}
|
|
36
|
-
async call(context, _parameters) {
|
|
37
|
-
const page = context.page.current;
|
|
38
|
-
// Retrieve all <script> tags' content, handling potential empty or null attributes
|
|
39
|
-
const scriptContents = (await ExtractPaymentProviderKeyTool.getAllScriptSources(page)).join('\n');
|
|
40
|
-
// Define regex patterns for different payment provider keys
|
|
41
|
-
const stripePattern = /(pk_(test|live)_[A-Za-z0-9]+)/gi;
|
|
42
|
-
const stripeMerchantPattern = /(acct_[A-Za-z0-9]{8,})/gi;
|
|
43
|
-
const paypalMerchantPattern = /merchant[-_]?id\s*=\s*([A-Z0-9]{13,17})/gi;
|
|
44
|
-
const stripeKeys = new Set();
|
|
45
|
-
const paypalKeys = new Set();
|
|
46
|
-
const stripeMerchantIds = new Set();
|
|
47
|
-
const paypalMerchantIds = new Set();
|
|
48
|
-
// Search for Stripe keys (these are well-defined and reliable)
|
|
49
|
-
const stripeMatches = scriptContents.matchAll(stripePattern);
|
|
50
|
-
for (const match of stripeMatches) {
|
|
51
|
-
stripeKeys.add(match[1]);
|
|
52
|
-
}
|
|
53
|
-
// Search for Stripe merchant IDs
|
|
54
|
-
const stripeMerchantMatches = scriptContents.matchAll(stripeMerchantPattern);
|
|
55
|
-
for (const match of stripeMerchantMatches) {
|
|
56
|
-
if (this.isValidStripeMerchantId(match[1], scriptContents)) {
|
|
57
|
-
stripeMerchantIds.add(match[1]);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// Search for PayPal client IDs with improved filtering
|
|
61
|
-
const paypalCandidates = this.extractPayPalCandidates(scriptContents);
|
|
62
|
-
for (const candidate of paypalCandidates) {
|
|
63
|
-
if (this.isValidPayPalClientId(candidate, scriptContents)) {
|
|
64
|
-
paypalKeys.add(candidate);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
// Search for PayPal merchant IDs
|
|
68
|
-
const paypalMerchantMatches = scriptContents.matchAll(paypalMerchantPattern);
|
|
69
|
-
for (const match of paypalMerchantMatches) {
|
|
70
|
-
if (this.isValidPayPalMerchantId(match[1], scriptContents)) {
|
|
71
|
-
paypalMerchantIds.add(match[1]);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// If no keys were found, return failed result
|
|
75
|
-
if (stripeKeys.size === 0 &&
|
|
76
|
-
paypalKeys.size === 0 &&
|
|
77
|
-
stripeMerchantIds.size === 0 &&
|
|
78
|
-
paypalMerchantIds.size === 0) {
|
|
79
|
-
const error = 'No publishable keys or merchant IDs found on the current page.';
|
|
80
|
-
return {
|
|
81
|
-
isSuccessful: false,
|
|
82
|
-
forLlm: error,
|
|
83
|
-
metadata: {
|
|
84
|
-
error: error,
|
|
85
|
-
},
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Signal to end the flow
|
|
90
|
-
context.metadata.nextState = 'SUCCESS';
|
|
91
|
-
const result = {
|
|
92
|
-
stripe: Array.from(stripeKeys),
|
|
93
|
-
paypal: Array.from(paypalKeys),
|
|
94
|
-
stripeMerchant: Array.from(stripeMerchantIds),
|
|
95
|
-
paypalMerchant: Array.from(paypalMerchantIds),
|
|
96
|
-
checkoutPageUrl: page.url(),
|
|
97
|
-
};
|
|
98
|
-
return {
|
|
99
|
-
isSuccessful: true,
|
|
100
|
-
forLlm: JSON.stringify(result, null, 2),
|
|
101
|
-
metadata: result,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
async callFromGpt(context, parameters) {
|
|
106
|
-
return this.call(context, parameters);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Extract potential PayPal client ID candidates from script content
|
|
110
|
-
*/
|
|
111
|
-
extractPayPalCandidates(scriptContents) {
|
|
112
|
-
// Look for strings that start with 'A' and are 75+ characters long
|
|
113
|
-
const candidatePattern = /\bA[A-Za-z0-9_-]{75,}\b/g;
|
|
114
|
-
const candidates = Array.from(scriptContents.matchAll(candidatePattern))
|
|
115
|
-
.map((match) => match[0])
|
|
116
|
-
.filter((candidate) => {
|
|
117
|
-
// Filter out obvious false positives
|
|
118
|
-
return !ExtractPaymentProviderKeyTool.EXCLUDED_PATTERNS.some((pattern) => pattern.test(candidate));
|
|
119
|
-
});
|
|
120
|
-
// Remove duplicates
|
|
121
|
-
return Array.from(new Set(candidates));
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Enhanced validation for PayPal client IDs
|
|
125
|
-
*/
|
|
126
|
-
isValidPayPalClientId(candidate, scriptContents) {
|
|
127
|
-
// Must match the expected pattern
|
|
128
|
-
if (!ExtractPaymentProviderKeyTool.PAYPAL_CLIENT_ID_PATTERN.test(candidate)) {
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
// Must not be a Stripe key
|
|
132
|
-
if (candidate.match(/pk_(test|live)_/i)) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
// Must have strong contextual evidence
|
|
136
|
-
const hasStrongContext = this.hasStrongPayPalContext(candidate, scriptContents);
|
|
137
|
-
// Additional validation: check if it appears in a structured context
|
|
138
|
-
const hasStructuredContext = this.hasStructuredPayPalContext(candidate, scriptContents);
|
|
139
|
-
return hasStrongContext && hasStructuredContext;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Validate Stripe merchant IDs
|
|
143
|
-
*/
|
|
144
|
-
isValidStripeMerchantId(candidate, scriptContents) {
|
|
145
|
-
// Must start with 'acct_' and be at least 8 characters after prefix
|
|
146
|
-
if (!/^acct_[A-Za-z0-9]{8,}$/i.test(candidate)) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
// Check for Stripe contextual indicators
|
|
150
|
-
return this.hasStripeContext(candidate, scriptContents);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Validate PayPal merchant IDs
|
|
154
|
-
*/
|
|
155
|
-
isValidPayPalMerchantId(candidate, scriptContents) {
|
|
156
|
-
// Must be 13-17 characters long and contain only uppercase letters and numbers
|
|
157
|
-
if (!/^[A-Z0-9]{13,17}$/.test(candidate)) {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
// Check for PayPal merchant contextual indicators
|
|
161
|
-
return this.hasPayPalMerchantContext(candidate, scriptContents);
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Check for strong PayPal contextual indicators near the candidate key
|
|
165
|
-
*/
|
|
166
|
-
hasStrongPayPalContext(candidate, scriptContents) {
|
|
167
|
-
const escapedKey = candidate.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
168
|
-
// Look for PayPal indicators within a reasonable distance (500 characters)
|
|
169
|
-
for (const indicator of ExtractPaymentProviderKeyTool.PAYPAL_CONTEXT_INDICATORS) {
|
|
170
|
-
const contextPattern = new RegExp(`(?:${indicator}[\\s\\S]{0,500}${escapedKey}|${escapedKey}[\\s\\S]{0,500}${indicator})`, 'i');
|
|
171
|
-
if (contextPattern.test(scriptContents)) {
|
|
172
|
-
return true;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Check for Stripe contextual indicators near the merchant ID
|
|
179
|
-
*/
|
|
180
|
-
hasStripeContext(candidate, scriptContents) {
|
|
181
|
-
const escapedKey = candidate.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
182
|
-
// Look for Stripe indicators within a reasonable distance (500 characters)
|
|
183
|
-
for (const indicator of ExtractPaymentProviderKeyTool.STRIPE_MERCHANT_CONTEXT_INDICATORS) {
|
|
184
|
-
const contextPattern = new RegExp(`(?:${indicator}[\\s\\S]{0,500}${escapedKey}|${escapedKey}[\\s\\S]{0,500}${indicator})`, 'i');
|
|
185
|
-
if (contextPattern.test(scriptContents)) {
|
|
186
|
-
return true;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return false;
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Check for PayPal merchant contextual indicators near the merchant ID
|
|
193
|
-
*/
|
|
194
|
-
hasPayPalMerchantContext(candidate, scriptContents) {
|
|
195
|
-
const escapedKey = candidate.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
196
|
-
// Look for PayPal merchant indicators within a reasonable distance (500 characters)
|
|
197
|
-
for (const indicator of ExtractPaymentProviderKeyTool.PAYPAL_MERCHANT_CONTEXT_INDICATORS) {
|
|
198
|
-
const contextPattern = new RegExp(`(?:${indicator}[\\s\\S]{0,500}${escapedKey}|${escapedKey}[\\s\\S]{0,500}${indicator})`, 'i');
|
|
199
|
-
if (contextPattern.test(scriptContents)) {
|
|
200
|
-
return true;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Check if the candidate appears in a structured context (assignments, objects, etc.)
|
|
207
|
-
*/
|
|
208
|
-
hasStructuredPayPalContext(candidate, scriptContents) {
|
|
209
|
-
const escapedKey = candidate.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
210
|
-
// Look for patterns that suggest this is a configured value
|
|
211
|
-
const structuredPatterns = [
|
|
212
|
-
// Direct assignment patterns
|
|
213
|
-
new RegExp(`(?:client_?id|clientId)\\s*[:=]\\s*['"\`]${escapedKey}['"\`]`, 'i'),
|
|
214
|
-
// Object property patterns
|
|
215
|
-
new RegExp(`['"\`](?:client_?id|clientId)['"\`]\\s*:\\s*['"\`]${escapedKey}['"\`]`, 'i'),
|
|
216
|
-
// PayPal SDK configuration patterns
|
|
217
|
-
new RegExp(`paypal[\\s\\S]{0,200}['"\`]${escapedKey}['"\`]`, 'i'),
|
|
218
|
-
// Data attribute patterns
|
|
219
|
-
new RegExp(`data-[\\w-]*client[\\w-]*\\s*=\\s*['"\`]${escapedKey}['"\`]`, 'i'),
|
|
220
|
-
];
|
|
221
|
-
return structuredPatterns.some((pattern) => pattern.test(scriptContents));
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Collects text bodies for:
|
|
225
|
-
* - all inline <script> blocks
|
|
226
|
-
* - every <script src="…"> that is present in the DOM
|
|
227
|
-
*/
|
|
228
|
-
static async getAllScriptSources(page) {
|
|
229
|
-
// 1 — inline scripts (fast, single browser-side pass)
|
|
230
|
-
const inlineTexts = await page.$$eval('script:not([src])', (els) => els.map((s) => s.textContent ?? '').filter(Boolean));
|
|
231
|
-
// 2 — external scripts
|
|
232
|
-
const srcUrls = await page.$$eval('script[src]', (els) => els.map((s) => s.src));
|
|
233
|
-
const contextRequest = page.context().request;
|
|
234
|
-
const externalTexts = await Promise.all(srcUrls.map(async (url) => {
|
|
235
|
-
try {
|
|
236
|
-
// Playwright's request API bypasses CORS / CSP and honours cache validators.
|
|
237
|
-
const resp = await contextRequest.get(url);
|
|
238
|
-
if (!resp.ok() ||
|
|
239
|
-
+(resp.headers()['content-length'] ?? 0) > 1000000) {
|
|
240
|
-
return ''; // skip huge or bad responses
|
|
241
|
-
}
|
|
242
|
-
// Trim very large bodies in memory-friendly way
|
|
243
|
-
const text = await resp.text();
|
|
244
|
-
return text.slice(0, 1000000); // hard cap at 1 MB
|
|
245
|
-
}
|
|
246
|
-
catch {
|
|
247
|
-
return '';
|
|
248
|
-
}
|
|
249
|
-
}));
|
|
250
|
-
return [...inlineTexts, ...externalTexts.filter(Boolean)];
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
exports.ExtractPaymentProviderKeyTool = ExtractPaymentProviderKeyTool;
|
|
254
|
-
ExtractPaymentProviderKeyTool.NAME = 'extractPaymentProviderKey';
|
|
255
|
-
// Common false positive patterns to exclude
|
|
256
|
-
ExtractPaymentProviderKeyTool.EXCLUDED_PATTERNS = [
|
|
257
|
-
/babel_runtime/i,
|
|
258
|
-
/webpack/i,
|
|
259
|
-
/__IMPORTED_MODULE/i,
|
|
260
|
-
/defineProperty/i,
|
|
261
|
-
/toConsumableArray/i,
|
|
262
|
-
/stringify/i,
|
|
263
|
-
/setTimeout/i,
|
|
264
|
-
/indexOf/i,
|
|
265
|
-
/concat/i,
|
|
266
|
-
/assign/i,
|
|
267
|
-
/isArray/i,
|
|
268
|
-
/forEach/i,
|
|
269
|
-
// Common base64/random data patterns
|
|
270
|
-
/^[A-Za-z0-9+/=]{76,}$/, // Pure base64
|
|
271
|
-
/^[A-Z]{10,}$/, // All caps strings
|
|
272
|
-
// Google/Meta tracking IDs that might be long
|
|
273
|
-
/^G-[A-Z0-9]{10}$/,
|
|
274
|
-
/^UA-\d+-\d+$/,
|
|
275
|
-
];
|
|
276
|
-
// PayPal client IDs have specific characteristics
|
|
277
|
-
ExtractPaymentProviderKeyTool.PAYPAL_CLIENT_ID_PATTERN = /^A[A-Za-z0-9_-]{75,79}$/;
|
|
278
|
-
// Strong PayPal contextual indicators
|
|
279
|
-
ExtractPaymentProviderKeyTool.PAYPAL_CONTEXT_INDICATORS = [
|
|
280
|
-
'paypal',
|
|
281
|
-
'client_id',
|
|
282
|
-
'client-id',
|
|
283
|
-
'clientId',
|
|
284
|
-
'PAYPAL',
|
|
285
|
-
'CLIENT_ID',
|
|
286
|
-
'paypal.com',
|
|
287
|
-
'paypaljs',
|
|
288
|
-
'paypal-js',
|
|
289
|
-
'checkout.paypal.com',
|
|
290
|
-
];
|
|
291
|
-
// PayPal merchant ID contextual indicators
|
|
292
|
-
ExtractPaymentProviderKeyTool.PAYPAL_MERCHANT_CONTEXT_INDICATORS = [
|
|
293
|
-
'merchant',
|
|
294
|
-
'seller',
|
|
295
|
-
'business',
|
|
296
|
-
'paypal',
|
|
297
|
-
'PAYPAL',
|
|
298
|
-
'merchant_id',
|
|
299
|
-
'merchant-id',
|
|
300
|
-
'merchantId',
|
|
301
|
-
'sellerId',
|
|
302
|
-
'businessId',
|
|
303
|
-
];
|
|
304
|
-
// Stripe merchant ID contextual indicators
|
|
305
|
-
ExtractPaymentProviderKeyTool.STRIPE_MERCHANT_CONTEXT_INDICATORS = [
|
|
306
|
-
'stripe',
|
|
307
|
-
'account',
|
|
308
|
-
'merchant',
|
|
309
|
-
'acct_',
|
|
310
|
-
'STRIPE',
|
|
311
|
-
'ACCOUNT',
|
|
312
|
-
'connect',
|
|
313
|
-
'platform',
|
|
314
|
-
'destination',
|
|
315
|
-
];
|
|
316
|
-
//# sourceMappingURL=ExtractPaymentProviderKeyTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractPaymentProviderKeyTool.js","sourceRoot":"","sources":["../../../src/tools/ExtractPaymentProviderKeyTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Tool } from './Tool';
|
|
2
|
-
import { ToolCallContext } from '../models/ToolCallContext';
|
|
3
|
-
import { ToolCallResult } from '../models/ToolCallResult';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
export declare const ExtractPublicFacebookEntityDataCoreSchema: z.ZodObject<{
|
|
6
|
-
facebookEntityName: z.ZodOptional<z.ZodString>;
|
|
7
|
-
facebookEntityUrl: z.ZodOptional<z.ZodString>;
|
|
8
|
-
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
facebookEntityName?: string | undefined;
|
|
10
|
-
facebookEntityUrl?: string | undefined;
|
|
11
|
-
}, {
|
|
12
|
-
facebookEntityName?: string | undefined;
|
|
13
|
-
facebookEntityUrl?: string | undefined;
|
|
14
|
-
}>;
|
|
15
|
-
export declare const ExtractPublicFacebookEntityDataGptSchema: z.ZodObject<{
|
|
16
|
-
rationale: z.ZodString;
|
|
17
|
-
} & {
|
|
18
|
-
facebookEntityName: z.ZodOptional<z.ZodString>;
|
|
19
|
-
facebookEntityUrl: z.ZodOptional<z.ZodString>;
|
|
20
|
-
}, "strip", z.ZodTypeAny, {
|
|
21
|
-
rationale: string;
|
|
22
|
-
facebookEntityName?: string | undefined;
|
|
23
|
-
facebookEntityUrl?: string | undefined;
|
|
24
|
-
}, {
|
|
25
|
-
rationale: string;
|
|
26
|
-
facebookEntityName?: string | undefined;
|
|
27
|
-
facebookEntityUrl?: string | undefined;
|
|
28
|
-
}>;
|
|
29
|
-
export declare class ExtractPublicFacebookEntityDataTool extends Tool<typeof ExtractPublicFacebookEntityDataCoreSchema, typeof ExtractPublicFacebookEntityDataGptSchema> {
|
|
30
|
-
static readonly NAME = "extractPublicFacebookEntityData";
|
|
31
|
-
constructor();
|
|
32
|
-
call(context: ToolCallContext, parameters: z.infer<typeof ExtractPublicFacebookEntityDataCoreSchema>): Promise<ToolCallResult>;
|
|
33
|
-
callFromGpt(context: ToolCallContext, parameters: z.infer<typeof ExtractPublicFacebookEntityDataGptSchema>): Promise<ToolCallResult>;
|
|
34
|
-
private getInitialFacebookPageUrl;
|
|
35
|
-
private getAboutProfileTransparencyPageUrl;
|
|
36
|
-
private getAboutContactAndBasicInfoPageUrl;
|
|
37
|
-
private closeModal;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=ExtractPublicFacebookEntityDataTool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractPublicFacebookEntityDataTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ExtractPublicFacebookEntityDataTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAS1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yCAAyC;;;;;;;;;EAapD,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;EAEpD,CAAC;AAwFF,qBAAa,mCAAoC,SAAQ,IAAI,CAC3D,OAAO,yCAAyC,EAChD,OAAO,wCAAwC,CAChD;IACC,gBAAuB,IAAI,qCAAqC;;IAY1C,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,GACpE,OAAO,CAAC,cAAc,CAAC;IAsHJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wCAAwC,CAAC,GACnE,OAAO,CAAC,cAAc,CAAC;IAI1B,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,kCAAkC;IAa1C,OAAO,CAAC,kCAAkC;YAa5B,UAAU;CAYzB"}
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExtractPublicFacebookEntityDataTool = exports.ExtractPublicFacebookEntityDataGptSchema = exports.ExtractPublicFacebookEntityDataCoreSchema = void 0;
|
|
4
|
-
const Tool_1 = require("./Tool");
|
|
5
|
-
const DonobuException_1 = require("../exceptions/DonobuException");
|
|
6
|
-
const InvalidParamValueException_1 = require("../exceptions/InvalidParamValueException");
|
|
7
|
-
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
8
|
-
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
9
|
-
const Logger_1 = require("../utils/Logger");
|
|
10
|
-
const ToolSchema_1 = require("../models/ToolSchema");
|
|
11
|
-
const zod_1 = require("zod");
|
|
12
|
-
exports.ExtractPublicFacebookEntityDataCoreSchema = zod_1.z.object({
|
|
13
|
-
facebookEntityName: zod_1.z
|
|
14
|
-
.string()
|
|
15
|
-
.optional()
|
|
16
|
-
.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."),
|
|
17
|
-
facebookEntityUrl: zod_1.z
|
|
18
|
-
.string()
|
|
19
|
-
.optional()
|
|
20
|
-
.describe("The URL of the entity's public Facebook page. For example, https://www.facebook.com/TheCocaColaCo."),
|
|
21
|
-
});
|
|
22
|
-
exports.ExtractPublicFacebookEntityDataGptSchema = ToolSchema_1.BaseGptArgsSchema.merge(exports.ExtractPublicFacebookEntityDataCoreSchema);
|
|
23
|
-
const FACEBOOK_ENTITY_PAGE_INFO_SCHEMA = zod_1.z.object({
|
|
24
|
-
pageId: zod_1.z.string().nullable().describe("The entity's Facebook page ID."),
|
|
25
|
-
companyLegalName: zod_1.z
|
|
26
|
-
.string()
|
|
27
|
-
.nullable()
|
|
28
|
-
.describe('The legal name of the entity AS FOUND ON THE GIVEN FACEBOOK WEBPAGE TEXT! This is not the marketing name! ' +
|
|
29
|
-
'The legal name is in the section of the Facebook website that says "<some-legal-entity-name> is responsible for this Page." ' +
|
|
30
|
-
'IMPORTANT: If this string pattern is not found, then the `legalEntityName` must be set to null.'),
|
|
31
|
-
businessName: zod_1.z
|
|
32
|
-
.string()
|
|
33
|
-
.nullable()
|
|
34
|
-
.describe("The entity's business name. This is not necessarily the legal name of the entity. This could be the name used in marketing, for example."),
|
|
35
|
-
topCountryOfPageManagers: zod_1.z
|
|
36
|
-
.string()
|
|
37
|
-
.nullable()
|
|
38
|
-
.describe("The country with the most number of page managers for this entity's Facebook page."),
|
|
39
|
-
managerIsVerified: zod_1.z
|
|
40
|
-
.boolean()
|
|
41
|
-
.nullable()
|
|
42
|
-
.describe('The person that manages the Facebook page for this entity has been verified.'),
|
|
43
|
-
companyIsVerified: zod_1.z
|
|
44
|
-
.boolean()
|
|
45
|
-
.nullable()
|
|
46
|
-
.describe('The company itself has a verified Facebook status.'),
|
|
47
|
-
creationDate: zod_1.z
|
|
48
|
-
.string()
|
|
49
|
-
.nullable()
|
|
50
|
-
.describe('Creation date of the page in the format yyyy-mm-dd.'),
|
|
51
|
-
isRunningAds: zod_1.z
|
|
52
|
-
.boolean()
|
|
53
|
-
.nullable()
|
|
54
|
-
.describe('Is set to true if the entity reports that it is running ads. Otherwise false.'),
|
|
55
|
-
physicalAddress: zod_1.z
|
|
56
|
-
.string()
|
|
57
|
-
.nullable()
|
|
58
|
-
.describe("The entity's physical address."),
|
|
59
|
-
categories: zod_1.z.array(zod_1.z.string()).describe("The entity's categories."),
|
|
60
|
-
numberOfReviews: zod_1.z
|
|
61
|
-
.number()
|
|
62
|
-
.int()
|
|
63
|
-
.nullable()
|
|
64
|
-
.describe('The number of reviews for the entity.'),
|
|
65
|
-
percentRecommended: zod_1.z
|
|
66
|
-
.number()
|
|
67
|
-
.int()
|
|
68
|
-
.nullable()
|
|
69
|
-
.describe('The percent recommended based on reviews.'),
|
|
70
|
-
numberOfLikes: zod_1.z
|
|
71
|
-
.number()
|
|
72
|
-
.int()
|
|
73
|
-
.nullable()
|
|
74
|
-
.describe('The number of likes for the entity.'),
|
|
75
|
-
numberOfFollowers: zod_1.z
|
|
76
|
-
.number()
|
|
77
|
-
.int()
|
|
78
|
-
.nullable()
|
|
79
|
-
.describe('The number of followers for the entity.'),
|
|
80
|
-
phone: zod_1.z.string().nullable().describe("The entity's phone number."),
|
|
81
|
-
websiteUrl: zod_1.z.string().nullable().describe("The entity's website URL."),
|
|
82
|
-
});
|
|
83
|
-
class ExtractPublicFacebookEntityDataTool extends Tool_1.Tool {
|
|
84
|
-
constructor() {
|
|
85
|
-
super(ExtractPublicFacebookEntityDataTool.NAME, 'Source Facebook transparency data for a given Facebook entity.', exports.ExtractPublicFacebookEntityDataCoreSchema, exports.ExtractPublicFacebookEntityDataGptSchema, true);
|
|
86
|
-
}
|
|
87
|
-
async call(context, parameters) {
|
|
88
|
-
try {
|
|
89
|
-
const initialUrl = this.getInitialFacebookPageUrl(parameters);
|
|
90
|
-
const page = context.page.current;
|
|
91
|
-
const aboutProfileTransparencyPageUrl = this.getAboutProfileTransparencyPageUrl(initialUrl);
|
|
92
|
-
await page.goto(aboutProfileTransparencyPageUrl);
|
|
93
|
-
await page.waitForLoadState();
|
|
94
|
-
// Detect if the given entity exists
|
|
95
|
-
const bodyText = await page.evaluate(() => document.body.innerText);
|
|
96
|
-
if (bodyText.includes("This content isn't available right now")) {
|
|
97
|
-
context.metadata.nextState = 'FAILED';
|
|
98
|
-
if (parameters.facebookEntityName) {
|
|
99
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('facebookEntityName', parameters.facebookEntityName ?? null);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('facebookEntityUrl', parameters.facebookEntityUrl ?? null);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// Close the login modal
|
|
106
|
-
await this.closeModal(page);
|
|
107
|
-
// Click into modal to see extended transparency information
|
|
108
|
-
await page
|
|
109
|
-
.locator('div[aria-label="See all transparency information"]')
|
|
110
|
-
.click({
|
|
111
|
-
delay: MiscUtils_1.MiscUtils.generateHumanLikeClickDurationInMs(),
|
|
112
|
-
timeout: 5000,
|
|
113
|
-
});
|
|
114
|
-
await page.waitForTimeout(1500);
|
|
115
|
-
await page.waitForLoadState();
|
|
116
|
-
const transparencyInfoRawText = await page.evaluate(() => document.body.innerText);
|
|
117
|
-
// Click out of the extended transparency information modal
|
|
118
|
-
await this.closeModal(page);
|
|
119
|
-
// Navigate to remaining public profile details
|
|
120
|
-
const basicInfoUrl = this.getAboutContactAndBasicInfoPageUrl(page.url());
|
|
121
|
-
await page.goto(basicInfoUrl);
|
|
122
|
-
await page.waitForLoadState();
|
|
123
|
-
// Close the login modal
|
|
124
|
-
await this.closeModal(page);
|
|
125
|
-
await page.waitForLoadState();
|
|
126
|
-
const basicInfoRawText = await page.evaluate(() => document.body.innerText);
|
|
127
|
-
const prompt = `
|
|
128
|
-
\`\`\`
|
|
129
|
-
${transparencyInfoRawText}
|
|
130
|
-
${basicInfoRawText}
|
|
131
|
-
\`\`\`
|
|
132
|
-
|
|
133
|
-
Above is the raw textual content of a business/organization entity's Facebook webpage.
|
|
134
|
-
|
|
135
|
-
Note that since this is the raw textual content, the text may be a bit jumbled, have its styling lost,
|
|
136
|
-
careful positioning lost, etc.
|
|
137
|
-
|
|
138
|
-
Extract this entity's information from the given raw textual content. Only use the supplied raw textual
|
|
139
|
-
content. DO NOT use your internal model knowledge to fill in gaps of information. ONLY use the supplied
|
|
140
|
-
text!`;
|
|
141
|
-
const resp = await context.gptClient.getStructuredOutput([
|
|
142
|
-
{
|
|
143
|
-
type: 'user',
|
|
144
|
-
items: [{ type: 'text', text: prompt }],
|
|
145
|
-
},
|
|
146
|
-
], FACEBOOK_ENTITY_PAGE_INFO_SCHEMA);
|
|
147
|
-
MiscUtils_1.MiscUtils.updateTokenCounts(resp, context.metadata);
|
|
148
|
-
context.metadata.nextState = 'SUCCESS';
|
|
149
|
-
return {
|
|
150
|
-
isSuccessful: true,
|
|
151
|
-
forLlm: 'Successfully extracted Facebook data.',
|
|
152
|
-
metadata: resp.output,
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
if (error instanceof DonobuException_1.DonobuException) {
|
|
157
|
-
context.metadata.nextState = 'FAILED';
|
|
158
|
-
return {
|
|
159
|
-
isSuccessful: false,
|
|
160
|
-
forLlm: error.userFacingMessage,
|
|
161
|
-
metadata: JsonUtils_1.JsonUtils.objectToJson(error),
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
Logger_1.appLogger.error('Failed to extract Facebook data due to unexpected exception!', error);
|
|
165
|
-
context.metadata.nextState = 'FAILED';
|
|
166
|
-
return {
|
|
167
|
-
isSuccessful: false,
|
|
168
|
-
forLlm: error instanceof Error ? error.message : String(error),
|
|
169
|
-
metadata: null,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
async callFromGpt(context, parameters) {
|
|
174
|
-
return this.call(context, parameters);
|
|
175
|
-
}
|
|
176
|
-
getInitialFacebookPageUrl(parameters) {
|
|
177
|
-
if (parameters.facebookEntityName) {
|
|
178
|
-
return `https://www.facebook.com/${parameters.facebookEntityName}`;
|
|
179
|
-
}
|
|
180
|
-
else if (parameters.facebookEntityUrl) {
|
|
181
|
-
const tmp = parameters.facebookEntityUrl;
|
|
182
|
-
return !tmp.startsWith('http') ? 'https://' + tmp : tmp;
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
throw new InvalidParamValueException_1.InvalidParamValueException('facebookEntityUrl', null);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
getAboutProfileTransparencyPageUrl(url) {
|
|
189
|
-
try {
|
|
190
|
-
const uri = new URL(url);
|
|
191
|
-
const params = new URLSearchParams(uri.search);
|
|
192
|
-
params.delete('sk');
|
|
193
|
-
params.append('sk', 'about_profile_transparency');
|
|
194
|
-
uri.search = params.toString();
|
|
195
|
-
return uri.toString();
|
|
196
|
-
}
|
|
197
|
-
catch (_error) {
|
|
198
|
-
throw new Error(`Invalid URL: ${url}`);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
getAboutContactAndBasicInfoPageUrl(url) {
|
|
202
|
-
try {
|
|
203
|
-
const uri = new URL(url);
|
|
204
|
-
const params = new URLSearchParams(uri.search);
|
|
205
|
-
params.delete('sk');
|
|
206
|
-
params.append('sk', 'about_contact_and_basic_info');
|
|
207
|
-
uri.search = params.toString();
|
|
208
|
-
return uri.toString();
|
|
209
|
-
}
|
|
210
|
-
catch (_error) {
|
|
211
|
-
throw new Error(`Invalid URL: ${url}`);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
async closeModal(page) {
|
|
215
|
-
try {
|
|
216
|
-
await page.locator('div[aria-label="Close"]').first().click({
|
|
217
|
-
delay: MiscUtils_1.MiscUtils.generateHumanLikeClickDurationInMs(),
|
|
218
|
-
timeout: 5000,
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
catch (_error) {
|
|
222
|
-
Logger_1.appLogger.warn('Failed to detect Facebook modal to close, but continuing anyway...');
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
exports.ExtractPublicFacebookEntityDataTool = ExtractPublicFacebookEntityDataTool;
|
|
227
|
-
ExtractPublicFacebookEntityDataTool.NAME = 'extractPublicFacebookEntityData';
|
|
228
|
-
//# sourceMappingURL=ExtractPublicFacebookEntityDataTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractPublicFacebookEntityDataTool.js","sourceRoot":"","sources":["../../../src/tools/ExtractPublicFacebookEntityDataTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Tool } from './Tool';
|
|
2
|
-
import { ToolCallContext } from '../models/ToolCallContext';
|
|
3
|
-
import { ToolCallResult } from '../models/ToolCallResult';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
export declare const GoToGoogleMapsStreetViewCoreSchema: z.ZodObject<{
|
|
6
|
-
entityName: z.ZodString;
|
|
7
|
-
entityLocation: z.ZodString;
|
|
8
|
-
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
entityName: string;
|
|
10
|
-
entityLocation: string;
|
|
11
|
-
}, {
|
|
12
|
-
entityName: string;
|
|
13
|
-
entityLocation: string;
|
|
14
|
-
}>;
|
|
15
|
-
export declare const GoToGoogleMapsStreetViewGptSchema: z.ZodObject<{
|
|
16
|
-
rationale: z.ZodString;
|
|
17
|
-
} & {
|
|
18
|
-
entityName: z.ZodString;
|
|
19
|
-
entityLocation: z.ZodString;
|
|
20
|
-
}, "strip", z.ZodTypeAny, {
|
|
21
|
-
rationale: string;
|
|
22
|
-
entityName: string;
|
|
23
|
-
entityLocation: string;
|
|
24
|
-
}, {
|
|
25
|
-
rationale: string;
|
|
26
|
-
entityName: string;
|
|
27
|
-
entityLocation: string;
|
|
28
|
-
}>;
|
|
29
|
-
/**
|
|
30
|
-
* Attempts to verify that the given business/entity exists at the given location by using a Google
|
|
31
|
-
* Maps street view. If the business/entity is found, then a AggregateExtractedStreetviewDataTool
|
|
32
|
-
* tool call is queued containing the results.
|
|
33
|
-
*/
|
|
34
|
-
export declare class GoToGoogleMapsStreetViewTool extends Tool<typeof GoToGoogleMapsStreetViewCoreSchema, typeof GoToGoogleMapsStreetViewGptSchema> {
|
|
35
|
-
static readonly NAME = "goToGoogleMapsStreetView";
|
|
36
|
-
constructor();
|
|
37
|
-
call(context: ToolCallContext, parameters: z.infer<typeof GoToGoogleMapsStreetViewCoreSchema>): Promise<ToolCallResult>;
|
|
38
|
-
callFromGpt(context: ToolCallContext, parameters: z.infer<typeof GoToGoogleMapsStreetViewGptSchema>): Promise<ToolCallResult>;
|
|
39
|
-
private setStreetView;
|
|
40
|
-
private setStreetViewUsingQuery;
|
|
41
|
-
/**
|
|
42
|
-
* Remove UI elements that can distract the GPT when performing an analysis. This is a fragile
|
|
43
|
-
* script and will break depending on the device used and on the whims of Google.
|
|
44
|
-
*/
|
|
45
|
-
private cleanupUiElements;
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=GoToGoogleMapsStreetViewTool.d.ts.map
|