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
@@ -1,4 +1,7 @@
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.PageInteractionTracker = void 0;
4
7
  const MiscUtils_1 = require("../utils/MiscUtils");
@@ -6,12 +9,31 @@ const ClickTool_1 = require("../tools/ClickTool");
6
9
  const PressKeyTool_1 = require("../tools/PressKeyTool");
7
10
  const Logger_1 = require("../utils/Logger");
8
11
  const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
12
+ const path_1 = __importDefault(require("path"));
9
13
  /**
10
14
  * Tracks direct user actions that have occurred in the web browser.
11
15
  * This differs from normal Donobu flows which use GPT to analyze pages and propose actions.
12
16
  * This tracker records direct user actions for reliable replay and GPT visibility.
13
17
  */
14
18
  class PageInteractionTracker {
19
+ static async register(donobuFlow, browserContext) {
20
+ const instance = new PageInteractionTracker(donobuFlow);
21
+ await browserContext.addInitScript(PlaywrightUtils_1.PlaywrightUtils.SMART_SELECTOR_GENERATOR_INIT_SCRIPT);
22
+ browserContext.on('page', async (page) => {
23
+ page.on('framenavigated', async (frame) => {
24
+ try {
25
+ await frame.evaluate(PageInteractionTracker.INIT_SCRIPT);
26
+ }
27
+ catch (error) {
28
+ if (!PlaywrightUtils_1.PlaywrightUtils.isPageClosedError(error)) {
29
+ Logger_1.appLogger.error('Error when evaluating PageInteractionTracker.INIT_SCRIPT', error);
30
+ }
31
+ }
32
+ });
33
+ });
34
+ await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
35
+ return instance;
36
+ }
15
37
  constructor(donobuFlow) {
16
38
  this.donobuFlow = donobuFlow;
17
39
  }
@@ -35,7 +57,7 @@ class PageInteractionTracker {
35
57
  const postCallImageId = await this.donobuFlow.persistence.saveScreenShot(this.donobuFlow.metadata.id, postCallImage);
36
58
  const frameSelector = source.frame.url() === source.page.url()
37
59
  ? null
38
- : await PlaywrightUtils_1.PlaywrightUtils.parseUnambiguousSelector(await source.frame.frameElement());
60
+ : (await PlaywrightUtils_1.PlaywrightUtils.generateSelectors(await source.frame.frameElement()))[0];
39
61
  const elementSelectors = event.selectors;
40
62
  const externalToolCall = await this.createToolCall(event, elementSelectors, frameSelector, postCallImageId, source.page.url(), timestamp);
41
63
  if (externalToolCall) {
@@ -79,7 +101,7 @@ class PageInteractionTracker {
79
101
  },
80
102
  outcome: {
81
103
  isSuccessful: true,
82
- forLlm: 'Pressed the key.',
104
+ forLlm: `Pressed the '${event.key}' key at the element.`,
83
105
  metadata: selectorForReplay,
84
106
  },
85
107
  postCallImageId: postCallImageId,
@@ -94,5 +116,7 @@ class PageInteractionTracker {
94
116
  }
95
117
  }
96
118
  exports.PageInteractionTracker = PageInteractionTracker;
97
- PageInteractionTracker.NAME = 'donobuTrackInteraction';
119
+ PageInteractionTracker.INIT_SCRIPT = MiscUtils_1.MiscUtils.getResourceFileAsString(path_1.default.join('page-interactions-tracker.js'));
120
+ // If this name is updated, the init script must also be updated.
121
+ PageInteractionTracker.NAME = '__donobuTrackInteraction';
98
122
  //# sourceMappingURL=PageInteractionTracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageInteractionTracker.js","sourceRoot":"","sources":["../../../src/bindings/PageInteractionTracker.ts"],"names":[],"mappings":";;;AAGA,kDAA+C;AAG/C,kDAG4B;AAC5B,wDAG+B;AAC/B,4CAA4C;AAC5C,8DAA2D;AAQ3D;;;;GAIG;AACH,MAAa,sBAAsB;IAGjC,YAAoC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,IAAI;QACT,OAAO,sBAAsB,CAAC,IAAI,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEjD,IACE,SAAS,KAAK,QAAQ;YACtB,SAAS,KAAK,iCAAiC,EAC/C,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAqB,CAAC;YAE1C,kBAAS,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEnD,MAAM,aAAa,GAAG,MAAM,iCAAe,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CACtE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC3B,aAAa,CACd,CAAC;YAEF,MAAM,aAAa,GACjB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,iCAAe,CAAC,wBAAwB,CAC5C,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAClC,CAAC;YAER,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;YAEzC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAChD,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EACjB,SAAS,CACV,CAAC;YAEF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACxD,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC3B,gBAAgB,CACjB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;IACT,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,KAAuB,EACvB,gBAA0B,EAC1B,aAA4B,EAC5B,eAAuB,EACvB,OAAe,EACf,SAAiB;QAEjB,MAAM,iBAAiB,GAAG;YACxB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,aAAa;SACK,CAAC;QAE5B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,qBAAS,CAAC,qBAAqB,EAAE;oBACrC,QAAQ,EAAE,qBAAS,CAAC,IAAI;oBACxB,UAAU,EAAE;wBACV,QAAQ,EAAE,iBAAiB;qBACe;oBAC5C,OAAO,EAAE;wBACP,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,sBAAsB;wBAC9B,QAAQ,EAAE,iBAAiB;qBAC5B;oBACD,eAAe,EAAE,eAAe;oBAChC,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,SAAS;iBACJ,CAAC;YACvB,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,OAAO;oBACL,EAAE,EAAE,qBAAS,CAAC,qBAAqB,EAAE;oBACrC,QAAQ,EAAE,2BAAY,CAAC,IAAI;oBAC3B,UAAU,EAAE;wBACV,QAAQ,EAAE,iBAAiB;wBAC3B,GAAG,EAAE,KAAK,CAAC,GAAI;qBAC8B;oBAC/C,OAAO,EAAE;wBACP,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,kBAAkB;wBAC1B,QAAQ,EAAE,iBAAiB;qBAC5B;oBACD,eAAe,EAAE,eAAe;oBAChC,IAAI,EAAE,OAAO;oBACb,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,SAAS;iBACJ,CAAC;YACvB,CAAC;YAED;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;;AA1HH,wDA2HC;AA1HwB,2BAAI,GAAG,wBAAwB,CAAC"}
1
+ {"version":3,"file":"PageInteractionTracker.js","sourceRoot":"","sources":["../../../src/bindings/PageInteractionTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BrowserContext, Page, Frame } from 'playwright';
2
+ import { NamedBindingCallback } from './NamedBindingCallback';
3
+ import { DonobuFlow } from '../managers/DonobuFlow';
4
+ /**
5
+ * A binding to allow arbitrary tool calls to be proposed from the frontend.
6
+ * This is for debugging purposes only.
7
+ */
8
+ export declare class ProposeToolCall implements NamedBindingCallback {
9
+ private readonly donobuFlow;
10
+ static readonly NAME = "__donobuProposeToolCall";
11
+ static register(donobuFlow: DonobuFlow, browserContext: BrowserContext): Promise<ProposeToolCall>;
12
+ constructor(donobuFlow: DonobuFlow);
13
+ name(): string;
14
+ call(_source: {
15
+ context: BrowserContext;
16
+ page: Page;
17
+ frame: Frame;
18
+ }, ...args: any[]): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=ProposeToolCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProposeToolCall.d.ts","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIpD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,oBAAoB;IAevC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAd9C,gBAAuB,IAAI,6BAA6B;WAEpC,QAAQ,CAC1B,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,eAAe,CAAC;gBASS,UAAU,EAAE,UAAU;IAEnD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,OAAO,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC9D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAOjB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProposeToolCall = void 0;
4
+ const Logger_1 = require("../utils/Logger");
5
+ /**
6
+ * A binding to allow arbitrary tool calls to be proposed from the frontend.
7
+ * This is for debugging purposes only.
8
+ */
9
+ class ProposeToolCall {
10
+ static async register(donobuFlow, browserContext) {
11
+ const instance = new ProposeToolCall(donobuFlow);
12
+ await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
13
+ return instance;
14
+ }
15
+ constructor(donobuFlow) {
16
+ this.donobuFlow = donobuFlow;
17
+ }
18
+ name() {
19
+ return ProposeToolCall.NAME;
20
+ }
21
+ async call(_source, ...args) {
22
+ Logger_1.appLogger.debug(`Proposed tool call from frontend: ${JSON.stringify(args[0])}`);
23
+ const proposedToolCall = args[0];
24
+ this.donobuFlow.proposedToolCalls.push(proposedToolCall);
25
+ }
26
+ }
27
+ exports.ProposeToolCall = ProposeToolCall;
28
+ ProposeToolCall.NAME = '__donobuProposeToolCall';
29
+ //# sourceMappingURL=ProposeToolCall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProposeToolCall.js","sourceRoot":"","sources":["../../../src/bindings/ProposeToolCall.ts"],"names":[],"mappings":";;;AAGA,4CAA4C;AAG5C;;;GAGG;AACH,MAAa,eAAe;IAGnB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,UAAsB,EACtB,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,IAAI;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,OAA8D,EAC9D,GAAG,IAAW;QAEd,kBAAS,CAAC,KAAK,CACb,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAC/D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAA0B,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,CAAC;;AA9BH,0CA+BC;AA9BwB,oBAAI,GAAG,yBAAyB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PageInspector } from '../managers/PageInspector';
1
2
  import { NamedBindingCallback } from './NamedBindingCallback';
2
3
  import { BrowserContext, Page, Frame } from 'playwright';
3
4
  /**
@@ -6,8 +7,10 @@ import { BrowserContext, Page, Frame } from 'playwright';
6
7
  * as understood by the Donobu engine.
7
8
  */
8
9
  export declare class ToggleDonobuAnnotations implements NamedBindingCallback {
9
- static readonly NAME = "donobuToggleAnnotations";
10
- constructor();
10
+ private readonly pageInspector;
11
+ static readonly NAME = "__donobuToggleAnnotations";
12
+ static register(pageInspector: PageInspector, browserContext: BrowserContext): Promise<ToggleDonobuAnnotations>;
13
+ constructor(pageInspector: PageInspector);
11
14
  name(): string;
12
15
  call(source: {
13
16
  context: BrowserContext;
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,oBAAoB;IAClE,gBAAuB,IAAI,6BAA6B;;IAIjD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAYjB"}
1
+ {"version":3,"file":"ToggleDonobuAnnotations.d.ts","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,oBAAoB;IAe/C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAdjD,gBAAuB,IAAI,+BAA+B;WAEtC,QAAQ,CAC1B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,uBAAuB,CAAC;gBASC,aAAa,EAAE,aAAa;IAEzD,IAAI,IAAI,MAAM;IAIR,IAAI,CACf,MAAM,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,EAC7D,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,IAAI,CAAC;CAYjB"}
@@ -1,29 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToggleDonobuAnnotations = void 0;
4
- const PlaywrightUtils_1 = require("../utils/PlaywrightUtils");
5
4
  /**
6
5
  * A binding that toggles the annotations on the page executing this callback.
7
6
  * This is used for debugging purposes to show the interactable elements on the page
8
7
  * as understood by the Donobu engine.
9
8
  */
10
9
  class ToggleDonobuAnnotations {
11
- constructor() { }
10
+ static async register(pageInspector, browserContext) {
11
+ const instance = new ToggleDonobuAnnotations(pageInspector);
12
+ await browserContext.exposeBinding(instance.name(), instance.call.bind(instance));
13
+ return instance;
14
+ }
15
+ constructor(pageInspector) {
16
+ this.pageInspector = pageInspector;
17
+ }
12
18
  name() {
13
19
  return ToggleDonobuAnnotations.NAME;
14
20
  }
15
21
  async call(source, ...args) {
16
22
  const isToggled = args[0];
17
23
  if (isToggled) {
18
- await PlaywrightUtils_1.PlaywrightUtils.attributeInteractableElements(source.page);
19
- await PlaywrightUtils_1.PlaywrightUtils.annotateInteractableElements(source.page);
24
+ await this.pageInspector.attributeInteractableElements(source.page);
25
+ await this.pageInspector.annotateInteractableElements(source.page);
20
26
  }
21
27
  else {
22
- await PlaywrightUtils_1.PlaywrightUtils.removeDonobuAnnotations(source.page);
28
+ await this.pageInspector.removeDonobuAnnotations(source.page);
23
29
  }
24
30
  return;
25
31
  }
26
32
  }
27
33
  exports.ToggleDonobuAnnotations = ToggleDonobuAnnotations;
28
- ToggleDonobuAnnotations.NAME = 'donobuToggleAnnotations';
34
+ ToggleDonobuAnnotations.NAME = '__donobuToggleAnnotations';
29
35
  //# sourceMappingURL=ToggleDonobuAnnotations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleDonobuAnnotations.js","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAI3D;;;;GAIG;AACH,MAAa,uBAAuB;IAGlC,gBAAsB,CAAC;IAEhB,IAAI;QACT,OAAO,uBAAuB,CAAC,IAAI,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAY,CAAC;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,iCAAe,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,iCAAe,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,iCAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO;IACT,CAAC;;AAvBH,0DAwBC;AAvBwB,4BAAI,GAAG,yBAAyB,CAAC"}
1
+ {"version":3,"file":"ToggleDonobuAnnotations.js","sourceRoot":"","sources":["../../../src/bindings/ToggleDonobuAnnotations.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,MAAa,uBAAuB;IAG3B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,aAA4B,EAC5B,cAA8B;QAE9B,MAAM,QAAQ,GAAG,IAAI,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,cAAc,CAAC,aAAa,CAChC,QAAQ,CAAC,IAAI,EAAE,EACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,YAAoC,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,IAAI;QACT,OAAO,uBAAuB,CAAC,IAAI,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA6D,EAC7D,GAAG,IAAW;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAY,CAAC;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;IACT,CAAC;;AAnCH,0DAoCC;AAnCwB,4BAAI,GAAG,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeGenerator.d.ts","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAyB9D,qBAAa,aAAa;IACxB,8EAA8E;IACjE,yBAAyB,CACpC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,GACjC,OAAO,CAAC,MAAM,CAAC;IA0FlB;;;OAGG;WACW,uCAAuC,CACnD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,MAAM;YAmEK,YAAY;IAY1B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CASnC"}
1
+ {"version":3,"file":"CodeGenerator.d.ts","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AA4B9D,qBAAa,aAAa;IACxB,8EAA8E;IACjE,yBAAyB,CACpC,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,GACjC,OAAO,CAAC,MAAM,CAAC;IA0FlB;;;OAGG;WACW,uCAAuC,CACnD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GACtC,MAAM;YAqEK,YAAY;IAY1B;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;CASnC"}
@@ -133,7 +133,8 @@ ${resultJson}
133
133
  return `${rationale}await page.visuallyAssert(${serializedParams});`;
134
134
  }
135
135
  case ChangeWebBrowserTabTool_1.ChangeWebBrowserTabTool.NAME: {
136
- return `${rationale}page = page.context().pages().find((tab) => tab.url() === '${rawParams.tabUrl}');`;
136
+ const url = proposedToolCall.parameters;
137
+ return `${rationale}page = await page.changeTab(${url.tabUrl});`;
137
138
  }
138
139
  case ChooseSelectOptionTool_1.ChooseSelectOptionTool.NAME: {
139
140
  return `${rationale}await page.chooseSelectOption(${serializedParams});`;
@@ -1 +1 @@
1
- {"version":3,"file":"CodeGenerator.js","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeGenerator.js","sourceRoot":"","sources":["../../../src/managers/CodeGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { BrowserContext, Page } from 'playwright';
2
+ import { FlowMetadata, State } from '../models/FlowMetadata';
3
+ /**
4
+ * Manages the integration and interaction with the Donobu control panel in web pages.
5
+ * Note that if the `isControlPanelEnabled` flow metadata state is false, all
6
+ * operations are no-ops.
7
+ *
8
+ * The control panel provides a user interface for interacting with automated flows in the browser,
9
+ * allowing users to pause, resume, and stop flows. The panel includes visual indicators of the
10
+ * current flow state and can be dragged around the page.
11
+ *
12
+ * Key features:
13
+ * - Reading and processing user interactions from the control panel
14
+ * - Showing/hiding the control panel
15
+ * - Updating the control panel state and headline text
16
+ * - Maintaining consistency across multiple pages in the same browser context
17
+ *
18
+ * @example
19
+ * // Check for user requests from the control panel
20
+ * const nextState = await controlPanel.popControlPanelNextDesiredState(browserContext);
21
+ * if (nextState === 'PAUSED') {
22
+ * // Handle pause request
23
+ * }
24
+ *
25
+ * // Update the control panel with current flow state
26
+ * await controlPanel.update(browserContext, "Executing action...");
27
+ */
28
+ export declare class ControlPanel {
29
+ private readonly flowMetadata;
30
+ static readonly INIT_SCRIPT: string;
31
+ /**
32
+ * The HTML element ID for the control panel container.
33
+ *
34
+ * WARNING: If this ID is changed, you must also update the corresponding ID in
35
+ * {@link ControlPanel.INIT_SCRIPT}.
36
+ */
37
+ static readonly DONOBU_CONTROL_PANEL_ELEMENT_ID = "donobu-control-panel";
38
+ /**
39
+ * The HTML element ID for the headline text element in the control panel.
40
+ * This element displays the current state or action message.
41
+ */
42
+ static readonly DONOBU_CONTROL_PANEL_HEADLINE_ELEMENT_ID = "donobu-control-panel-title-text";
43
+ constructor(flowMetadata: FlowMetadata);
44
+ /**
45
+ * Reads and clears the next desired state from the control panel UI.
46
+ *
47
+ * This method checks if the user has requested a state change (pause, resume, or end)
48
+ * via the control panel interface. When called, it retrieves any pending state change
49
+ * request and clears the request from the UI to prevent duplicate processing.
50
+ *
51
+ * Note that the control panel does not have unlimited control over the flow -
52
+ * it is restricted to signaling intents to pause, resume, or end a flow.
53
+ *
54
+ * @param page - The Playwright Page object where the control panel exists
55
+ * @returns The requested state (as a State enum value) or null if no state change was requested
56
+ * @throws {PageClosedException} If the page has been closed while attempting to read the state
57
+ *
58
+ * @example
59
+ * const nextState = await controlPanel.popNextDesiredState(page);
60
+ * if (nextState === 'PAUSED') {
61
+ * // Handle the pause request
62
+ * flowMetadata.state = State.PAUSED;
63
+ * }
64
+ */
65
+ popNextDesiredState(page: Page): Promise<State | null>;
66
+ /**
67
+ * Hides the control panel on all pages in the browser context.
68
+ *
69
+ * Sets the control panel's display style to 'none', making it invisible and
70
+ * preventing it from intercepting mouse events. This is useful when taking
71
+ * screenshots or when the control panel might interfere with user interactions.
72
+ *
73
+ * This method operates on all pages in the same browser context, ensuring
74
+ * consistent behavior if multiple tabs/windows are open.
75
+ *
76
+ * @param browserContext - The browser context to update pages on
77
+ * @returns A Promise that resolves when the operation is complete
78
+ */
79
+ hide(browserContext: BrowserContext): Promise<void>;
80
+ /**
81
+ * Shows the control panel on all pages in the browser context.
82
+ *
83
+ * Resets the control panel's display property to make it visible again.
84
+ * This method will only show the control panel if it is enabled in the
85
+ * flow metadata.
86
+ *
87
+ * Like other control panel methods, this operates on all pages in the
88
+ * same browser context for consistency.
89
+ *
90
+ * @param browserContext - The browser context to update pages on
91
+ * @returns A Promise that resolves when the operation is complete
92
+ */
93
+ show(browserContext: BrowserContext): Promise<void>;
94
+ /**
95
+ * Updates the control panel state and optionally its headline text.
96
+ *
97
+ * This method updates the control panel on all pages in the browser context with
98
+ * the current flow state.
99
+ *
100
+ * If a headline string is provided, it also updates the title text displayed
101
+ * in the control panel. If the headline string is not provided, a default message
102
+ * appropriate for the current flow state is displayed.
103
+ *
104
+ * This method helps keep the UI in sync with the actual flow state and provides
105
+ * visual feedback to the user about the current operation.
106
+ *
107
+ * @param browserContext - The browser context to update pages on
108
+ * @param headline - Optional text to display in the panel headline
109
+ * @returns A Promise that resolves when the update operation is complete
110
+ *
111
+ * @example
112
+ * // Update all control panels with the current state and a custom message
113
+ * await controlPanel.update(
114
+ * browserContext,
115
+ * flowMetadata,
116
+ * "Entering login credentials..."
117
+ * );
118
+ */
119
+ update(browserContext: BrowserContext, headline?: string): Promise<void>;
120
+ private getDefaultControlPanelMessage;
121
+ private isHeadless;
122
+ private ensureControlPanelIsSetup;
123
+ }
124
+ //# sourceMappingURL=ControlPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../../../src/managers/ControlPanel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAO7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,YAAY;IAqBJ,OAAO,CAAC,QAAQ,CAAC,YAAY;IApBhD,gBAAuB,WAAW,SAEhC;IAEF;;;;;OAKG;IACH,gBAAuB,+BAA+B,0BAC7B;IAEzB;;;OAGG;IACH,gBAAuB,wCAAwC,qCAC3B;gBAEA,YAAY,EAAE,YAAY;IAE9D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IA4BnE;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhE;;;;;;;;;;;;OAYG;IACU,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CACjB,cAAc,EAAE,cAAc,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IAiDhB,OAAO,CAAC,6BAA6B;IAsBrC,OAAO,CAAC,UAAU;YAOJ,yBAAyB;CAoBxC"}