donobu 2.26.0 → 2.27.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/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/control-panel.js +9 -0
- package/dist/assets/generated/version +1 -1
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +6 -1
- package/dist/bindings/PageInteractionTracker.js.map +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/control-panel.js +9 -0
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +6 -1
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/lib/DonobuExtendedPage.d.ts +7 -0
- package/dist/esm/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.d.ts.map +1 -1
- package/dist/esm/lib/testExtension.js +13 -2
- package/dist/esm/lib/testExtension.js.map +1 -1
- package/dist/esm/lib/utils/selfHealing.d.ts +2 -2
- package/dist/esm/lib/utils/selfHealing.d.ts.map +1 -1
- package/dist/esm/lib/utils/selfHealing.js +55 -47
- 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 +10 -2
- package/dist/esm/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlowsManager.js +15 -6
- 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/models/BrowserStorageState.d.ts +8 -23
- package/dist/esm/models/BrowserStorageState.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts +1 -1
- package/dist/esm/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/esm/utils/BrowserUtils.js +4 -1
- package/dist/esm/utils/BrowserUtils.js.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.d.ts +4 -3
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +60 -31
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/lib/DonobuExtendedPage.d.ts +7 -0
- package/dist/lib/DonobuExtendedPage.d.ts.map +1 -1
- package/dist/lib/testExtension.d.ts.map +1 -1
- package/dist/lib/testExtension.js +13 -2
- package/dist/lib/testExtension.js.map +1 -1
- package/dist/lib/utils/selfHealing.d.ts +2 -2
- package/dist/lib/utils/selfHealing.d.ts.map +1 -1
- package/dist/lib/utils/selfHealing.js +55 -47
- 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 +10 -2
- package/dist/managers/DonobuFlowsManager.d.ts.map +1 -1
- package/dist/managers/DonobuFlowsManager.js +15 -6
- 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/BrowserStorageState.d.ts +8 -23
- package/dist/models/BrowserStorageState.d.ts.map +1 -1
- package/dist/models/FlowMetadata.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.d.ts +1 -1
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.js +4 -1
- package/dist/utils/BrowserUtils.js.map +1 -1
- package/dist/utils/PlaywrightUtils.d.ts +4 -3
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +60 -31
- 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,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AggregateExtractedStreetviewDataTool = void 0;
|
|
4
|
-
const Tool_1 = require("./Tool");
|
|
5
|
-
const ExtractGoogleStreetviewEntityDataTool_1 = require("./ExtractGoogleStreetviewEntityDataTool");
|
|
6
|
-
const ToolSchema_1 = require("../models/ToolSchema");
|
|
7
|
-
/**
|
|
8
|
-
* Ends the current flow by aggregating the data gathered by the ExtractGoogleStreetviewEntityDataTool
|
|
9
|
-
* and GoToGoogleMapsStreetViewTool classes (likely kicked off by SpecialFlowsApi#extractGoogleStreetviewEntityData.
|
|
10
|
-
* Note that there is special handling using the ExtractGoogleStreetviewEntityDataTool's
|
|
11
|
-
* "recommendedNextStepForStreetViewNavigator", and "isBusinessMatch" fields. Additionally, there is
|
|
12
|
-
* a check to see if GoToGoogleMapsStreetViewTool failed, since the entire flow is
|
|
13
|
-
* predicated on that step succeeding.
|
|
14
|
-
*/
|
|
15
|
-
class AggregateExtractedStreetviewDataTool extends Tool_1.Tool {
|
|
16
|
-
constructor() {
|
|
17
|
-
const extractTool = new ExtractGoogleStreetviewEntityDataTool_1.ExtractGoogleStreetviewEntityDataTool();
|
|
18
|
-
super(AggregateExtractedStreetviewDataTool.NAME, `Aggregate data extracted by the '${extractTool.name}' tool and end the flow.
|
|
19
|
-
|
|
20
|
-
IMPORTANT: Only business/entity data extracted via the '${extractTool.name}' tool is considered for this operation! Do NOT
|
|
21
|
-
call this tool until all the relevant business/entity data has been extracted via that tool! Note that you
|
|
22
|
-
need to call the '${extractTool.name}' for each unique street view!`, ToolSchema_1.NoArgsSchema, ToolSchema_1.BaseGptArgsSchema);
|
|
23
|
-
}
|
|
24
|
-
async call(context, _parameters) {
|
|
25
|
-
const resultMetadata = AggregateExtractedStreetviewDataTool.aggregateStreetviewData(context.invokedToolCalls, context.metadata);
|
|
26
|
-
return {
|
|
27
|
-
isSuccessful: true,
|
|
28
|
-
forLlm: 'Successfully aggregated the extracted street view data.',
|
|
29
|
-
metadata: resultMetadata,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
static aggregateStreetviewData(invokedToolCalls, metadata) {
|
|
33
|
-
const extractBusinessDataTool = new ExtractGoogleStreetviewEntityDataTool_1.ExtractGoogleStreetviewEntityDataTool();
|
|
34
|
-
const accumulatedResults = invokedToolCalls
|
|
35
|
-
.filter((tc) => tc.toolName === extractBusinessDataTool.name)
|
|
36
|
-
.map((tc) => tc.outcome)
|
|
37
|
-
.filter((outcome) => outcome.metadata !== null)
|
|
38
|
-
.map((outcome) => outcome.metadata)
|
|
39
|
-
.filter((metadata) => metadata.businessSignage !== undefined)
|
|
40
|
-
.sort((a, b) => {
|
|
41
|
-
// Sort in reverse order (true values first)
|
|
42
|
-
return b.isBusinessMatch - a.isBusinessMatch;
|
|
43
|
-
})
|
|
44
|
-
.map((metadata) => {
|
|
45
|
-
const copy = { ...metadata };
|
|
46
|
-
delete copy.recommendedNextStepForStreetViewNavigator;
|
|
47
|
-
return copy;
|
|
48
|
-
});
|
|
49
|
-
metadata.nextState = 'SUCCESS';
|
|
50
|
-
return {
|
|
51
|
-
streetviews: accumulatedResults,
|
|
52
|
-
flowId: metadata.id,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
async callFromGpt(context, parameters) {
|
|
56
|
-
return this.call(context, parameters);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.AggregateExtractedStreetviewDataTool = AggregateExtractedStreetviewDataTool;
|
|
60
|
-
AggregateExtractedStreetviewDataTool.NAME = 'aggregateExtractedStreetviewData';
|
|
61
|
-
//# sourceMappingURL=AggregateExtractedStreetviewDataTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AggregateExtractedStreetviewDataTool.js","sourceRoot":"","sources":["../../../src/tools/AggregateExtractedStreetviewDataTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAG9B,mGAAgG;AAEhG,qDAAuE;AAGvE;;;;;;;GAOG;AACH,MAAa,oCAAqC,SAAQ,WAGzD;IAGC;QACE,MAAM,WAAW,GAAG,IAAI,6EAAqC,EAAE,CAAC;QAChE,KAAK,CACH,oCAAoC,CAAC,IAAI,EACzC,oCAAoC,WAAW,CAAC,IAAI;;gEAEM,WAAW,CAAC,IAAI;;0BAEtD,WAAW,CAAC,IAAI,gCAAgC,EACpE,yBAAY,EACZ,8BAAiB,CAClB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,WAAyC;QAEzC,MAAM,cAAc,GAClB,oCAAoC,CAAC,uBAAuB,CAC1D,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,QAAQ,CACjB,CAAC;QACJ,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,yDAAyD;YACjE,QAAQ,EAAE,cAAc;SACzB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,uBAAuB,CACnC,gBAA4B,EAC5B,QAAa;QAEb,MAAM,uBAAuB,GAAG,IAAI,6EAAqC,EAAE,CAAC;QAE5E,MAAM,kBAAkB,GAAG,gBAAgB;aACxC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,uBAAuB,CAAC,IAAI,CAAC;aAC5D,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;aACvB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;aAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;aAClC,MAAM,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC;aACjE,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;YACvB,4CAA4C;YAC5C,OAAO,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe,CAAC;QAC/C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,yCAAyC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEL,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QAE/B,OAAO;YACL,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,QAAQ,CAAC,EAAE;SACpB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,UAA6C;QAE7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;;AAvEH,oFAwEC;AApEwB,yCAAI,GAAG,kCAAkC,CAAC"}
|
|
@@ -1,62 +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 PropertyTypeSchema: z.ZodEnum<["RESIDENTIAL", "RETAIL", "OFFICE_BUILDING", "INDUSTRIAL", "EMPTY_LOT"]>;
|
|
6
|
-
export declare const ExtractGoogleStreetviewEntityDataCoreSchema: z.ZodObject<{
|
|
7
|
-
entityName: z.ZodString;
|
|
8
|
-
}, "strip", z.ZodTypeAny, {
|
|
9
|
-
entityName: string;
|
|
10
|
-
}, {
|
|
11
|
-
entityName: string;
|
|
12
|
-
}>;
|
|
13
|
-
export declare const ExtractGoogleStreetviewEntityDataGptSchema: z.ZodObject<{
|
|
14
|
-
rationale: z.ZodString;
|
|
15
|
-
} & {
|
|
16
|
-
entityName: z.ZodString;
|
|
17
|
-
}, "strip", z.ZodTypeAny, {
|
|
18
|
-
rationale: string;
|
|
19
|
-
entityName: string;
|
|
20
|
-
}, {
|
|
21
|
-
rationale: string;
|
|
22
|
-
entityName: string;
|
|
23
|
-
}>;
|
|
24
|
-
export declare const MetadataSchema: z.ZodObject<{
|
|
25
|
-
businessSignage: z.ZodArray<z.ZodString, "many">;
|
|
26
|
-
otherSignage: z.ZodArray<z.ZodString, "many">;
|
|
27
|
-
isBusinessMatch: z.ZodBoolean;
|
|
28
|
-
imageId: z.ZodString;
|
|
29
|
-
googleMapsStreetviewUrl: z.ZodString;
|
|
30
|
-
typeOfProperty: z.ZodEnum<["RESIDENTIAL", "RETAIL", "OFFICE_BUILDING", "INDUSTRIAL", "EMPTY_LOT"]>;
|
|
31
|
-
recommendedNextStepForStreetViewNavigator: z.ZodEnum<["ROTATE_CLOCKWISE", "ROTATE_COUNTERCLOCKWISE", "ZOOM_IN", "ZOOM_OUT"]>;
|
|
32
|
-
}, "strip", z.ZodTypeAny, {
|
|
33
|
-
businessSignage: string[];
|
|
34
|
-
otherSignage: string[];
|
|
35
|
-
typeOfProperty: "RESIDENTIAL" | "RETAIL" | "OFFICE_BUILDING" | "INDUSTRIAL" | "EMPTY_LOT";
|
|
36
|
-
recommendedNextStepForStreetViewNavigator: "ROTATE_CLOCKWISE" | "ROTATE_COUNTERCLOCKWISE" | "ZOOM_IN" | "ZOOM_OUT";
|
|
37
|
-
isBusinessMatch: boolean;
|
|
38
|
-
imageId: string;
|
|
39
|
-
googleMapsStreetviewUrl: string;
|
|
40
|
-
}, {
|
|
41
|
-
businessSignage: string[];
|
|
42
|
-
otherSignage: string[];
|
|
43
|
-
typeOfProperty: "RESIDENTIAL" | "RETAIL" | "OFFICE_BUILDING" | "INDUSTRIAL" | "EMPTY_LOT";
|
|
44
|
-
recommendedNextStepForStreetViewNavigator: "ROTATE_CLOCKWISE" | "ROTATE_COUNTERCLOCKWISE" | "ZOOM_IN" | "ZOOM_OUT";
|
|
45
|
-
isBusinessMatch: boolean;
|
|
46
|
-
imageId: string;
|
|
47
|
-
googleMapsStreetviewUrl: string;
|
|
48
|
-
}>;
|
|
49
|
-
/**
|
|
50
|
-
* Extracts data from the current Google Maps Street View. If the current page is not a Google Maps
|
|
51
|
-
* Street View, then the operation is undefined.
|
|
52
|
-
*/
|
|
53
|
-
export declare class ExtractGoogleStreetviewEntityDataTool extends Tool<typeof ExtractGoogleStreetviewEntityDataCoreSchema, typeof ExtractGoogleStreetviewEntityDataGptSchema> {
|
|
54
|
-
static readonly NAME = "extractGoogleStreetviewEntityData";
|
|
55
|
-
constructor();
|
|
56
|
-
call(context: ToolCallContext, parameters: z.infer<typeof ExtractGoogleStreetviewEntityDataCoreSchema>): Promise<ToolCallResult>;
|
|
57
|
-
callFromGpt(context: ToolCallContext, parameters: z.infer<typeof ExtractGoogleStreetviewEntityDataGptSchema>): Promise<ToolCallResult>;
|
|
58
|
-
private wiggleMouseThenPause;
|
|
59
|
-
private extractEntityData;
|
|
60
|
-
private doesBusinessExistInSignage;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=ExtractGoogleStreetviewEntityDataTool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractGoogleStreetviewEntityDataTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ExtractGoogleStreetviewEntityDataTool.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;AAU1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB,oFAM7B,CAAC;AAEH,eAAO,MAAM,2CAA2C;;;;;;EAItD,CAAC;AAEH,eAAO,MAAM,0CAA0C;;;;;;;;;;EACe,CAAC;AAuBvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAC;AAEH;;;GAGG;AACH,qBAAa,qCAAsC,SAAQ,IAAI,CAC7D,OAAO,2CAA2C,EAClD,OAAO,0CAA0C,CAClD;IACC,gBAAuB,IAAI,uCAAuC;;IAa5C,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,2CAA2C,CAAC,GACtE,OAAO,CAAC,cAAc,CAAC;IAkFV,WAAW,CACzB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,GACrE,OAAO,CAAC,cAAc,CAAC;YAIZ,oBAAoB;YAkBpB,iBAAiB;YAsBjB,0BAA0B;CAsBzC"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExtractGoogleStreetviewEntityDataTool = exports.MetadataSchema = exports.ExtractGoogleStreetviewEntityDataGptSchema = exports.ExtractGoogleStreetviewEntityDataCoreSchema = exports.PropertyTypeSchema = void 0;
|
|
4
|
-
const Tool_1 = require("./Tool");
|
|
5
|
-
const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
|
|
6
|
-
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
7
|
-
const NavigateWithinStreetView_1 = require("./NavigateWithinStreetView");
|
|
8
|
-
const AggregateExtractedStreetviewDataTool_1 = require("./AggregateExtractedStreetviewDataTool");
|
|
9
|
-
const zod_1 = require("zod");
|
|
10
|
-
const ToolSchema_1 = require("../models/ToolSchema");
|
|
11
|
-
exports.PropertyTypeSchema = zod_1.z.enum([
|
|
12
|
-
'RESIDENTIAL',
|
|
13
|
-
'RETAIL',
|
|
14
|
-
'OFFICE_BUILDING',
|
|
15
|
-
'INDUSTRIAL',
|
|
16
|
-
'EMPTY_LOT',
|
|
17
|
-
]);
|
|
18
|
-
exports.ExtractGoogleStreetviewEntityDataCoreSchema = zod_1.z.object({
|
|
19
|
-
entityName: zod_1.z
|
|
20
|
-
.string()
|
|
21
|
-
.describe('The target business/entity to keep a careful eye out for.'),
|
|
22
|
-
});
|
|
23
|
-
exports.ExtractGoogleStreetviewEntityDataGptSchema = ToolSchema_1.BaseGptArgsSchema.merge(exports.ExtractGoogleStreetviewEntityDataCoreSchema);
|
|
24
|
-
const ExtractBusinessDataSchema = zod_1.z.object({
|
|
25
|
-
businessSignage: zod_1.z
|
|
26
|
-
.array(zod_1.z.string())
|
|
27
|
-
.describe('A list of all of the business signage text'),
|
|
28
|
-
otherSignage: zod_1.z
|
|
29
|
-
.array(zod_1.z.string())
|
|
30
|
-
.describe('A list of all of the non-business signage text'),
|
|
31
|
-
typeOfProperty: exports.PropertyTypeSchema,
|
|
32
|
-
recommendedNextStepForStreetViewNavigator: NavigateWithinStreetView_1.Action.describe('Recommended next step for street view navigation'),
|
|
33
|
-
});
|
|
34
|
-
const DoesBusinessExistSchema = zod_1.z.object({
|
|
35
|
-
isBusinessMatch: zod_1.z
|
|
36
|
-
.boolean()
|
|
37
|
-
.describe('Set to true IF AND ONLY IF the business being sought exists in given business signage'),
|
|
38
|
-
});
|
|
39
|
-
exports.MetadataSchema = zod_1.z.object({
|
|
40
|
-
businessSignage: zod_1.z.array(zod_1.z.string()),
|
|
41
|
-
otherSignage: zod_1.z.array(zod_1.z.string()),
|
|
42
|
-
isBusinessMatch: zod_1.z.boolean(),
|
|
43
|
-
imageId: zod_1.z.string(),
|
|
44
|
-
googleMapsStreetviewUrl: zod_1.z.string(),
|
|
45
|
-
typeOfProperty: exports.PropertyTypeSchema,
|
|
46
|
-
recommendedNextStepForStreetViewNavigator: NavigateWithinStreetView_1.Action,
|
|
47
|
-
});
|
|
48
|
-
/**
|
|
49
|
-
* Extracts data from the current Google Maps Street View. If the current page is not a Google Maps
|
|
50
|
-
* Street View, then the operation is undefined.
|
|
51
|
-
*/
|
|
52
|
-
class ExtractGoogleStreetviewEntityDataTool extends Tool_1.Tool {
|
|
53
|
-
constructor() {
|
|
54
|
-
super(ExtractGoogleStreetviewEntityDataTool.NAME, `Extract business/entity data from the current Google Maps street view, paying particular attention for a given target
|
|
55
|
-
business/entity. This tool should be called for each unique street view.`, exports.ExtractGoogleStreetviewEntityDataCoreSchema, exports.ExtractGoogleStreetviewEntityDataGptSchema, true);
|
|
56
|
-
}
|
|
57
|
-
async call(context, parameters) {
|
|
58
|
-
const page = context.page.current;
|
|
59
|
-
const firstCallForThisUrl = context.invokedToolCalls.find((tc) => tc.toolName === this.name && tc.page === page.url());
|
|
60
|
-
// Remove Google Maps survey if present
|
|
61
|
-
await NavigateWithinStreetView_1.NavigateWithinStreetViewTool.removeGoogleMapsSurvey(page);
|
|
62
|
-
if (firstCallForThisUrl) {
|
|
63
|
-
await context.interactionVisualizer.pointAt(page, page.locator('body'), `Skipping ${this.name} call since it has already extracted data for this view.`);
|
|
64
|
-
const originalRec = firstCallForThisUrl.parameters
|
|
65
|
-
.recommendedNextStepForStreetViewNavigator;
|
|
66
|
-
const advice = !originalRec
|
|
67
|
-
? ''
|
|
68
|
-
: `The prior recommendedNextStepForStreetViewNavigator was \`${originalRec}\`, maybe try something else.`;
|
|
69
|
-
return {
|
|
70
|
-
isSuccessful: true,
|
|
71
|
-
forLlm: `Skipping ${this.name} call since it has already extracted data for this view.
|
|
72
|
-
Call the ${NavigateWithinStreetView_1.NavigateWithinStreetViewTool.NAME} tool next!
|
|
73
|
-
${advice}`.trim(),
|
|
74
|
-
metadata: null,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
const entityName = parameters.entityName.trim();
|
|
79
|
-
await this.wiggleMouseThenPause(page);
|
|
80
|
-
const screenshot = await PlaywrightUtils_1.PlaywrightUtils.takeViewportScreenshot(page);
|
|
81
|
-
const screenshotFilename = await context.persistence.saveScreenShot(context.metadata.id, screenshot);
|
|
82
|
-
const googleMapsStreetviewUrl = page.url();
|
|
83
|
-
const entityData = await this.extractEntityData(context, screenshot);
|
|
84
|
-
const filteredBusinessSignage = entityData.businessSignage.filter((sign) => sign && sign.trim() !== '');
|
|
85
|
-
const otherSignage = entityData.otherSignage
|
|
86
|
-
? entityData.otherSignage.filter((sign) => sign && sign.trim() !== '')
|
|
87
|
-
: [];
|
|
88
|
-
const doesBusinessExistInSignage = await this.doesBusinessExistInSignage(context, entityName, filteredBusinessSignage);
|
|
89
|
-
const metadata = {
|
|
90
|
-
businessSignage: filteredBusinessSignage,
|
|
91
|
-
otherSignage,
|
|
92
|
-
isBusinessMatch: doesBusinessExistInSignage,
|
|
93
|
-
imageId: screenshotFilename,
|
|
94
|
-
googleMapsStreetviewUrl,
|
|
95
|
-
typeOfProperty: entityData.typeOfProperty,
|
|
96
|
-
recommendedNextStepForStreetViewNavigator: entityData.recommendedNextStepForStreetViewNavigator,
|
|
97
|
-
};
|
|
98
|
-
// Validate the metadata against our schema
|
|
99
|
-
const validatedMetadata = exports.MetadataSchema.parse(metadata);
|
|
100
|
-
if (doesBusinessExistInSignage) {
|
|
101
|
-
context.proposedToolCalls.push({
|
|
102
|
-
name: AggregateExtractedStreetviewDataTool_1.AggregateExtractedStreetviewDataTool.NAME,
|
|
103
|
-
parameters: {},
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
const dataForGpt = JSON.stringify(validatedMetadata, null, 2);
|
|
107
|
-
return {
|
|
108
|
-
isSuccessful: true,
|
|
109
|
-
forLlm: dataForGpt,
|
|
110
|
-
metadata: validatedMetadata,
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
callFromGpt(context, parameters) {
|
|
115
|
-
return this.call(context, parameters);
|
|
116
|
-
}
|
|
117
|
-
async wiggleMouseThenPause(page) {
|
|
118
|
-
const rand = Math.random();
|
|
119
|
-
const x = 650 + Math.floor(rand * 10);
|
|
120
|
-
const y = 550 + Math.floor(rand * 10);
|
|
121
|
-
const wiggleDistance = 5 + Math.floor(rand * 5);
|
|
122
|
-
await page.mouse.move(x, y);
|
|
123
|
-
await page.waitForTimeout(10 + Math.floor(rand * 50));
|
|
124
|
-
await page.mouse.move(x + wiggleDistance, y);
|
|
125
|
-
await page.waitForTimeout(10 + Math.floor(rand * 50));
|
|
126
|
-
await page.mouse.move(x, y + wiggleDistance);
|
|
127
|
-
await page.waitForTimeout(10 + Math.floor(rand * 50));
|
|
128
|
-
await page.mouse.move(x - wiggleDistance, y);
|
|
129
|
-
await page.waitForTimeout(10 + Math.floor(rand * 50));
|
|
130
|
-
await page.mouse.move(x, y - wiggleDistance);
|
|
131
|
-
await page.waitForTimeout(5000);
|
|
132
|
-
}
|
|
133
|
-
async extractEntityData(context, screenshot) {
|
|
134
|
-
const promptText = {
|
|
135
|
-
type: 'text',
|
|
136
|
-
text: 'You are a Google Maps street-view navigator. Extract the business data in this Google Maps street view and recommend next steps for street view navigator to view the building better.',
|
|
137
|
-
};
|
|
138
|
-
const userMessage = {
|
|
139
|
-
type: 'user',
|
|
140
|
-
items: [{ type: 'jpeg', bytes: screenshot }, promptText],
|
|
141
|
-
};
|
|
142
|
-
const gptResp = await context.gptClient.getStructuredOutput([userMessage], ExtractBusinessDataSchema);
|
|
143
|
-
MiscUtils_1.MiscUtils.updateTokenCounts(gptResp, context.metadata);
|
|
144
|
-
const validatedResponse = ExtractBusinessDataSchema.parse(gptResp.output);
|
|
145
|
-
return validatedResponse;
|
|
146
|
-
}
|
|
147
|
-
async doesBusinessExistInSignage(context, businessName, businessSignage) {
|
|
148
|
-
const promptText = {
|
|
149
|
-
type: 'text',
|
|
150
|
-
text: `Does the business/entity, ${businessName}, exist in this list of business signage? Signage: ${businessSignage}`,
|
|
151
|
-
};
|
|
152
|
-
const userMessage = {
|
|
153
|
-
type: 'user',
|
|
154
|
-
items: [promptText],
|
|
155
|
-
};
|
|
156
|
-
const gptResp = await context.gptClient.getStructuredOutput([userMessage], DoesBusinessExistSchema);
|
|
157
|
-
MiscUtils_1.MiscUtils.updateTokenCounts(gptResp, context.metadata);
|
|
158
|
-
const validatedResponse = DoesBusinessExistSchema.parse(gptResp.output);
|
|
159
|
-
return validatedResponse.isBusinessMatch;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
exports.ExtractGoogleStreetviewEntityDataTool = ExtractGoogleStreetviewEntityDataTool;
|
|
163
|
-
ExtractGoogleStreetviewEntityDataTool.NAME = 'extractGoogleStreetviewEntityData';
|
|
164
|
-
//# sourceMappingURL=ExtractGoogleStreetviewEntityDataTool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractGoogleStreetviewEntityDataTool.js","sourceRoot":"","sources":["../../../src/tools/ExtractGoogleStreetviewEntityDataTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Tool } from './Tool';
|
|
2
|
-
import { ToolCallContext } from '../models/ToolCallContext';
|
|
3
|
-
import { ToolCallResult } from '../models/ToolCallResult';
|
|
4
|
-
import { BaseGptArgsSchema, NoArgsSchema } from '../models/ToolSchema';
|
|
5
|
-
import { z } from 'zod';
|
|
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
|
-
export declare class ExtractPaymentProviderKeyTool extends Tool<typeof NoArgsSchema, typeof BaseGptArgsSchema> {
|
|
33
|
-
static readonly NAME = "extractPaymentProviderKey";
|
|
34
|
-
private static readonly EXCLUDED_PATTERNS;
|
|
35
|
-
private static readonly PAYPAL_CLIENT_ID_PATTERN;
|
|
36
|
-
private static readonly PAYPAL_CONTEXT_INDICATORS;
|
|
37
|
-
private static readonly PAYPAL_MERCHANT_CONTEXT_INDICATORS;
|
|
38
|
-
private static readonly STRIPE_MERCHANT_CONTEXT_INDICATORS;
|
|
39
|
-
constructor();
|
|
40
|
-
call(context: ToolCallContext, _parameters: z.infer<typeof NoArgsSchema>): Promise<ToolCallResult>;
|
|
41
|
-
callFromGpt(context: ToolCallContext, parameters: z.infer<typeof BaseGptArgsSchema>): Promise<ToolCallResult>;
|
|
42
|
-
/**
|
|
43
|
-
* Extract potential PayPal client ID candidates from script content
|
|
44
|
-
*/
|
|
45
|
-
private extractPayPalCandidates;
|
|
46
|
-
/**
|
|
47
|
-
* Enhanced validation for PayPal client IDs
|
|
48
|
-
*/
|
|
49
|
-
private isValidPayPalClientId;
|
|
50
|
-
/**
|
|
51
|
-
* Validate Stripe merchant IDs
|
|
52
|
-
*/
|
|
53
|
-
private isValidStripeMerchantId;
|
|
54
|
-
/**
|
|
55
|
-
* Validate PayPal merchant IDs
|
|
56
|
-
*/
|
|
57
|
-
private isValidPayPalMerchantId;
|
|
58
|
-
/**
|
|
59
|
-
* Check for strong PayPal contextual indicators near the candidate key
|
|
60
|
-
*/
|
|
61
|
-
private hasStrongPayPalContext;
|
|
62
|
-
/**
|
|
63
|
-
* Check for Stripe contextual indicators near the merchant ID
|
|
64
|
-
*/
|
|
65
|
-
private hasStripeContext;
|
|
66
|
-
/**
|
|
67
|
-
* Check for PayPal merchant contextual indicators near the merchant ID
|
|
68
|
-
*/
|
|
69
|
-
private hasPayPalMerchantContext;
|
|
70
|
-
/**
|
|
71
|
-
* Check if the candidate appears in a structured context (assignments, objects, etc.)
|
|
72
|
-
*/
|
|
73
|
-
private hasStructuredPayPalContext;
|
|
74
|
-
/**
|
|
75
|
-
* Collects text bodies for:
|
|
76
|
-
* - all inline <script> blocks
|
|
77
|
-
* - every <script src="…"> that is present in the DOM
|
|
78
|
-
*/
|
|
79
|
-
private static getAllScriptSources;
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=ExtractPaymentProviderKeyTool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractPaymentProviderKeyTool.d.ts","sourceRoot":"","sources":["../../../src/tools/ExtractPaymentProviderKeyTool.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;AAC1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,6BAA8B,SAAQ,IAAI,CACrD,OAAO,YAAY,EACnB,OAAO,iBAAiB,CACzB;IACC,gBAAuB,IAAI,+BAA+B;IAG1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAmBvC;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAA6B;IAG7E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAW/C;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAWxD;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAUxD;;IAWoB,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACxC,OAAO,CAAC,cAAc,CAAC;IAsFJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GAC5C,OAAO,CAAC,cAAc,CAAC;IAI1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;;;OAIG;mBACkB,mBAAmB;CAkCzC"}
|