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.
Files changed (294) hide show
  1. package/dist/assets/control-panel.js +30 -3
  2. package/dist/assets/generated/parameter-schemas.json +33 -33
  3. package/dist/assets/generated/version +1 -1
  4. package/dist/assets/interactive-elements-tracker.js +351 -0
  5. package/dist/assets/page-interactions-tracker.js +39 -20
  6. package/dist/assets/smart-selector-generator.js +38 -15
  7. package/dist/bindings/FocusPage.d.ts +6 -1
  8. package/dist/bindings/FocusPage.d.ts.map +1 -1
  9. package/dist/bindings/FocusPage.js +2 -8
  10. package/dist/bindings/FocusPage.js.map +1 -1
  11. package/dist/bindings/PageInteractionTracker.d.ts +9 -2
  12. package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
  13. package/dist/bindings/PageInteractionTracker.js +27 -3
  14. package/dist/bindings/PageInteractionTracker.js.map +1 -1
  15. package/dist/bindings/ProposeToolCall.d.ts +20 -0
  16. package/dist/bindings/ProposeToolCall.d.ts.map +1 -0
  17. package/dist/bindings/ProposeToolCall.js +29 -0
  18. package/dist/bindings/ProposeToolCall.js.map +1 -0
  19. package/dist/bindings/ToggleDonobuAnnotations.d.ts +5 -2
  20. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  21. package/dist/bindings/ToggleDonobuAnnotations.js +12 -6
  22. package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
  23. package/dist/esm/assets/control-panel.js +30 -3
  24. package/dist/esm/assets/generated/parameter-schemas.json +33 -33
  25. package/dist/esm/assets/generated/version +1 -1
  26. package/dist/esm/assets/interactive-elements-tracker.js +351 -0
  27. package/dist/esm/assets/page-interactions-tracker.js +39 -20
  28. package/dist/esm/assets/smart-selector-generator.js +38 -15
  29. package/dist/esm/bindings/FocusPage.d.ts +6 -1
  30. package/dist/esm/bindings/FocusPage.d.ts.map +1 -1
  31. package/dist/esm/bindings/FocusPage.js +2 -8
  32. package/dist/esm/bindings/FocusPage.js.map +1 -1
  33. package/dist/esm/bindings/PageInteractionTracker.d.ts +9 -2
  34. package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
  35. package/dist/esm/bindings/PageInteractionTracker.js +27 -3
  36. package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
  37. package/dist/esm/bindings/ProposeToolCall.d.ts +20 -0
  38. package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -0
  39. package/dist/esm/bindings/ProposeToolCall.js +29 -0
  40. package/dist/esm/bindings/ProposeToolCall.js.map +1 -0
  41. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +5 -2
  42. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  43. package/dist/esm/bindings/ToggleDonobuAnnotations.js +12 -6
  44. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
  45. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  46. package/dist/esm/managers/CodeGenerator.js +2 -1
  47. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  48. package/dist/esm/managers/ControlPanel.d.ts +124 -0
  49. package/dist/esm/managers/ControlPanel.d.ts.map +1 -0
  50. package/dist/esm/managers/ControlPanel.js +282 -0
  51. package/dist/esm/managers/ControlPanel.js.map +1 -0
  52. package/dist/esm/managers/DonobuFlow.d.ts +4 -12
  53. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  54. package/dist/esm/managers/DonobuFlow.js +35 -140
  55. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  56. package/dist/esm/managers/InteractionVisualizer.d.ts +9 -15
  57. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  58. package/dist/esm/managers/InteractionVisualizer.js +44 -44
  59. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  60. package/dist/esm/managers/PageInspector.d.ts +242 -0
  61. package/dist/esm/managers/PageInspector.d.ts.map +1 -0
  62. package/dist/esm/managers/PageInspector.js +783 -0
  63. package/dist/esm/managers/PageInspector.js.map +1 -0
  64. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  65. package/dist/esm/managers/ToolManager.js +3 -5
  66. package/dist/esm/managers/ToolManager.js.map +1 -1
  67. package/dist/esm/models/InteractableElement.d.ts +2 -2
  68. package/dist/esm/models/ToolCallContext.d.ts +6 -2
  69. package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
  70. package/dist/esm/playwrightTestExtensions.d.ts +5 -0
  71. package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
  72. package/dist/esm/playwrightTestExtensions.js +52 -13
  73. package/dist/esm/playwrightTestExtensions.js.map +1 -1
  74. package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
  75. package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -1
  76. package/dist/esm/tools/AssertPageTextTool.js +1 -1
  77. package/dist/esm/tools/AssertPageTextTool.js.map +1 -1
  78. package/dist/esm/tools/AssertTool.d.ts.map +1 -1
  79. package/dist/esm/tools/AssertTool.js +4 -4
  80. package/dist/esm/tools/AssertTool.js.map +1 -1
  81. package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
  82. package/dist/esm/tools/ChangeWebBrowserTabTool.js +8 -7
  83. package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -1
  84. package/dist/esm/tools/ClickTool.js +1 -1
  85. package/dist/esm/tools/ClickTool.js.map +1 -1
  86. package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
  87. package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
  88. package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
  89. package/dist/esm/tools/CustomToolRunnerTool.js +1 -1
  90. package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
  91. package/dist/esm/tools/DetectBrokenLinksTool.js +1 -1
  92. package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
  93. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
  94. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  95. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +1 -1
  96. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  97. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  98. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  99. package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
  100. package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -1
  101. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  102. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  103. package/dist/esm/tools/GoToWebpageTool.js +1 -1
  104. package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
  105. package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
  106. package/dist/esm/tools/HoverOverElementTool.js +1 -1
  107. package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
  108. package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
  109. package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -1
  110. package/dist/esm/tools/PressKeyTool.js +1 -1
  111. package/dist/esm/tools/PressKeyTool.js.map +1 -1
  112. package/dist/esm/tools/ReloadPageTool.js +1 -1
  113. package/dist/esm/tools/ReloadPageTool.js.map +1 -1
  114. package/dist/esm/tools/ReplayableInteraction.d.ts +16 -1
  115. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  116. package/dist/esm/tools/ReplayableInteraction.js +169 -16
  117. package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
  118. package/dist/esm/tools/RunAccessibilityTestTool.d.ts +8 -0
  119. package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  120. package/dist/esm/tools/RunAccessibilityTestTool.js +15 -2
  121. package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
  122. package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
  123. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
  124. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  125. package/dist/esm/tools/SaveWebpageAsPdfTool.js +1 -1
  126. package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
  127. package/dist/esm/tools/ScrollPageTool.d.ts +1 -1
  128. package/dist/esm/tools/ScrollPageTool.d.ts.map +1 -1
  129. package/dist/esm/tools/ScrollPageTool.js +47 -4
  130. package/dist/esm/tools/ScrollPageTool.js.map +1 -1
  131. package/dist/esm/tools/WaitTool.js +1 -1
  132. package/dist/esm/tools/WaitTool.js.map +1 -1
  133. package/dist/esm/utils/MiscUtils.d.ts +2 -2
  134. package/dist/esm/utils/MiscUtils.js +2 -2
  135. package/dist/esm/utils/PlaywrightUtils.d.ts +26 -127
  136. package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
  137. package/dist/esm/utils/PlaywrightUtils.js +133 -935
  138. package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
  139. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  140. package/dist/managers/CodeGenerator.js +2 -1
  141. package/dist/managers/CodeGenerator.js.map +1 -1
  142. package/dist/managers/ControlPanel.d.ts +124 -0
  143. package/dist/managers/ControlPanel.d.ts.map +1 -0
  144. package/dist/managers/ControlPanel.js +282 -0
  145. package/dist/managers/ControlPanel.js.map +1 -0
  146. package/dist/managers/DonobuFlow.d.ts +4 -12
  147. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  148. package/dist/managers/DonobuFlow.js +35 -140
  149. package/dist/managers/DonobuFlow.js.map +1 -1
  150. package/dist/managers/InteractionVisualizer.d.ts +9 -15
  151. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  152. package/dist/managers/InteractionVisualizer.js +44 -44
  153. package/dist/managers/InteractionVisualizer.js.map +1 -1
  154. package/dist/managers/PageInspector.d.ts +242 -0
  155. package/dist/managers/PageInspector.d.ts.map +1 -0
  156. package/dist/managers/PageInspector.js +783 -0
  157. package/dist/managers/PageInspector.js.map +1 -0
  158. package/dist/managers/ToolManager.d.ts.map +1 -1
  159. package/dist/managers/ToolManager.js +3 -5
  160. package/dist/managers/ToolManager.js.map +1 -1
  161. package/dist/models/InteractableElement.d.ts +2 -2
  162. package/dist/models/ToolCallContext.d.ts +6 -2
  163. package/dist/models/ToolCallContext.d.ts.map +1 -1
  164. package/dist/playwrightTestExtensions.d.ts +5 -0
  165. package/dist/playwrightTestExtensions.d.ts.map +1 -1
  166. package/dist/playwrightTestExtensions.js +52 -13
  167. package/dist/playwrightTestExtensions.js.map +1 -1
  168. package/dist/tools/AnalyzePageTextTool.js +1 -1
  169. package/dist/tools/AnalyzePageTextTool.js.map +1 -1
  170. package/dist/tools/AssertPageTextTool.js +1 -1
  171. package/dist/tools/AssertPageTextTool.js.map +1 -1
  172. package/dist/tools/AssertTool.d.ts.map +1 -1
  173. package/dist/tools/AssertTool.js +4 -4
  174. package/dist/tools/AssertTool.js.map +1 -1
  175. package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
  176. package/dist/tools/ChangeWebBrowserTabTool.js +8 -7
  177. package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -1
  178. package/dist/tools/ClickTool.js +1 -1
  179. package/dist/tools/ClickTool.js.map +1 -1
  180. package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
  181. package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
  182. package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
  183. package/dist/tools/CustomToolRunnerTool.js +1 -1
  184. package/dist/tools/CustomToolRunnerTool.js.map +1 -1
  185. package/dist/tools/DetectBrokenLinksTool.js +1 -1
  186. package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
  187. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +1 -1
  188. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  189. package/dist/tools/ExtractPaymentProviderKeyTool.js +1 -1
  190. package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  191. package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  192. package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  193. package/dist/tools/GoForwardOrBackTool.js +1 -1
  194. package/dist/tools/GoForwardOrBackTool.js.map +1 -1
  195. package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  196. package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  197. package/dist/tools/GoToWebpageTool.js +1 -1
  198. package/dist/tools/GoToWebpageTool.js.map +1 -1
  199. package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
  200. package/dist/tools/HoverOverElementTool.js +1 -1
  201. package/dist/tools/HoverOverElementTool.js.map +1 -1
  202. package/dist/tools/NavigateWithinStreetView.js +1 -1
  203. package/dist/tools/NavigateWithinStreetView.js.map +1 -1
  204. package/dist/tools/PressKeyTool.js +1 -1
  205. package/dist/tools/PressKeyTool.js.map +1 -1
  206. package/dist/tools/ReloadPageTool.js +1 -1
  207. package/dist/tools/ReloadPageTool.js.map +1 -1
  208. package/dist/tools/ReplayableInteraction.d.ts +16 -1
  209. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  210. package/dist/tools/ReplayableInteraction.js +169 -16
  211. package/dist/tools/ReplayableInteraction.js.map +1 -1
  212. package/dist/tools/RunAccessibilityTestTool.d.ts +8 -0
  213. package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  214. package/dist/tools/RunAccessibilityTestTool.js +15 -2
  215. package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
  216. package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
  217. package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
  218. package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  219. package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
  220. package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
  221. package/dist/tools/ScrollPageTool.d.ts +1 -1
  222. package/dist/tools/ScrollPageTool.d.ts.map +1 -1
  223. package/dist/tools/ScrollPageTool.js +47 -4
  224. package/dist/tools/ScrollPageTool.js.map +1 -1
  225. package/dist/tools/WaitTool.js +1 -1
  226. package/dist/tools/WaitTool.js.map +1 -1
  227. package/dist/utils/MiscUtils.d.ts +2 -2
  228. package/dist/utils/MiscUtils.js +2 -2
  229. package/dist/utils/PlaywrightUtils.d.ts +26 -127
  230. package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
  231. package/dist/utils/PlaywrightUtils.js +133 -935
  232. package/dist/utils/PlaywrightUtils.js.map +1 -1
  233. package/package.json +1 -1
  234. package/dist/assets/clickable-elements-tracker.js +0 -63
  235. package/dist/assets/zaru-eyes.html +0 -141
  236. package/dist/esm/assets/clickable-elements-tracker.js +0 -63
  237. package/dist/esm/assets/zaru-eyes.html +0 -141
  238. package/dist/esm/managers/TemplateInterpolator.d.ts +0 -19
  239. package/dist/esm/managers/TemplateInterpolator.d.ts.map +0 -1
  240. package/dist/esm/managers/TemplateInterpolator.js +0 -86
  241. package/dist/esm/managers/TemplateInterpolator.js.map +0 -1
  242. package/dist/esm/managers/ToolTipper.d.ts +0 -32
  243. package/dist/esm/managers/ToolTipper.d.ts.map +0 -1
  244. package/dist/esm/managers/ToolTipper.js +0 -229
  245. package/dist/esm/managers/ToolTipper.js.map +0 -1
  246. package/dist/esm/models/BrowserState.d.ts +0 -26
  247. package/dist/esm/models/BrowserState.d.ts.map +0 -1
  248. package/dist/esm/models/BrowserState.js +0 -3
  249. package/dist/esm/models/BrowserState.js.map +0 -1
  250. package/dist/esm/models/ResolverContext.d.ts +0 -7
  251. package/dist/esm/models/ResolverContext.d.ts.map +0 -1
  252. package/dist/esm/models/ResolverContext.js +0 -3
  253. package/dist/esm/models/ResolverContext.js.map +0 -1
  254. package/dist/esm/models/ToolTemplateDataSource.d.ts +0 -36
  255. package/dist/esm/models/ToolTemplateDataSource.d.ts.map +0 -1
  256. package/dist/esm/models/ToolTemplateDataSource.js +0 -3
  257. package/dist/esm/models/ToolTemplateDataSource.js.map +0 -1
  258. package/dist/esm/test.d.ts +0 -78
  259. package/dist/esm/test.d.ts.map +0 -1
  260. package/dist/esm/test.js +0 -423
  261. package/dist/esm/test.js.map +0 -1
  262. package/dist/esm/utils/TemplateInterpolator.d.ts +0 -29
  263. package/dist/esm/utils/TemplateInterpolator.d.ts.map +0 -1
  264. package/dist/esm/utils/TemplateInterpolator.js +0 -206
  265. package/dist/esm/utils/TemplateInterpolator.js.map +0 -1
  266. package/dist/managers/TemplateInterpolator.d.ts +0 -19
  267. package/dist/managers/TemplateInterpolator.d.ts.map +0 -1
  268. package/dist/managers/TemplateInterpolator.js +0 -86
  269. package/dist/managers/TemplateInterpolator.js.map +0 -1
  270. package/dist/managers/ToolTipper.d.ts +0 -32
  271. package/dist/managers/ToolTipper.d.ts.map +0 -1
  272. package/dist/managers/ToolTipper.js +0 -229
  273. package/dist/managers/ToolTipper.js.map +0 -1
  274. package/dist/models/BrowserState.d.ts +0 -26
  275. package/dist/models/BrowserState.d.ts.map +0 -1
  276. package/dist/models/BrowserState.js +0 -3
  277. package/dist/models/BrowserState.js.map +0 -1
  278. package/dist/models/ResolverContext.d.ts +0 -7
  279. package/dist/models/ResolverContext.d.ts.map +0 -1
  280. package/dist/models/ResolverContext.js +0 -3
  281. package/dist/models/ResolverContext.js.map +0 -1
  282. package/dist/models/ToolTemplateDataSource.d.ts +0 -36
  283. package/dist/models/ToolTemplateDataSource.d.ts.map +0 -1
  284. package/dist/models/ToolTemplateDataSource.js +0 -3
  285. package/dist/models/ToolTemplateDataSource.js.map +0 -1
  286. package/dist/test.d.ts +0 -78
  287. package/dist/test.d.ts.map +0 -1
  288. package/dist/test.js +0 -423
  289. package/dist/test.js.map +0 -1
  290. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  291. package/dist/utils/TemplateInterpolator.d.ts +0 -29
  292. package/dist/utils/TemplateInterpolator.d.ts.map +0 -1
  293. package/dist/utils/TemplateInterpolator.js +0 -211
  294. 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 = `[${PlaywrightUtils_1.PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE}="${parameters.annotation}"]`;
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.parseUnambiguousSelector(await frame.frameElement());
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 PlaywrightUtils_1.PlaywrightUtils.getLocatorOrItsLabel(originalLocator)).first();
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 PlaywrightUtils_1.PlaywrightUtils.hideControlPanel(context.page, context.metadata);
96
+ await context.controlPanel.hide(page.context());
94
97
  let forLlm = await this.invoke(context, parameters, element);
95
- await PlaywrightUtils_1.PlaywrightUtils.showControlPanel(context.page, context.metadata);
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(PlaywrightUtils_1.PlaywrightUtils.DONOBU_INTERACTABLE_ATTRIBUTE)) {
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
- // highest-to-lowest: aria-label, placeholder, text-based XPath, DOM position, id, other
222
- if (/\[aria-label\s*=/.test(sel) || /@aria-label/.test(sel))
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
- if (/\[placeholder\s*=/.test(sel) || /@placeholder/.test(sel))
367
+ }
368
+ // Check for placeholder selectors (priority = 1)
369
+ if (/\[placeholder\s*=/.test(lowerSel) || /@placeholder/.test(lowerSel)) {
225
370
  return 1;
226
- if (sel.startsWith('//'))
371
+ }
372
+ // Check for text-based XPath selectors (priority = 2)
373
+ if (sel.startsWith('//')) {
227
374
  return 2;
228
- if (sel.includes(' > '))
229
- return 3; // DOM position selector
230
- if (/^#/.test(sel))
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":"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"}
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;AAExE,MAAM,WAAW,sCAAsC;CAAG;AAC1D,MAAM,WAAW,qCACf,SAAQ,qBAAqB,EAC3B,sCAAsC;CAAG;AAE7C,qBAAa,wBAAyB,SAAQ,IAAI,CAChD,sCAAsC,EACtC,qCAAqC,CACtC;IACC,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
+ {"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 (axecore) test on the current webpage.', 'RunAccessibilityTestToolCoreParameters', 'RunAccessibilityTestToolGptParameters');
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":"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"}
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;IASJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,wCAAwC,GACnD,OAAO,CAAC,cAAc,CAAC;CAG3B"}
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,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACtE,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;;AAvCH,kEAwCC;AApCwB,gCAAI,GAAG,yBAAyB,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;QAC1C,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"}
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, parameters: ScrollPageToolCoreParameters): Promise<ToolCallResult>;
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,UAAU,EAAE,4BAA4B,GACvC,OAAO,CAAC,cAAc,CAAC;IAQJ,WAAW,CAC/B,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,2BAA2B,GACtC,OAAO,CAAC,cAAc,CAAC;CAG3B"}
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, parameters) {
12
- await context.page.press('body', parameters.direction === 'DOWN' ? 'PageDown' : 'PageUp');
13
- return ToolCallResult_1.ToolCallResult.successful();
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;AAE9B,6DAA0D;AAa1D,MAAa,cAAe,SAAQ,WAGnC;IAGC;QACE,KAAK,CACH,cAAc,CAAC,IAAI,EACnB;wEACkE,EAClE,8BAA8B,EAC9B,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,IAAI,CACxB,OAAwB,EACxB,UAAwC;QAExC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CACtB,MAAM,EACN,UAAU,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CACxD,CAAC;QACF,OAAO,+BAAc,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEe,KAAK,CAAC,WAAW,CAC/B,OAAwB,EACxB,UAAuC;QAEvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;;AAhCH,wCAiCC;AA7BwB,mBAAI,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"ScrollPageTool.js","sourceRoot":"","sources":["../../../src/tools/ScrollPageTool.ts"],"names":[],"mappings":"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"}
@@ -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;QAC7D,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"}
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 PNG image as a Buffer.
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 PNG image as a Buffer.
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>;
@@ -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 PNG image as a Buffer.
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 PNG image as a Buffer.
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) {