donobu 2.15.1 → 2.16.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/assets/control-panel.js +30 -3
- package/dist/assets/generated/parameter-schemas.json +33 -33
- package/dist/assets/generated/version +1 -1
- package/dist/assets/interactive-elements-tracker.js +351 -0
- package/dist/assets/page-interactions-tracker.js +39 -20
- package/dist/assets/smart-selector-generator.js +38 -15
- package/dist/bindings/FocusPage.d.ts +6 -1
- package/dist/bindings/FocusPage.d.ts.map +1 -1
- package/dist/bindings/FocusPage.js +2 -8
- package/dist/bindings/FocusPage.js.map +1 -1
- package/dist/bindings/PageInteractionTracker.d.ts +9 -2
- package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/bindings/PageInteractionTracker.js +27 -3
- package/dist/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/bindings/ProposeToolCall.d.ts +20 -0
- package/dist/bindings/ProposeToolCall.d.ts.map +1 -0
- package/dist/bindings/ProposeToolCall.js +29 -0
- package/dist/bindings/ProposeToolCall.js.map +1 -0
- package/dist/bindings/ToggleDonobuAnnotations.d.ts +5 -2
- package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
- package/dist/bindings/ToggleDonobuAnnotations.js +12 -6
- package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
- package/dist/esm/assets/control-panel.js +30 -3
- package/dist/esm/assets/generated/parameter-schemas.json +33 -33
- package/dist/esm/assets/generated/version +1 -1
- package/dist/esm/assets/interactive-elements-tracker.js +351 -0
- package/dist/esm/assets/page-interactions-tracker.js +39 -20
- package/dist/esm/assets/smart-selector-generator.js +38 -15
- package/dist/esm/bindings/FocusPage.d.ts +6 -1
- package/dist/esm/bindings/FocusPage.d.ts.map +1 -1
- package/dist/esm/bindings/FocusPage.js +2 -8
- package/dist/esm/bindings/FocusPage.js.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.d.ts +9 -2
- package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
- package/dist/esm/bindings/PageInteractionTracker.js +27 -3
- package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
- package/dist/esm/bindings/ProposeToolCall.d.ts +20 -0
- package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -0
- package/dist/esm/bindings/ProposeToolCall.js +29 -0
- package/dist/esm/bindings/ProposeToolCall.js.map +1 -0
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +5 -2
- package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
- package/dist/esm/bindings/ToggleDonobuAnnotations.js +12 -6
- package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
- package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/esm/managers/CodeGenerator.js +2 -1
- package/dist/esm/managers/CodeGenerator.js.map +1 -1
- package/dist/esm/managers/ControlPanel.d.ts +124 -0
- package/dist/esm/managers/ControlPanel.d.ts.map +1 -0
- package/dist/esm/managers/ControlPanel.js +282 -0
- package/dist/esm/managers/ControlPanel.js.map +1 -0
- package/dist/esm/managers/DonobuFlow.d.ts +4 -12
- package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/esm/managers/DonobuFlow.js +35 -140
- package/dist/esm/managers/DonobuFlow.js.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.d.ts +9 -15
- package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/esm/managers/InteractionVisualizer.js +44 -44
- package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
- package/dist/esm/managers/PageInspector.d.ts +242 -0
- package/dist/esm/managers/PageInspector.d.ts.map +1 -0
- package/dist/esm/managers/PageInspector.js +783 -0
- package/dist/esm/managers/PageInspector.js.map +1 -0
- package/dist/esm/managers/ToolManager.d.ts.map +1 -1
- package/dist/esm/managers/ToolManager.js +3 -5
- package/dist/esm/managers/ToolManager.js.map +1 -1
- package/dist/esm/models/InteractableElement.d.ts +2 -2
- package/dist/esm/models/ToolCallContext.d.ts +6 -2
- package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
- package/dist/esm/playwrightTestExtensions.d.ts +5 -0
- package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/esm/playwrightTestExtensions.js +52 -13
- package/dist/esm/playwrightTestExtensions.js.map +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
- package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -1
- package/dist/esm/tools/AssertPageTextTool.js +1 -1
- package/dist/esm/tools/AssertPageTextTool.js.map +1 -1
- package/dist/esm/tools/AssertTool.d.ts.map +1 -1
- package/dist/esm/tools/AssertTool.js +4 -4
- package/dist/esm/tools/AssertTool.js.map +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
- package/dist/esm/tools/ChangeWebBrowserTabTool.js +8 -7
- package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -1
- package/dist/esm/tools/ClickTool.js +1 -1
- package/dist/esm/tools/ClickTool.js.map +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
- package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js +1 -1
- package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +1 -1
- package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
- package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
- package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
- package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/esm/tools/GoToWebpageTool.js +1 -1
- package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
- package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
- package/dist/esm/tools/HoverOverElementTool.js +1 -1
- package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
- package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -1
- package/dist/esm/tools/PressKeyTool.js +1 -1
- package/dist/esm/tools/PressKeyTool.js.map +1 -1
- package/dist/esm/tools/ReloadPageTool.js +1 -1
- package/dist/esm/tools/ReloadPageTool.js.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts +16 -1
- package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/esm/tools/ReplayableInteraction.js +169 -16
- package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts +8 -0
- package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/esm/tools/RunAccessibilityTestTool.js +15 -2
- package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
- package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js +1 -1
- package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/esm/tools/ScrollPageTool.d.ts +1 -1
- package/dist/esm/tools/ScrollPageTool.d.ts.map +1 -1
- package/dist/esm/tools/ScrollPageTool.js +47 -4
- package/dist/esm/tools/ScrollPageTool.js.map +1 -1
- package/dist/esm/tools/WaitTool.js +1 -1
- package/dist/esm/tools/WaitTool.js.map +1 -1
- package/dist/esm/utils/MiscUtils.d.ts +2 -2
- package/dist/esm/utils/MiscUtils.js +2 -2
- package/dist/esm/utils/PlaywrightUtils.d.ts +26 -127
- package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/esm/utils/PlaywrightUtils.js +133 -935
- package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
- package/dist/managers/CodeGenerator.d.ts.map +1 -1
- package/dist/managers/CodeGenerator.js +2 -1
- package/dist/managers/CodeGenerator.js.map +1 -1
- package/dist/managers/ControlPanel.d.ts +124 -0
- package/dist/managers/ControlPanel.d.ts.map +1 -0
- package/dist/managers/ControlPanel.js +282 -0
- package/dist/managers/ControlPanel.js.map +1 -0
- package/dist/managers/DonobuFlow.d.ts +4 -12
- package/dist/managers/DonobuFlow.d.ts.map +1 -1
- package/dist/managers/DonobuFlow.js +35 -140
- package/dist/managers/DonobuFlow.js.map +1 -1
- package/dist/managers/InteractionVisualizer.d.ts +9 -15
- package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
- package/dist/managers/InteractionVisualizer.js +44 -44
- package/dist/managers/InteractionVisualizer.js.map +1 -1
- package/dist/managers/PageInspector.d.ts +242 -0
- package/dist/managers/PageInspector.d.ts.map +1 -0
- package/dist/managers/PageInspector.js +783 -0
- package/dist/managers/PageInspector.js.map +1 -0
- package/dist/managers/ToolManager.d.ts.map +1 -1
- package/dist/managers/ToolManager.js +3 -5
- package/dist/managers/ToolManager.js.map +1 -1
- package/dist/models/InteractableElement.d.ts +2 -2
- package/dist/models/ToolCallContext.d.ts +6 -2
- package/dist/models/ToolCallContext.d.ts.map +1 -1
- package/dist/playwrightTestExtensions.d.ts +5 -0
- package/dist/playwrightTestExtensions.d.ts.map +1 -1
- package/dist/playwrightTestExtensions.js +52 -13
- package/dist/playwrightTestExtensions.js.map +1 -1
- package/dist/tools/AnalyzePageTextTool.js +1 -1
- package/dist/tools/AnalyzePageTextTool.js.map +1 -1
- package/dist/tools/AssertPageTextTool.js +1 -1
- package/dist/tools/AssertPageTextTool.js.map +1 -1
- package/dist/tools/AssertTool.d.ts.map +1 -1
- package/dist/tools/AssertTool.js +4 -4
- package/dist/tools/AssertTool.js.map +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
- package/dist/tools/ChangeWebBrowserTabTool.js +8 -7
- package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -1
- package/dist/tools/ClickTool.js +1 -1
- package/dist/tools/ClickTool.js.map +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
- package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
- package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
- package/dist/tools/CustomToolRunnerTool.js +1 -1
- package/dist/tools/CustomToolRunnerTool.js.map +1 -1
- package/dist/tools/DetectBrokenLinksTool.js +1 -1
- package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
- package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js +1 -1
- package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
- package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
- package/dist/tools/GoForwardOrBackTool.js +1 -1
- package/dist/tools/GoForwardOrBackTool.js.map +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
- package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
- package/dist/tools/GoToWebpageTool.js +1 -1
- package/dist/tools/GoToWebpageTool.js.map +1 -1
- package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
- package/dist/tools/HoverOverElementTool.js +1 -1
- package/dist/tools/HoverOverElementTool.js.map +1 -1
- package/dist/tools/NavigateWithinStreetView.js +1 -1
- package/dist/tools/NavigateWithinStreetView.js.map +1 -1
- package/dist/tools/PressKeyTool.js +1 -1
- package/dist/tools/PressKeyTool.js.map +1 -1
- package/dist/tools/ReloadPageTool.js +1 -1
- package/dist/tools/ReloadPageTool.js.map +1 -1
- package/dist/tools/ReplayableInteraction.d.ts +16 -1
- package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
- package/dist/tools/ReplayableInteraction.js +169 -16
- package/dist/tools/ReplayableInteraction.js.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.d.ts +8 -0
- package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
- package/dist/tools/RunAccessibilityTestTool.js +15 -2
- package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
- package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
- package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
- package/dist/tools/ScrollPageTool.d.ts +1 -1
- package/dist/tools/ScrollPageTool.d.ts.map +1 -1
- package/dist/tools/ScrollPageTool.js +47 -4
- package/dist/tools/ScrollPageTool.js.map +1 -1
- package/dist/tools/WaitTool.js +1 -1
- package/dist/tools/WaitTool.js.map +1 -1
- package/dist/utils/MiscUtils.d.ts +2 -2
- package/dist/utils/MiscUtils.js +2 -2
- package/dist/utils/PlaywrightUtils.d.ts +26 -127
- package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
- package/dist/utils/PlaywrightUtils.js +133 -935
- package/dist/utils/PlaywrightUtils.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/clickable-elements-tracker.js +0 -63
- package/dist/assets/zaru-eyes.html +0 -141
- package/dist/esm/assets/clickable-elements-tracker.js +0 -63
- package/dist/esm/assets/zaru-eyes.html +0 -141
- package/dist/esm/managers/TemplateInterpolator.d.ts +0 -19
- package/dist/esm/managers/TemplateInterpolator.d.ts.map +0 -1
- package/dist/esm/managers/TemplateInterpolator.js +0 -86
- package/dist/esm/managers/TemplateInterpolator.js.map +0 -1
- package/dist/esm/managers/ToolTipper.d.ts +0 -32
- package/dist/esm/managers/ToolTipper.d.ts.map +0 -1
- package/dist/esm/managers/ToolTipper.js +0 -229
- package/dist/esm/managers/ToolTipper.js.map +0 -1
- package/dist/esm/models/BrowserState.d.ts +0 -26
- package/dist/esm/models/BrowserState.d.ts.map +0 -1
- package/dist/esm/models/BrowserState.js +0 -3
- package/dist/esm/models/BrowserState.js.map +0 -1
- package/dist/esm/models/ResolverContext.d.ts +0 -7
- package/dist/esm/models/ResolverContext.d.ts.map +0 -1
- package/dist/esm/models/ResolverContext.js +0 -3
- package/dist/esm/models/ResolverContext.js.map +0 -1
- package/dist/esm/models/ToolTemplateDataSource.d.ts +0 -36
- package/dist/esm/models/ToolTemplateDataSource.d.ts.map +0 -1
- package/dist/esm/models/ToolTemplateDataSource.js +0 -3
- package/dist/esm/models/ToolTemplateDataSource.js.map +0 -1
- package/dist/esm/test.d.ts +0 -78
- package/dist/esm/test.d.ts.map +0 -1
- package/dist/esm/test.js +0 -423
- package/dist/esm/test.js.map +0 -1
- package/dist/esm/utils/TemplateInterpolator.d.ts +0 -29
- package/dist/esm/utils/TemplateInterpolator.d.ts.map +0 -1
- package/dist/esm/utils/TemplateInterpolator.js +0 -206
- package/dist/esm/utils/TemplateInterpolator.js.map +0 -1
- package/dist/managers/TemplateInterpolator.d.ts +0 -19
- package/dist/managers/TemplateInterpolator.d.ts.map +0 -1
- package/dist/managers/TemplateInterpolator.js +0 -86
- package/dist/managers/TemplateInterpolator.js.map +0 -1
- package/dist/managers/ToolTipper.d.ts +0 -32
- package/dist/managers/ToolTipper.d.ts.map +0 -1
- package/dist/managers/ToolTipper.js +0 -229
- package/dist/managers/ToolTipper.js.map +0 -1
- package/dist/models/BrowserState.d.ts +0 -26
- package/dist/models/BrowserState.d.ts.map +0 -1
- package/dist/models/BrowserState.js +0 -3
- package/dist/models/BrowserState.js.map +0 -1
- package/dist/models/ResolverContext.d.ts +0 -7
- package/dist/models/ResolverContext.d.ts.map +0 -1
- package/dist/models/ResolverContext.js +0 -3
- package/dist/models/ResolverContext.js.map +0 -1
- package/dist/models/ToolTemplateDataSource.d.ts +0 -36
- package/dist/models/ToolTemplateDataSource.d.ts.map +0 -1
- package/dist/models/ToolTemplateDataSource.js +0 -3
- package/dist/models/ToolTemplateDataSource.js.map +0 -1
- package/dist/test.d.ts +0 -78
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -423
- package/dist/test.js.map +0 -1
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/utils/TemplateInterpolator.d.ts +0 -29
- package/dist/utils/TemplateInterpolator.d.ts.map +0 -1
- package/dist/utils/TemplateInterpolator.js +0 -211
- package/dist/utils/TemplateInterpolator.js.map +0 -1
|
@@ -8,13 +8,16 @@ const PageClosedException_1 = require("../exceptions/PageClosedException");
|
|
|
8
8
|
/**
|
|
9
9
|
* Tools that specify a numbered Donobu annotation to indicate which element to
|
|
10
10
|
* interact with and support deterministic reruns should extend this interface.
|
|
11
|
+
*
|
|
12
|
+
* This class assumes the {@link PlaywrightUtils.SMART_SELECTOR_GENERATOR_INIT_SCRIPT}
|
|
13
|
+
* has been run on the associated browser context.
|
|
11
14
|
*/
|
|
12
15
|
class ReplayableInteraction extends Tool_1.Tool {
|
|
13
16
|
constructor(name, description, parametersTypeNameForGptlessSchema, parametersTypeNameForGptSchema) {
|
|
14
17
|
super(name, description, parametersTypeNameForGptlessSchema, parametersTypeNameForGptSchema);
|
|
15
18
|
}
|
|
16
19
|
async call(context, parameters) {
|
|
17
|
-
const page = context.page;
|
|
20
|
+
const page = context.page.current;
|
|
18
21
|
const locators = await ReplayableInteraction.getLocatorsOrderedByMatchCount(page, parameters.selector.frame, parameters.selector.element);
|
|
19
22
|
if (!locators.length) {
|
|
20
23
|
return {
|
|
@@ -26,8 +29,8 @@ class ReplayableInteraction extends Tool_1.Tool {
|
|
|
26
29
|
return this.callCore(context, parameters, locators, parameters.selector);
|
|
27
30
|
}
|
|
28
31
|
async callFromGpt(context, parameters) {
|
|
29
|
-
const page = context.page;
|
|
30
|
-
const elementSelector = `[${
|
|
32
|
+
const page = context.page.current;
|
|
33
|
+
const elementSelector = `[${context.pageInspector.interactableElementAttribute}="${parameters.annotation}"]`;
|
|
31
34
|
let locatorData = null;
|
|
32
35
|
for (const frame of page.frames()) {
|
|
33
36
|
if (frame.isDetached()) {
|
|
@@ -38,7 +41,7 @@ class ReplayableInteraction extends Tool_1.Tool {
|
|
|
38
41
|
const selectorCandidates = await PlaywrightUtils_1.PlaywrightUtils.generateSelectors(locator);
|
|
39
42
|
const frameSelector = frame.parentFrame() === null
|
|
40
43
|
? null
|
|
41
|
-
: await PlaywrightUtils_1.PlaywrightUtils.
|
|
44
|
+
: (await PlaywrightUtils_1.PlaywrightUtils.generateSelectors(await frame.frameElement()))[0];
|
|
42
45
|
locatorData = {
|
|
43
46
|
locators: [locator],
|
|
44
47
|
selectorForReplay: {
|
|
@@ -65,14 +68,14 @@ class ReplayableInteraction extends Tool_1.Tool {
|
|
|
65
68
|
}
|
|
66
69
|
async callCore(context, parameters, selectorLocators, selectorForReplay) {
|
|
67
70
|
const timeoutMilliseconds = 1000;
|
|
68
|
-
const page = context.page;
|
|
71
|
+
const page = context.page.current;
|
|
69
72
|
for (const selectorLocator of selectorLocators) {
|
|
70
73
|
try {
|
|
71
74
|
const count = await selectorLocator.locator.count();
|
|
72
75
|
for (let i = 0; i < count; ++i) {
|
|
73
76
|
try {
|
|
74
77
|
const originalLocator = selectorLocator.locator.nth(i);
|
|
75
|
-
const element = (await
|
|
78
|
+
const element = (await ReplayableInteraction.getLocatorOrItsLabel(originalLocator)).first();
|
|
76
79
|
await element.scrollIntoViewIfNeeded({
|
|
77
80
|
timeout: timeoutMilliseconds,
|
|
78
81
|
});
|
|
@@ -90,14 +93,14 @@ class ReplayableInteraction extends Tool_1.Tool {
|
|
|
90
93
|
}
|
|
91
94
|
// Hide the control panel so that it will not block an interaction if the
|
|
92
95
|
// target element is underneath the panel.
|
|
93
|
-
await
|
|
96
|
+
await context.controlPanel.hide(page.context());
|
|
94
97
|
let forLlm = await this.invoke(context, parameters, element);
|
|
95
|
-
await
|
|
98
|
+
await context.controlPanel.show(page.context());
|
|
96
99
|
await PlaywrightUtils_1.PlaywrightUtils.waitForPageStability(page);
|
|
97
100
|
// If we did not use the Donobu attribute for resolving the element,
|
|
98
101
|
// add its selector to the result so we know which selector was
|
|
99
102
|
// ultimately used of the given 'selectorLocators'.
|
|
100
|
-
if (!selectorLocator.selector.includes(
|
|
103
|
+
if (!selectorLocator.selector.includes(context.pageInspector.interactableElementAttribute)) {
|
|
101
104
|
forLlm += ` (selector: '${selectorLocator.selector}')`;
|
|
102
105
|
}
|
|
103
106
|
return {
|
|
@@ -217,18 +220,168 @@ class ReplayableInteraction extends Tool_1.Tool {
|
|
|
217
220
|
}
|
|
218
221
|
}
|
|
219
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Returns the given locator or its label, if it has one and is associated with a labelable element.
|
|
225
|
+
* Labelable elements include: button, input (except hidden), meter, output, progress, select, and textarea.
|
|
226
|
+
*/
|
|
227
|
+
static async getLocatorOrItsLabel(element) {
|
|
228
|
+
const timeoutMilliseconds = 5000;
|
|
229
|
+
try {
|
|
230
|
+
// First check if the element itself is visible
|
|
231
|
+
try {
|
|
232
|
+
await element.waitFor({
|
|
233
|
+
state: 'visible',
|
|
234
|
+
timeout: timeoutMilliseconds,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
// If the element itself isn't visible, just return it without looking for labels
|
|
239
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
240
|
+
throw new PageClosedException_1.PageClosedException();
|
|
241
|
+
}
|
|
242
|
+
return element;
|
|
243
|
+
}
|
|
244
|
+
// Check if the element is a labelable element
|
|
245
|
+
// See https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/label
|
|
246
|
+
const isLabelable = await element.evaluate((elem) => {
|
|
247
|
+
const tagName = elem.tagName.toLowerCase();
|
|
248
|
+
if (tagName === 'button' ||
|
|
249
|
+
tagName === 'meter' ||
|
|
250
|
+
tagName === 'output' ||
|
|
251
|
+
tagName === 'progress' ||
|
|
252
|
+
tagName === 'select' ||
|
|
253
|
+
tagName === 'textarea') {
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
if (tagName === 'input') {
|
|
257
|
+
// Input is labelable except when type="hidden"
|
|
258
|
+
const type = elem.getAttribute('type')?.toLowerCase() || 'text';
|
|
259
|
+
return type !== 'hidden';
|
|
260
|
+
}
|
|
261
|
+
return false;
|
|
262
|
+
});
|
|
263
|
+
// If the element is not labelable, return the original locator
|
|
264
|
+
if (!isLabelable) {
|
|
265
|
+
return element;
|
|
266
|
+
}
|
|
267
|
+
// Try to get the ID attribute
|
|
268
|
+
const id = await element
|
|
269
|
+
.getAttribute('id', {
|
|
270
|
+
timeout: timeoutMilliseconds,
|
|
271
|
+
})
|
|
272
|
+
.catch(() => null);
|
|
273
|
+
if (id) {
|
|
274
|
+
try {
|
|
275
|
+
// Get the underlying ElementHandle first
|
|
276
|
+
const handle = await element.elementHandle({
|
|
277
|
+
timeout: timeoutMilliseconds,
|
|
278
|
+
});
|
|
279
|
+
if (handle) {
|
|
280
|
+
// From the handle, retrieve the frame that owns this element
|
|
281
|
+
const frame = await handle.ownerFrame();
|
|
282
|
+
if (frame) {
|
|
283
|
+
// Look for label with matching 'for' attribute
|
|
284
|
+
const labelByFor = frame.locator(`label[for="${id}"]`);
|
|
285
|
+
// Check if the label exists and is visible
|
|
286
|
+
if ((await labelByFor.count()) > 0) {
|
|
287
|
+
try {
|
|
288
|
+
await labelByFor.waitFor({
|
|
289
|
+
state: 'visible',
|
|
290
|
+
timeout: timeoutMilliseconds,
|
|
291
|
+
});
|
|
292
|
+
return labelByFor;
|
|
293
|
+
}
|
|
294
|
+
catch (visibilityError) {
|
|
295
|
+
// If label exists but isn't visible, continue to other checks
|
|
296
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(visibilityError)) {
|
|
297
|
+
throw new PageClosedException_1.PageClosedException();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
// Handle errors in the ElementHandle/frame retrieval, but continue to other checks
|
|
306
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
307
|
+
throw new PageClosedException_1.PageClosedException();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// Fallback: look for a directly wrapping label (immediate ancestor)
|
|
312
|
+
// Using 'xpath=parent::label' to only get direct parent if it's a label
|
|
313
|
+
const directParentLabel = element.locator('xpath=parent::label');
|
|
314
|
+
if ((await directParentLabel.count()) > 0) {
|
|
315
|
+
try {
|
|
316
|
+
await directParentLabel.waitFor({
|
|
317
|
+
state: 'visible',
|
|
318
|
+
timeout: timeoutMilliseconds,
|
|
319
|
+
});
|
|
320
|
+
return directParentLabel;
|
|
321
|
+
}
|
|
322
|
+
catch (visibilityError) {
|
|
323
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(visibilityError)) {
|
|
324
|
+
throw new PageClosedException_1.PageClosedException();
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// If direct parent isn't a label, check any ancestor label
|
|
329
|
+
const wrappingLabel = element.locator('xpath=ancestor::label[1]'); // Get closest ancestor label
|
|
330
|
+
if ((await wrappingLabel.count()) > 0) {
|
|
331
|
+
try {
|
|
332
|
+
await wrappingLabel.waitFor({
|
|
333
|
+
state: 'visible',
|
|
334
|
+
timeout: timeoutMilliseconds,
|
|
335
|
+
});
|
|
336
|
+
return wrappingLabel;
|
|
337
|
+
}
|
|
338
|
+
catch (visibilityError) {
|
|
339
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(visibilityError)) {
|
|
340
|
+
throw new PageClosedException_1.PageClosedException();
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
// Neither "for" nor wrapping label found or visible
|
|
345
|
+
return element;
|
|
346
|
+
}
|
|
347
|
+
catch (error) {
|
|
348
|
+
if (PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
|
|
349
|
+
throw new PageClosedException_1.PageClosedException();
|
|
350
|
+
}
|
|
351
|
+
throw error;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Calculates a priority value for a CSS selector to be used in tiebreaker situations
|
|
356
|
+
* when multiple selectors have the same match count.
|
|
357
|
+
*
|
|
358
|
+
* The function assigns lower numerical values to selectors that are generally more
|
|
359
|
+
* reliable and specific for targeting elements in a user interface.
|
|
360
|
+
*/
|
|
220
361
|
static selectorTiebreakerPriority(sel) {
|
|
221
|
-
//
|
|
222
|
-
|
|
362
|
+
// Convert selector to lowercase for case-insensitive matching of attribute names
|
|
363
|
+
const lowerSel = sel.toLowerCase();
|
|
364
|
+
// Check for aria-label selectors (highest priority = 0)
|
|
365
|
+
if (/\[aria-label\s*=/.test(lowerSel) || /@aria-label/.test(lowerSel)) {
|
|
223
366
|
return 0;
|
|
224
|
-
|
|
367
|
+
}
|
|
368
|
+
// Check for placeholder selectors (priority = 1)
|
|
369
|
+
if (/\[placeholder\s*=/.test(lowerSel) || /@placeholder/.test(lowerSel)) {
|
|
225
370
|
return 1;
|
|
226
|
-
|
|
371
|
+
}
|
|
372
|
+
// Check for text-based XPath selectors (priority = 2)
|
|
373
|
+
if (sel.startsWith('//')) {
|
|
227
374
|
return 2;
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (
|
|
375
|
+
}
|
|
376
|
+
// Check for DOM position selectors (priority = 3)
|
|
377
|
+
if (sel.includes(' > ')) {
|
|
378
|
+
return 3;
|
|
379
|
+
}
|
|
380
|
+
// Check for ID-based selectors (priority = 4)
|
|
381
|
+
if (/^#/.test(sel)) {
|
|
231
382
|
return 4;
|
|
383
|
+
}
|
|
384
|
+
// Any other selector types (lowest priority = 5)
|
|
232
385
|
return 5;
|
|
233
386
|
}
|
|
234
387
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplayableInteraction.js","sourceRoot":"","sources":["../../src/tools/ReplayableInteraction.ts"],"names":[],"mappings":";;;AACA,8DAA2D;AAG3D,iCAA8B;AAE9B,4CAA4C;AAC5C,2EAAwE;AA+BxE;;;GAGG;AACH,MAAsB,qBAIpB,SAAQ,WAA4C;IAGpD,YACE,IAAY,EACZ,WAAmB,EACnB,kCAA0C,EAC1C,8BAAsC;QAEtC,KAAK,CACH,IAAI,EACJ,WAAW,EACX,kCAAkC,EAClC,8BAA8B,CAC/B,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAA4B;QAE5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,8BAA8B,CACzE,IAAI,EACJ,UAAU,CAAC,QAAS,CAAC,KAAK,EAC1B,UAAU,CAAC,QAAS,CAAC,OAAO,CAC7B,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO;gBACL,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,yDAAyD;gBACjE,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,WAAW,CACtB,OAAwB,EACxB,UAAyB;QAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,6BAA6B,KAAK,UAAU,CAAC,UAAU,IAAI,CAAC;QACxG,IAAI,WAAW,GAGJ,IAAI,CAAC;QAEhB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,kBAAkB,GACtB,MAAM,iCAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACnD,MAAM,aAAa,GACjB,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI;oBAC1B,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,MAAM,iCAAe,CAAC,wBAAwB,CAC5C,MAAM,KAAK,CAAC,YAAY,EAAE,CAC3B,CAAC;gBACR,WAAW,GAAG;oBACZ,QAAQ,EAAE,CAAC,OAAO,CAAC;oBACnB,iBAAiB,EAAE;wBACjB,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,aAAa;qBACrB;iBACF,CAAC;gBACF,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO;gBACL,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,yDAAyD;gBACjE,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAClB,OAAO,EACP,UAAU,EACV,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO;gBACL,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,OAAO;aACjB,CAAC;QACJ,CAAC,CAAC,EACF,WAAW,CAAC,iBAAiB,CAC9B,CAAC;IACJ,CAAC;IAcO,KAAK,CAAC,QAAQ,CACpB,OAAwB,EACxB,UAA0B,EAC1B,gBAAmC,EACnC,iBAAkC;QAElC,MAAM,mBAAmB,GAAG,IAAI,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAK,CAAC;QAE3B,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACvD,MAAM,OAAO,GAAG,CACd,MAAM,iCAAe,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAC5D,CAAC,KAAK,EAAE,CAAC;wBACV,MAAM,OAAO,CAAC,sBAAsB,CAAC;4BACnC,OAAO,EAAE,mBAAmB;yBAC7B,CAAC,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC;4BACpC,OAAO,EAAE,mBAAmB;yBAC7B,CAAC,CAAC;wBAEH,IAAI,CAAC,GAAG,EAAE,CAAC;4BACT,MAAM,IAAI,KAAK,CACb,wDAAwD,CAAC,mBAAmB,eAAe,CAAC,QAAQ,0CAA0C,CAC/I,CAAC;wBACJ,CAAC;wBAED,IAAK,UAAkB,CAAC,SAAS,EAAE,CAAC;4BAClC,4DAA4D;4BAC5D,+DAA+D;4BAC/D,yCAAyC;4BACzC,MAAM,OAAO,CAAC,qBAAqB,CAAC,OAAO,CACzC,IAAI,EACJ,eAAe,EACd,UAAkB,CAAC,SAAS,CAC9B,CAAC;wBACJ,CAAC;wBACD,yEAAyE;wBACzE,0CAA0C;wBAC1C,MAAM,iCAAe,CAAC,gBAAgB,CACpC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,CACjB,CAAC;wBACF,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;wBAC7D,MAAM,iCAAe,CAAC,gBAAgB,CACpC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,QAAQ,CACjB,CAAC;wBACF,MAAM,iCAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBACjD,oEAAoE;wBACpE,+DAA+D;wBAC/D,mDAAmD;wBACnD,IACE,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAChC,iCAAe,CAAC,6BAA6B,CAC9C,EACD,CAAC;4BACD,MAAM,IAAI,gBAAgB,eAAe,CAAC,QAAQ,IAAI,CAAC;wBACzD,CAAC;wBAED,OAAO;4BACL,YAAY,EAAE,IAAI;4BAClB,MAAM,EAAE,MAAM;4BACd,QAAQ,EAAE,iBAAiB;yBAC5B,CAAC;oBACJ,CAAC;oBAAC,OAAO,YAAY,EAAE,CAAC;wBACtB,kBAAS,CAAC,KAAK,CACb,oCAAoC,CAAC,mBAAmB,eAAe,CAAC,QAAQ,mEAAmE,EACnJ,YAAY,CACb,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,kBAAS,CAAC,KAAK,CACb,qCAAqC,eAAe,CAAC,QAAQ,oEAAoE,EACjI,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,sCAAsC;YAC9C,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,KAAK,CAAC,8BAA8B,CACzC,IAAU,EACV,aAA4B,EAC5B,kBAA4B;QAE5B,IAAI,CAAC;YACH,8CAA8C;YAC9C,IAAI,qBAAqB,GAEd,IAAI,CAAC;YAEhB,wEAAwE;YACxE,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAC1C,CAAC,OAAO,EAAE,EAAE;gBACV,qBAAqB,GAAG,OAAO,CAAC;YAClC,CAAC,CACF,CAAC;YAEF,oCAAoC;YACpC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CACrC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChB,MAAM,cAAc,GAId,EAAE,CAAC;gBAET,8CAA8C;gBAC9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CACrC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE;oBACjC,IAAI,CAAC;wBACH,MAAM,cAAc,GAAG,aAAa;4BAClC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;4BAC7D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;wBAEpC,MAAM,cAAc;6BACjB,OAAO,CAAC;4BACP,KAAK,EAAE,UAAU;4BACjB,OAAO,EAAE,IAAI;yBACd,CAAC;6BACD,KAAK,CAAC,GAAG,EAAE;4BACV,sBAAsB;wBACxB,CAAC,CAAC,CAAC;wBAEL,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;wBAE3C,sDAAsD;wBACtD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;4BAC/B,qBAAsB,CAAC;gCACrB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE;6BACzD,CAAC,CAAC;wBACL,CAAC;wBAED,IACE,KAAK,GAAG,CAAC;4BACT,qBAAqB,CAAC,uBAAuB,IAAI,KAAK,EACtD,CAAC;4BACD,cAAc,CAAC,IAAI,CAAC;gCAClB,QAAQ,EAAE,iBAAiB;gCAC3B,OAAO,EAAE,cAAc;gCACvB,KAAK;6BACN,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,kBAAS,CAAC,IAAI,CAAC,qBAAqB,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC,CACF,CAAC;gBAEF,yCAAyC;gBACzC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAE5B,8BAA8B;gBAC9B,OAAO,CACL,cAAc;qBACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACb,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;wBAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;oBAClD,OAAO,CACL,qBAAqB,CAAC,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC5D,qBAAqB,CAAC,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC7D,CAAC;gBACJ,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACZ,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5D,CAAC,CAAC,CACL,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,iDAAiD;YACjD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;gBACxB,wBAAwB;gBACxB,mBAAmB;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,iCAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,yCAAmB,EAAE,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,GAAW;QACnD,wFAAwF;QACxF,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACtE,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACxE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACnC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,wBAAwB;QAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;;AAnVH,sDAoVC;AA/UwB,6CAAuB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"ReplayableInteraction.js","sourceRoot":"","sources":["../../src/tools/ReplayableInteraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,14 @@ export interface RunAccessibilityTestToolCoreParameters {
|
|
|
7
7
|
export interface RunAccessibilityTestToolGptParameters extends BaseToolGptParameters, RunAccessibilityTestToolCoreParameters {
|
|
8
8
|
}
|
|
9
9
|
export declare class RunAccessibilityTestTool extends Tool<RunAccessibilityTestToolCoreParameters, RunAccessibilityTestToolGptParameters> {
|
|
10
|
+
/**
|
|
11
|
+
* This script is used by the `RunAccessibilityTestTool` to test the
|
|
12
|
+
* accessibility of a webpage. This script must be injected on page load, rather
|
|
13
|
+
* than when running the `RunAccessibilityTestTool` because we need to bypass
|
|
14
|
+
* webpage Content Security Policy (CSP); this is done by injecting the
|
|
15
|
+
* script via `BrowserContext#addInitScript`.
|
|
16
|
+
*/
|
|
17
|
+
static readonly INIT_SCRIPT: string;
|
|
10
18
|
static readonly NAME = "runAccessibilityTest";
|
|
11
19
|
constructor();
|
|
12
20
|
call(context: ToolCallContext, _parameters: RunAccessibilityTestToolCoreParameters): Promise<ToolCallResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunAccessibilityTestTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunAccessibilityTestTool.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;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"RunAccessibilityTestTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunAccessibilityTestTool.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;AAE1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAIxE,MAAM,WAAW,sCAAsC;CAAG;AAC1D,MAAM,WAAW,qCACf,SAAQ,qBAAqB,EAC3B,sCAAsC;CAAG;AAE7C,qBAAa,wBAAyB,SAAQ,IAAI,CAChD,sCAAsC,EACtC,qCAAqC,CACtC;IACC;;;;;;OAMG;IACH,gBAAuB,WAAW,SAEhC;IAEF,gBAAuB,IAAI,0BAA0B;;IAW/B,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,sCAAsC,GAClD,OAAO,CAAC,cAAc,CAAC;IAkFJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,qCAAqC,GAChD,OAAO,CAAC,cAAc,CAAC;CAG3B"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.RunAccessibilityTestTool = void 0;
|
|
4
7
|
const Tool_1 = require("./Tool");
|
|
5
8
|
const JsonUtils_1 = require("../utils/JsonUtils");
|
|
9
|
+
const MiscUtils_1 = require("../utils/MiscUtils");
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
6
11
|
class RunAccessibilityTestTool extends Tool_1.Tool {
|
|
7
12
|
constructor() {
|
|
8
|
-
super(RunAccessibilityTestTool.NAME, 'Run an web accessibility (axe
|
|
13
|
+
super(RunAccessibilityTestTool.NAME, 'Run an web accessibility (axe-core) test on the current webpage.', 'RunAccessibilityTestToolCoreParameters', 'RunAccessibilityTestToolGptParameters');
|
|
9
14
|
}
|
|
10
15
|
async call(context, _parameters) {
|
|
11
|
-
const page = context.page;
|
|
16
|
+
const page = context.page.current;
|
|
12
17
|
// Step 1: Run axe in the browser
|
|
13
18
|
const fullResultStr = (await page.evaluate(() => (async () => {
|
|
14
19
|
const axeResults = await window.axe.run();
|
|
@@ -69,5 +74,13 @@ class RunAccessibilityTestTool extends Tool_1.Tool {
|
|
|
69
74
|
}
|
|
70
75
|
}
|
|
71
76
|
exports.RunAccessibilityTestTool = RunAccessibilityTestTool;
|
|
77
|
+
/**
|
|
78
|
+
* This script is used by the `RunAccessibilityTestTool` to test the
|
|
79
|
+
* accessibility of a webpage. This script must be injected on page load, rather
|
|
80
|
+
* than when running the `RunAccessibilityTestTool` because we need to bypass
|
|
81
|
+
* webpage Content Security Policy (CSP); this is done by injecting the
|
|
82
|
+
* script via `BrowserContext#addInitScript`.
|
|
83
|
+
*/
|
|
84
|
+
RunAccessibilityTestTool.INIT_SCRIPT = MiscUtils_1.MiscUtils.getResourceFileAsString(path_1.default.join('axe.js'));
|
|
72
85
|
RunAccessibilityTestTool.NAME = 'runAccessibilityTest';
|
|
73
86
|
//# sourceMappingURL=RunAccessibilityTestTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunAccessibilityTestTool.js","sourceRoot":"","sources":["../../src/tools/RunAccessibilityTestTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RunAccessibilityTestTool.js","sourceRoot":"","sources":["../../src/tools/RunAccessibilityTestTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunInlineJavaScriptCodeTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunInlineJavaScriptCodeTool.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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,MAAM,yCAAyC,GAAG;IACtD;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG,qBAAqB,GAC1E,yCAAyC,CAAC;AAE5C,qBAAa,2BAA4B,SAAQ,IAAI,CACnD,yCAAyC,EACzC,wCAAwC,CACzC;IACC,gBAAuB,IAAI,6BAA6B;;IAkBlC,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,yCAAyC,GACpD,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"RunInlineJavaScriptCodeTool.d.ts","sourceRoot":"","sources":["../../src/tools/RunInlineJavaScriptCodeTool.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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,MAAM,yCAAyC,GAAG;IACtD;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wCAAwC,GAAG,qBAAqB,GAC1E,yCAAyC,CAAC;AAE5C,qBAAa,2BAA4B,SAAQ,IAAI,CACnD,yCAAyC,EACzC,wCAAwC,CACzC;IACC,gBAAuB,IAAI,6BAA6B;;IAkBlC,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,yCAAyC,GACpD,OAAO,CAAC,cAAc,CAAC;IAWJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,wCAAwC,GACnD,OAAO,CAAC,cAAc,CAAC;CAG3B"}
|
|
@@ -14,7 +14,7 @@ class RunInlineJavaScriptCodeTool extends Tool_1.Tool {
|
|
|
14
14
|
'```', 'RunInlineJavaScriptCodeToolCoreParameters', 'RunInlineJavaScriptCodeToolGptParameters');
|
|
15
15
|
}
|
|
16
16
|
async call(context, parameters) {
|
|
17
|
-
const result = await context.page.evaluate(parameters.javaScriptCode);
|
|
17
|
+
const result = await context.page.current.evaluate(parameters.javaScriptCode);
|
|
18
18
|
return {
|
|
19
19
|
isSuccessful: true,
|
|
20
20
|
forLlm: '' + JSON.stringify(result),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunInlineJavaScriptCodeTool.js","sourceRoot":"","sources":["../../src/tools/RunInlineJavaScriptCodeTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAe9B,MAAa,2BAA4B,SAAQ,WAGhD;IAGC;QACE,KAAK,CACH,2BAA2B,CAAC,IAAI,EAChC,4FAA4F;YAC1F,8FAA8F;YAC9F,OAAO;YACP,WAAW;YACX,wBAAwB;YACxB,8BAA8B;YAC9B,KAAK;YACL,KAAK,EACP,2CAA2C,EAC3C,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAqD;QAErD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"RunInlineJavaScriptCodeTool.js","sourceRoot":"","sources":["../../src/tools/RunInlineJavaScriptCodeTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAe9B,MAAa,2BAA4B,SAAQ,WAGhD;IAGC;QACE,KAAK,CACH,2BAA2B,CAAC,IAAI,EAChC,4FAA4F;YAC1F,8FAA8F;YAC9F,OAAO;YACP,WAAW;YACX,wBAAwB;YACxB,8BAA8B;YAC9B,KAAK;YACL,KAAK,EACP,2CAA2C,EAC3C,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAqD;QAErD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAQ,CAAC,QAAQ,CACjD,UAAU,CAAC,cAAc,CAC1B,CAAC;QACF,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,UAAoD;QAEpD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;;AAzCH,kEA0CC;AAtCwB,gCAAI,GAAG,yBAAyB,CAAC"}
|
|
@@ -7,7 +7,7 @@ class SaveWebpageAsPdfTool extends Tool_1.Tool {
|
|
|
7
7
|
super(SaveWebpageAsPdfTool.NAME, 'Save the current webpage as a PDF.', 'SaveWebpageAsPdfToolParameters', 'SaveWebpageAsPdfToolGptParameters');
|
|
8
8
|
}
|
|
9
9
|
async call(context, _parameters) {
|
|
10
|
-
const pdfBytes = await context.page.pdf();
|
|
10
|
+
const pdfBytes = await context.page.current.pdf();
|
|
11
11
|
const filename = `${new Date().toISOString()}.pdf`;
|
|
12
12
|
await context.persistence.setFlowFile(context.metadata.id, filename, Buffer.from(pdfBytes));
|
|
13
13
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaveWebpageAsPdfTool.js","sourceRoot":"","sources":["../../src/tools/SaveWebpageAsPdfTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAU9B,MAAa,oBAAqB,SAAQ,WAGzC;IAGC;QACE,KAAK,CACH,oBAAoB,CAAC,IAAI,EACzB,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,WAA+C;QAE/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"SaveWebpageAsPdfTool.js","sourceRoot":"","sources":["../../src/tools/SaveWebpageAsPdfTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAU9B,MAAa,oBAAqB,SAAQ,WAGzC;IAGC;QACE,KAAK,CACH,oBAAoB,CAAC,IAAI,EACzB,oCAAoC,EACpC,gCAAgC,EAChC,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,WAA+C;QAE/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAQ,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;QAEnD,MAAM,OAAO,CAAC,WAAW,CAAC,WAAW,CACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,EACnB,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CACtB,CAAC;QAEF,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,oDAAoD,QAAQ,EAAE;YACtE,QAAQ,EAAE;gBACR,WAAW,EAAE,QAAQ;aACtB;SACF,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;;AA1CH,oDA2CC;AAvCwB,yBAAI,GAAG,kBAAkB,CAAC"}
|
|
@@ -13,7 +13,7 @@ export interface ScrollPageToolGptParameters extends BaseToolGptParameters, Scro
|
|
|
13
13
|
export declare class ScrollPageTool extends Tool<ScrollPageToolCoreParameters, ScrollPageToolGptParameters> {
|
|
14
14
|
static readonly NAME = "scrollPage";
|
|
15
15
|
constructor();
|
|
16
|
-
call(context: ToolCallContext,
|
|
16
|
+
call(context: ToolCallContext, { direction }: ScrollPageToolCoreParameters): Promise<ToolCallResult>;
|
|
17
17
|
callFromGpt(context: ToolCallContext, parameters: ScrollPageToolGptParameters): Promise<ToolCallResult>;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=ScrollPageTool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollPageTool.d.ts","sourceRoot":"","sources":["../../src/tools/ScrollPageTool.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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,2BACf,SAAQ,qBAAqB,EAC3B,4BAA4B;CAAG;AAEnC,qBAAa,cAAe,SAAQ,IAAI,CACtC,4BAA4B,EAC5B,2BAA2B,CAC5B;IACC,gBAAuB,IAAI,gBAAgB;;IAYrB,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,
|
|
1
|
+
{"version":3,"file":"ScrollPageTool.d.ts","sourceRoot":"","sources":["../../src/tools/ScrollPageTool.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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,2BACf,SAAQ,qBAAqB,EAC3B,4BAA4B;CAAG;AAEnC,qBAAa,cAAe,SAAQ,IAAI,CACtC,4BAA4B,EAC5B,2BAA2B,CAC5B;IACC,gBAAuB,IAAI,gBAAgB;;IAYrB,IAAI,CACxB,OAAO,EAAE,eAAe,EACxB,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAC1C,OAAO,CAAC,cAAc,CAAC;IA+DJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,2BAA2B,GACtC,OAAO,CAAC,cAAc,CAAC;CAG3B"}
|
|
@@ -2,15 +2,58 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ScrollPageTool = void 0;
|
|
4
4
|
const Tool_1 = require("./Tool");
|
|
5
|
-
const ToolCallResult_1 = require("../models/ToolCallResult");
|
|
6
5
|
class ScrollPageTool extends Tool_1.Tool {
|
|
7
6
|
constructor() {
|
|
8
7
|
super(ScrollPageTool.NAME, `Scroll the current page up or down by one viewport. This helps you see more of the
|
|
9
8
|
current page, of which may contain relevant information below the fold.`, 'ScrollPageToolCoreParameters', 'ScrollPageToolGptParameters');
|
|
10
9
|
}
|
|
11
|
-
async call(context,
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
async call(context, { direction }) {
|
|
11
|
+
const page = context.page.current;
|
|
12
|
+
// compute scroll distance = one viewport height
|
|
13
|
+
const distance = await page.evaluate(() => window.innerHeight);
|
|
14
|
+
// 1) Try scrolling the top‐level window
|
|
15
|
+
const windowScrolled = await page.evaluate((dy) => {
|
|
16
|
+
const before = window.scrollY;
|
|
17
|
+
window.scrollBy(0, dy);
|
|
18
|
+
return window.scrollY !== before;
|
|
19
|
+
}, direction === 'DOWN' ? distance : -distance);
|
|
20
|
+
let didScroll = windowScrolled;
|
|
21
|
+
// 2) If the window didn’t move, scroll the largest scrollable element
|
|
22
|
+
if (!windowScrolled) {
|
|
23
|
+
const fallbackScrolled = await page.evaluate((dy) => {
|
|
24
|
+
// find all scrollable elements
|
|
25
|
+
const els = Array.from(document.querySelectorAll('*'))
|
|
26
|
+
.filter((el) => {
|
|
27
|
+
const style = getComputedStyle(el);
|
|
28
|
+
const ovY = style.overflowY;
|
|
29
|
+
return ((ovY === 'scroll' || ovY === 'auto') &&
|
|
30
|
+
el.scrollHeight > el.clientHeight);
|
|
31
|
+
})
|
|
32
|
+
// sort by visible area descending
|
|
33
|
+
.map((el) => ({ el, area: el.clientWidth * el.clientHeight }))
|
|
34
|
+
.sort((a, b) => b.area - a.area);
|
|
35
|
+
if (els.length === 0) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
// scroll the largest one
|
|
39
|
+
const target = els[0].el;
|
|
40
|
+
const before = target.scrollTop;
|
|
41
|
+
target.scrollTop += dy;
|
|
42
|
+
return target.scrollTop !== before;
|
|
43
|
+
}, direction === 'DOWN' ? distance : -distance);
|
|
44
|
+
didScroll = fallbackScrolled;
|
|
45
|
+
}
|
|
46
|
+
return didScroll
|
|
47
|
+
? {
|
|
48
|
+
isSuccessful: true,
|
|
49
|
+
forLlm: `Scrolled ${direction}`,
|
|
50
|
+
metadata: null,
|
|
51
|
+
}
|
|
52
|
+
: {
|
|
53
|
+
isSuccessful: false,
|
|
54
|
+
forLlm: `Could not scroll ${direction} due to nothing to scroll.`,
|
|
55
|
+
metadata: null,
|
|
56
|
+
};
|
|
14
57
|
}
|
|
15
58
|
async callFromGpt(context, parameters) {
|
|
16
59
|
return this.call(context, parameters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollPageTool.js","sourceRoot":"","sources":["../../src/tools/ScrollPageTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;
|
|
1
|
+
{"version":3,"file":"ScrollPageTool.js","sourceRoot":"","sources":["../../src/tools/ScrollPageTool.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/WaitTool.js
CHANGED
|
@@ -8,7 +8,7 @@ class WaitTool extends Tool_1.Tool {
|
|
|
8
8
|
super(WaitTool.NAME, 'Wait the given number of seconds.', 'WaitToolCoreParameters', 'WaitToolGptParameters');
|
|
9
9
|
}
|
|
10
10
|
async call(context, parameters) {
|
|
11
|
-
await context.page.waitForTimeout(parameters.seconds * 1000);
|
|
11
|
+
await context.page.current.waitForTimeout(parameters.seconds * 1000);
|
|
12
12
|
return ToolCallResult_1.ToolCallResult.successful();
|
|
13
13
|
}
|
|
14
14
|
async callFromGpt(context, parameters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaitTool.js","sourceRoot":"","sources":["../../src/tools/WaitTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAE9B,6DAA0D;AAa1D,MAAa,QAAS,SAAQ,WAG7B;IAGC;QACE,KAAK,CACH,QAAQ,CAAC,IAAI,EACb,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAkC;QAElC,MAAM,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WaitTool.js","sourceRoot":"","sources":["../../src/tools/WaitTool.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAE9B,6DAA0D;AAa1D,MAAa,QAAS,SAAQ,WAG7B;IAGC;QACE,KAAK,CACH,QAAQ,CAAC,IAAI,EACb,mCAAmC,EACnC,wBAAwB,EACxB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAkC;QAElC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACtE,OAAO,+BAAc,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,UAAiC;QAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;;AA5BH,4BA6BC;AAzBwB,aAAI,GAAG,MAAM,CAAC"}
|
|
@@ -37,9 +37,9 @@ export declare class MiscUtils {
|
|
|
37
37
|
/**
|
|
38
38
|
* Resizes a PNG or JPEG image until its file size is below a specified maximum size.
|
|
39
39
|
*
|
|
40
|
-
* @param inputImageBytes - The input
|
|
40
|
+
* @param inputImageBytes - The input image as a Buffer.
|
|
41
41
|
* @param maxSizeInBytes - The maximum allowed file size in bytes.
|
|
42
|
-
* @returns A Promise that resolves to the resized
|
|
42
|
+
* @returns A Promise that resolves to the resized image as a Buffer.
|
|
43
43
|
* @throws Error if the image cannot be resized to meet the size requirements or if processing fails.
|
|
44
44
|
*/
|
|
45
45
|
static resizeImageToMaxFileSize(input: Buffer, maxSizeInBytes: number): Promise<Buffer>;
|
package/dist/utils/MiscUtils.js
CHANGED
|
@@ -93,9 +93,9 @@ class MiscUtils {
|
|
|
93
93
|
/**
|
|
94
94
|
* Resizes a PNG or JPEG image until its file size is below a specified maximum size.
|
|
95
95
|
*
|
|
96
|
-
* @param inputImageBytes - The input
|
|
96
|
+
* @param inputImageBytes - The input image as a Buffer.
|
|
97
97
|
* @param maxSizeInBytes - The maximum allowed file size in bytes.
|
|
98
|
-
* @returns A Promise that resolves to the resized
|
|
98
|
+
* @returns A Promise that resolves to the resized image as a Buffer.
|
|
99
99
|
* @throws Error if the image cannot be resized to meet the size requirements or if processing fails.
|
|
100
100
|
*/
|
|
101
101
|
static async resizeImageToMaxFileSize(input, maxSizeInBytes) {
|