donobu 2.15.0 → 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 (402) hide show
  1. package/dist/apis/FlowsFilesApi.d.ts.map +1 -1
  2. package/dist/apis/FlowsFilesApi.js +5 -2
  3. package/dist/apis/FlowsFilesApi.js.map +1 -1
  4. package/dist/assets/control-panel.js +30 -3
  5. package/dist/assets/generated/parameter-schemas.json +118 -17
  6. package/dist/assets/generated/version +1 -1
  7. package/dist/assets/interactive-elements-tracker.js +351 -0
  8. package/dist/assets/page-interactions-tracker.js +39 -20
  9. package/dist/assets/smart-selector-generator.js +38 -15
  10. package/dist/bindings/FocusPage.d.ts +6 -1
  11. package/dist/bindings/FocusPage.d.ts.map +1 -1
  12. package/dist/bindings/FocusPage.js +2 -8
  13. package/dist/bindings/FocusPage.js.map +1 -1
  14. package/dist/bindings/PageInteractionTracker.d.ts +9 -2
  15. package/dist/bindings/PageInteractionTracker.d.ts.map +1 -1
  16. package/dist/bindings/PageInteractionTracker.js +29 -5
  17. package/dist/bindings/PageInteractionTracker.js.map +1 -1
  18. package/dist/bindings/ProposeToolCall.d.ts +20 -0
  19. package/dist/bindings/ProposeToolCall.d.ts.map +1 -0
  20. package/dist/bindings/ProposeToolCall.js +29 -0
  21. package/dist/bindings/ProposeToolCall.js.map +1 -0
  22. package/dist/bindings/ToggleDonobuAnnotations.d.ts +5 -2
  23. package/dist/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  24. package/dist/bindings/ToggleDonobuAnnotations.js +12 -6
  25. package/dist/bindings/ToggleDonobuAnnotations.js.map +1 -1
  26. package/dist/clients/AnthropicAwsBedrockGptClient.d.ts +1 -20
  27. package/dist/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
  28. package/dist/clients/AnthropicAwsBedrockGptClient.js +12 -329
  29. package/dist/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  30. package/dist/clients/AnthropicGptClient.d.ts +0 -8
  31. package/dist/clients/AnthropicGptClient.d.ts.map +1 -1
  32. package/dist/clients/AnthropicGptClient.js +8 -22
  33. package/dist/clients/AnthropicGptClient.js.map +1 -1
  34. package/dist/clients/GoogleGptClient.d.ts +4 -20
  35. package/dist/clients/GoogleGptClient.d.ts.map +1 -1
  36. package/dist/clients/GoogleGptClient.js +23 -299
  37. package/dist/clients/GoogleGptClient.js.map +1 -1
  38. package/dist/clients/OpenAiGptClient.d.ts +0 -6
  39. package/dist/clients/OpenAiGptClient.d.ts.map +1 -1
  40. package/dist/clients/OpenAiGptClient.js +4 -8
  41. package/dist/clients/OpenAiGptClient.js.map +1 -1
  42. package/dist/clients/VercelAiGptClient.d.ts +3 -1
  43. package/dist/clients/VercelAiGptClient.d.ts.map +1 -1
  44. package/dist/clients/VercelAiGptClient.js +18 -14
  45. package/dist/clients/VercelAiGptClient.js.map +1 -1
  46. package/dist/esm/apis/FlowsFilesApi.d.ts.map +1 -1
  47. package/dist/esm/apis/FlowsFilesApi.js +5 -2
  48. package/dist/esm/apis/FlowsFilesApi.js.map +1 -1
  49. package/dist/esm/assets/control-panel.js +30 -3
  50. package/dist/esm/assets/generated/parameter-schemas.json +118 -17
  51. package/dist/esm/assets/generated/version +1 -1
  52. package/dist/esm/assets/interactive-elements-tracker.js +351 -0
  53. package/dist/esm/assets/page-interactions-tracker.js +39 -20
  54. package/dist/esm/assets/smart-selector-generator.js +38 -15
  55. package/dist/esm/bindings/FocusPage.d.ts +6 -1
  56. package/dist/esm/bindings/FocusPage.d.ts.map +1 -1
  57. package/dist/esm/bindings/FocusPage.js +2 -8
  58. package/dist/esm/bindings/FocusPage.js.map +1 -1
  59. package/dist/esm/bindings/PageInteractionTracker.d.ts +9 -2
  60. package/dist/esm/bindings/PageInteractionTracker.d.ts.map +1 -1
  61. package/dist/esm/bindings/PageInteractionTracker.js +29 -5
  62. package/dist/esm/bindings/PageInteractionTracker.js.map +1 -1
  63. package/dist/esm/bindings/ProposeToolCall.d.ts +20 -0
  64. package/dist/esm/bindings/ProposeToolCall.d.ts.map +1 -0
  65. package/dist/esm/bindings/ProposeToolCall.js +29 -0
  66. package/dist/esm/bindings/ProposeToolCall.js.map +1 -0
  67. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts +5 -2
  68. package/dist/esm/bindings/ToggleDonobuAnnotations.d.ts.map +1 -1
  69. package/dist/esm/bindings/ToggleDonobuAnnotations.js +12 -6
  70. package/dist/esm/bindings/ToggleDonobuAnnotations.js.map +1 -1
  71. package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts +1 -20
  72. package/dist/esm/clients/AnthropicAwsBedrockGptClient.d.ts.map +1 -1
  73. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js +12 -329
  74. package/dist/esm/clients/AnthropicAwsBedrockGptClient.js.map +1 -1
  75. package/dist/esm/clients/AnthropicGptClient.d.ts +0 -8
  76. package/dist/esm/clients/AnthropicGptClient.d.ts.map +1 -1
  77. package/dist/esm/clients/AnthropicGptClient.js +8 -22
  78. package/dist/esm/clients/AnthropicGptClient.js.map +1 -1
  79. package/dist/esm/clients/GoogleGptClient.d.ts +4 -20
  80. package/dist/esm/clients/GoogleGptClient.d.ts.map +1 -1
  81. package/dist/esm/clients/GoogleGptClient.js +23 -299
  82. package/dist/esm/clients/GoogleGptClient.js.map +1 -1
  83. package/dist/esm/clients/OpenAiGptClient.d.ts +0 -6
  84. package/dist/esm/clients/OpenAiGptClient.d.ts.map +1 -1
  85. package/dist/esm/clients/OpenAiGptClient.js +4 -8
  86. package/dist/esm/clients/OpenAiGptClient.js.map +1 -1
  87. package/dist/esm/clients/VercelAiGptClient.d.ts +3 -1
  88. package/dist/esm/clients/VercelAiGptClient.d.ts.map +1 -1
  89. package/dist/esm/clients/VercelAiGptClient.js +18 -14
  90. package/dist/esm/clients/VercelAiGptClient.js.map +1 -1
  91. package/dist/esm/managers/CodeGenerator.d.ts.map +1 -1
  92. package/dist/esm/managers/CodeGenerator.js +2 -1
  93. package/dist/esm/managers/CodeGenerator.js.map +1 -1
  94. package/dist/esm/managers/ControlPanel.d.ts +124 -0
  95. package/dist/esm/managers/ControlPanel.d.ts.map +1 -0
  96. package/dist/esm/managers/ControlPanel.js +282 -0
  97. package/dist/esm/managers/ControlPanel.js.map +1 -0
  98. package/dist/esm/managers/DonobuFlow.d.ts +9 -13
  99. package/dist/esm/managers/DonobuFlow.d.ts.map +1 -1
  100. package/dist/esm/managers/DonobuFlow.js +123 -172
  101. package/dist/esm/managers/DonobuFlow.js.map +1 -1
  102. package/dist/esm/managers/InteractionVisualizer.d.ts +9 -15
  103. package/dist/esm/managers/InteractionVisualizer.d.ts.map +1 -1
  104. package/dist/esm/managers/InteractionVisualizer.js +44 -44
  105. package/dist/esm/managers/InteractionVisualizer.js.map +1 -1
  106. package/dist/esm/managers/PageInspector.d.ts +242 -0
  107. package/dist/esm/managers/PageInspector.d.ts.map +1 -0
  108. package/dist/esm/managers/PageInspector.js +783 -0
  109. package/dist/esm/managers/PageInspector.js.map +1 -0
  110. package/dist/esm/managers/ToolManager.d.ts.map +1 -1
  111. package/dist/esm/managers/ToolManager.js +4 -6
  112. package/dist/esm/managers/ToolManager.js.map +1 -1
  113. package/dist/esm/models/GptMessage.d.ts +3 -3
  114. package/dist/esm/models/GptMessage.d.ts.map +1 -1
  115. package/dist/esm/models/InteractableElement.d.ts +2 -2
  116. package/dist/esm/models/ToolCallContext.d.ts +6 -2
  117. package/dist/esm/models/ToolCallContext.d.ts.map +1 -1
  118. package/dist/esm/persistence/FlowsPersistence.d.ts +4 -4
  119. package/dist/esm/persistence/FlowsPersistence.d.ts.map +1 -1
  120. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts +2 -3
  121. package/dist/esm/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  122. package/dist/esm/persistence/FlowsPersistenceAwsS3.js +8 -6
  123. package/dist/esm/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  124. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts +2 -3
  125. package/dist/esm/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  126. package/dist/esm/persistence/FlowsPersistenceFilesystem.js +5 -4
  127. package/dist/esm/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  128. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +2 -3
  129. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  130. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js +7 -5
  131. package/dist/esm/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  132. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts +2 -3
  133. package/dist/esm/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  134. package/dist/esm/persistence/FlowsPersistenceSqlite.js +8 -6
  135. package/dist/esm/persistence/FlowsPersistenceSqlite.js.map +1 -1
  136. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts +2 -2
  137. package/dist/esm/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  138. package/dist/esm/persistence/FlowsPersistenceSupabase.js +5 -3
  139. package/dist/esm/persistence/FlowsPersistenceSupabase.js.map +1 -1
  140. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts +2 -2
  141. package/dist/esm/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  142. package/dist/esm/persistence/FlowsPersistenceVolatile.js +5 -3
  143. package/dist/esm/persistence/FlowsPersistenceVolatile.js.map +1 -1
  144. package/dist/esm/playwrightTestExtensions.d.ts +5 -0
  145. package/dist/esm/playwrightTestExtensions.d.ts.map +1 -1
  146. package/dist/esm/playwrightTestExtensions.js +56 -17
  147. package/dist/esm/playwrightTestExtensions.js.map +1 -1
  148. package/dist/esm/tools/AnalyzePageTextTool.js +1 -1
  149. package/dist/esm/tools/AnalyzePageTextTool.js.map +1 -1
  150. package/dist/esm/tools/AssertPageTextTool.js +1 -1
  151. package/dist/esm/tools/AssertPageTextTool.js.map +1 -1
  152. package/dist/esm/tools/AssertTool.d.ts.map +1 -1
  153. package/dist/esm/tools/AssertTool.js +5 -5
  154. package/dist/esm/tools/AssertTool.js.map +1 -1
  155. package/dist/esm/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
  156. package/dist/esm/tools/ChangeWebBrowserTabTool.js +8 -7
  157. package/dist/esm/tools/ChangeWebBrowserTabTool.js.map +1 -1
  158. package/dist/esm/tools/ClickTool.js +1 -1
  159. package/dist/esm/tools/ClickTool.js.map +1 -1
  160. package/dist/esm/tools/CreateBrowserCookieReportTool.js +1 -1
  161. package/dist/esm/tools/CreateBrowserCookieReportTool.js.map +1 -1
  162. package/dist/esm/tools/CustomToolRunnerTool.d.ts.map +1 -1
  163. package/dist/esm/tools/CustomToolRunnerTool.js +1 -1
  164. package/dist/esm/tools/CustomToolRunnerTool.js.map +1 -1
  165. package/dist/esm/tools/DetectBrokenLinksTool.d.ts.map +1 -1
  166. package/dist/esm/tools/DetectBrokenLinksTool.js +5 -3
  167. package/dist/esm/tools/DetectBrokenLinksTool.js.map +1 -1
  168. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js +4 -4
  169. package/dist/esm/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  170. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js +1 -1
  171. package/dist/esm/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  172. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  173. package/dist/esm/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  174. package/dist/esm/tools/GoForwardOrBackTool.js +1 -1
  175. package/dist/esm/tools/GoForwardOrBackTool.js.map +1 -1
  176. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  177. package/dist/esm/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  178. package/dist/esm/tools/GoToWebpageTool.js +1 -1
  179. package/dist/esm/tools/GoToWebpageTool.js.map +1 -1
  180. package/dist/esm/tools/HoverOverElementTool.d.ts.map +1 -1
  181. package/dist/esm/tools/HoverOverElementTool.js +1 -1
  182. package/dist/esm/tools/HoverOverElementTool.js.map +1 -1
  183. package/dist/esm/tools/NavigateWithinStreetView.js +1 -1
  184. package/dist/esm/tools/NavigateWithinStreetView.js.map +1 -1
  185. package/dist/esm/tools/PressKeyTool.js +1 -1
  186. package/dist/esm/tools/PressKeyTool.js.map +1 -1
  187. package/dist/esm/tools/ReloadPageTool.js +1 -1
  188. package/dist/esm/tools/ReloadPageTool.js.map +1 -1
  189. package/dist/esm/tools/ReplayableInteraction.d.ts +16 -1
  190. package/dist/esm/tools/ReplayableInteraction.d.ts.map +1 -1
  191. package/dist/esm/tools/ReplayableInteraction.js +169 -16
  192. package/dist/esm/tools/ReplayableInteraction.js.map +1 -1
  193. package/dist/esm/tools/RunAccessibilityTestTool.d.ts +8 -0
  194. package/dist/esm/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  195. package/dist/esm/tools/RunAccessibilityTestTool.js +15 -2
  196. package/dist/esm/tools/RunAccessibilityTestTool.js.map +1 -1
  197. package/dist/esm/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
  198. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js +1 -1
  199. package/dist/esm/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  200. package/dist/esm/tools/SaveWebpageAsPdfTool.js +1 -1
  201. package/dist/esm/tools/SaveWebpageAsPdfTool.js.map +1 -1
  202. package/dist/esm/tools/ScrollPageTool.d.ts +1 -1
  203. package/dist/esm/tools/ScrollPageTool.d.ts.map +1 -1
  204. package/dist/esm/tools/ScrollPageTool.js +47 -4
  205. package/dist/esm/tools/ScrollPageTool.js.map +1 -1
  206. package/dist/esm/tools/WaitTool.js +1 -1
  207. package/dist/esm/tools/WaitTool.js.map +1 -1
  208. package/dist/esm/utils/MiscUtils.d.ts +10 -13
  209. package/dist/esm/utils/MiscUtils.d.ts.map +1 -1
  210. package/dist/esm/utils/MiscUtils.js +92 -56
  211. package/dist/esm/utils/MiscUtils.js.map +1 -1
  212. package/dist/esm/utils/PlaywrightUtils.d.ts +32 -130
  213. package/dist/esm/utils/PlaywrightUtils.d.ts.map +1 -1
  214. package/dist/esm/utils/PlaywrightUtils.js +140 -938
  215. package/dist/esm/utils/PlaywrightUtils.js.map +1 -1
  216. package/dist/managers/CodeGenerator.d.ts.map +1 -1
  217. package/dist/managers/CodeGenerator.js +2 -1
  218. package/dist/managers/CodeGenerator.js.map +1 -1
  219. package/dist/managers/ControlPanel.d.ts +124 -0
  220. package/dist/managers/ControlPanel.d.ts.map +1 -0
  221. package/dist/managers/ControlPanel.js +282 -0
  222. package/dist/managers/ControlPanel.js.map +1 -0
  223. package/dist/managers/DonobuFlow.d.ts +9 -13
  224. package/dist/managers/DonobuFlow.d.ts.map +1 -1
  225. package/dist/managers/DonobuFlow.js +123 -172
  226. package/dist/managers/DonobuFlow.js.map +1 -1
  227. package/dist/managers/InteractionVisualizer.d.ts +9 -15
  228. package/dist/managers/InteractionVisualizer.d.ts.map +1 -1
  229. package/dist/managers/InteractionVisualizer.js +44 -44
  230. package/dist/managers/InteractionVisualizer.js.map +1 -1
  231. package/dist/managers/PageInspector.d.ts +242 -0
  232. package/dist/managers/PageInspector.d.ts.map +1 -0
  233. package/dist/managers/PageInspector.js +783 -0
  234. package/dist/managers/PageInspector.js.map +1 -0
  235. package/dist/managers/ToolManager.d.ts.map +1 -1
  236. package/dist/managers/ToolManager.js +4 -6
  237. package/dist/managers/ToolManager.js.map +1 -1
  238. package/dist/models/GptMessage.d.ts +3 -3
  239. package/dist/models/GptMessage.d.ts.map +1 -1
  240. package/dist/models/InteractableElement.d.ts +2 -2
  241. package/dist/models/ToolCallContext.d.ts +6 -2
  242. package/dist/models/ToolCallContext.d.ts.map +1 -1
  243. package/dist/persistence/FlowsPersistence.d.ts +4 -4
  244. package/dist/persistence/FlowsPersistence.d.ts.map +1 -1
  245. package/dist/persistence/FlowsPersistenceAwsS3.d.ts +2 -3
  246. package/dist/persistence/FlowsPersistenceAwsS3.d.ts.map +1 -1
  247. package/dist/persistence/FlowsPersistenceAwsS3.js +8 -6
  248. package/dist/persistence/FlowsPersistenceAwsS3.js.map +1 -1
  249. package/dist/persistence/FlowsPersistenceFilesystem.d.ts +2 -3
  250. package/dist/persistence/FlowsPersistenceFilesystem.d.ts.map +1 -1
  251. package/dist/persistence/FlowsPersistenceFilesystem.js +5 -4
  252. package/dist/persistence/FlowsPersistenceFilesystem.js.map +1 -1
  253. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts +2 -3
  254. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.d.ts.map +1 -1
  255. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js +7 -5
  256. package/dist/persistence/FlowsPersistenceGoogleCloudStorage.js.map +1 -1
  257. package/dist/persistence/FlowsPersistenceSqlite.d.ts +2 -3
  258. package/dist/persistence/FlowsPersistenceSqlite.d.ts.map +1 -1
  259. package/dist/persistence/FlowsPersistenceSqlite.js +8 -6
  260. package/dist/persistence/FlowsPersistenceSqlite.js.map +1 -1
  261. package/dist/persistence/FlowsPersistenceSupabase.d.ts +2 -2
  262. package/dist/persistence/FlowsPersistenceSupabase.d.ts.map +1 -1
  263. package/dist/persistence/FlowsPersistenceSupabase.js +5 -3
  264. package/dist/persistence/FlowsPersistenceSupabase.js.map +1 -1
  265. package/dist/persistence/FlowsPersistenceVolatile.d.ts +2 -2
  266. package/dist/persistence/FlowsPersistenceVolatile.d.ts.map +1 -1
  267. package/dist/persistence/FlowsPersistenceVolatile.js +5 -3
  268. package/dist/persistence/FlowsPersistenceVolatile.js.map +1 -1
  269. package/dist/playwrightTestExtensions.d.ts +5 -0
  270. package/dist/playwrightTestExtensions.d.ts.map +1 -1
  271. package/dist/playwrightTestExtensions.js +56 -17
  272. package/dist/playwrightTestExtensions.js.map +1 -1
  273. package/dist/tools/AnalyzePageTextTool.js +1 -1
  274. package/dist/tools/AnalyzePageTextTool.js.map +1 -1
  275. package/dist/tools/AssertPageTextTool.js +1 -1
  276. package/dist/tools/AssertPageTextTool.js.map +1 -1
  277. package/dist/tools/AssertTool.d.ts.map +1 -1
  278. package/dist/tools/AssertTool.js +5 -5
  279. package/dist/tools/AssertTool.js.map +1 -1
  280. package/dist/tools/ChangeWebBrowserTabTool.d.ts.map +1 -1
  281. package/dist/tools/ChangeWebBrowserTabTool.js +8 -7
  282. package/dist/tools/ChangeWebBrowserTabTool.js.map +1 -1
  283. package/dist/tools/ClickTool.js +1 -1
  284. package/dist/tools/ClickTool.js.map +1 -1
  285. package/dist/tools/CreateBrowserCookieReportTool.js +1 -1
  286. package/dist/tools/CreateBrowserCookieReportTool.js.map +1 -1
  287. package/dist/tools/CustomToolRunnerTool.d.ts.map +1 -1
  288. package/dist/tools/CustomToolRunnerTool.js +1 -1
  289. package/dist/tools/CustomToolRunnerTool.js.map +1 -1
  290. package/dist/tools/DetectBrokenLinksTool.d.ts.map +1 -1
  291. package/dist/tools/DetectBrokenLinksTool.js +5 -3
  292. package/dist/tools/DetectBrokenLinksTool.js.map +1 -1
  293. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js +4 -4
  294. package/dist/tools/ExtractGoogleStreetviewEntityDataTool.js.map +1 -1
  295. package/dist/tools/ExtractPaymentProviderKeyTool.js +1 -1
  296. package/dist/tools/ExtractPaymentProviderKeyTool.js.map +1 -1
  297. package/dist/tools/ExtractPublicFacebookEntityDataTool.js +1 -1
  298. package/dist/tools/ExtractPublicFacebookEntityDataTool.js.map +1 -1
  299. package/dist/tools/GoForwardOrBackTool.js +1 -1
  300. package/dist/tools/GoForwardOrBackTool.js.map +1 -1
  301. package/dist/tools/GoToGoogleMapsStreetViewTool.js +1 -1
  302. package/dist/tools/GoToGoogleMapsStreetViewTool.js.map +1 -1
  303. package/dist/tools/GoToWebpageTool.js +1 -1
  304. package/dist/tools/GoToWebpageTool.js.map +1 -1
  305. package/dist/tools/HoverOverElementTool.d.ts.map +1 -1
  306. package/dist/tools/HoverOverElementTool.js +1 -1
  307. package/dist/tools/HoverOverElementTool.js.map +1 -1
  308. package/dist/tools/NavigateWithinStreetView.js +1 -1
  309. package/dist/tools/NavigateWithinStreetView.js.map +1 -1
  310. package/dist/tools/PressKeyTool.js +1 -1
  311. package/dist/tools/PressKeyTool.js.map +1 -1
  312. package/dist/tools/ReloadPageTool.js +1 -1
  313. package/dist/tools/ReloadPageTool.js.map +1 -1
  314. package/dist/tools/ReplayableInteraction.d.ts +16 -1
  315. package/dist/tools/ReplayableInteraction.d.ts.map +1 -1
  316. package/dist/tools/ReplayableInteraction.js +169 -16
  317. package/dist/tools/ReplayableInteraction.js.map +1 -1
  318. package/dist/tools/RunAccessibilityTestTool.d.ts +8 -0
  319. package/dist/tools/RunAccessibilityTestTool.d.ts.map +1 -1
  320. package/dist/tools/RunAccessibilityTestTool.js +15 -2
  321. package/dist/tools/RunAccessibilityTestTool.js.map +1 -1
  322. package/dist/tools/RunInlineJavaScriptCodeTool.d.ts.map +1 -1
  323. package/dist/tools/RunInlineJavaScriptCodeTool.js +1 -1
  324. package/dist/tools/RunInlineJavaScriptCodeTool.js.map +1 -1
  325. package/dist/tools/SaveWebpageAsPdfTool.js +1 -1
  326. package/dist/tools/SaveWebpageAsPdfTool.js.map +1 -1
  327. package/dist/tools/ScrollPageTool.d.ts +1 -1
  328. package/dist/tools/ScrollPageTool.d.ts.map +1 -1
  329. package/dist/tools/ScrollPageTool.js +47 -4
  330. package/dist/tools/ScrollPageTool.js.map +1 -1
  331. package/dist/tools/WaitTool.js +1 -1
  332. package/dist/tools/WaitTool.js.map +1 -1
  333. package/dist/utils/MiscUtils.d.ts +10 -13
  334. package/dist/utils/MiscUtils.d.ts.map +1 -1
  335. package/dist/utils/MiscUtils.js +92 -56
  336. package/dist/utils/MiscUtils.js.map +1 -1
  337. package/dist/utils/PlaywrightUtils.d.ts +32 -130
  338. package/dist/utils/PlaywrightUtils.d.ts.map +1 -1
  339. package/dist/utils/PlaywrightUtils.js +140 -938
  340. package/dist/utils/PlaywrightUtils.js.map +1 -1
  341. package/package.json +4 -2
  342. package/dist/assets/clickable-elements-tracker.js +0 -63
  343. package/dist/assets/zaru-eyes.html +0 -141
  344. package/dist/esm/assets/clickable-elements-tracker.js +0 -63
  345. package/dist/esm/assets/zaru-eyes.html +0 -141
  346. package/dist/esm/managers/TemplateInterpolator.d.ts +0 -19
  347. package/dist/esm/managers/TemplateInterpolator.d.ts.map +0 -1
  348. package/dist/esm/managers/TemplateInterpolator.js +0 -86
  349. package/dist/esm/managers/TemplateInterpolator.js.map +0 -1
  350. package/dist/esm/managers/ToolTipper.d.ts +0 -32
  351. package/dist/esm/managers/ToolTipper.d.ts.map +0 -1
  352. package/dist/esm/managers/ToolTipper.js +0 -229
  353. package/dist/esm/managers/ToolTipper.js.map +0 -1
  354. package/dist/esm/models/BrowserState.d.ts +0 -26
  355. package/dist/esm/models/BrowserState.d.ts.map +0 -1
  356. package/dist/esm/models/BrowserState.js +0 -3
  357. package/dist/esm/models/BrowserState.js.map +0 -1
  358. package/dist/esm/models/ResolverContext.d.ts +0 -7
  359. package/dist/esm/models/ResolverContext.d.ts.map +0 -1
  360. package/dist/esm/models/ResolverContext.js +0 -3
  361. package/dist/esm/models/ResolverContext.js.map +0 -1
  362. package/dist/esm/models/ToolTemplateDataSource.d.ts +0 -36
  363. package/dist/esm/models/ToolTemplateDataSource.d.ts.map +0 -1
  364. package/dist/esm/models/ToolTemplateDataSource.js +0 -3
  365. package/dist/esm/models/ToolTemplateDataSource.js.map +0 -1
  366. package/dist/esm/test.d.ts +0 -78
  367. package/dist/esm/test.d.ts.map +0 -1
  368. package/dist/esm/test.js +0 -423
  369. package/dist/esm/test.js.map +0 -1
  370. package/dist/esm/utils/TemplateInterpolator.d.ts +0 -29
  371. package/dist/esm/utils/TemplateInterpolator.d.ts.map +0 -1
  372. package/dist/esm/utils/TemplateInterpolator.js +0 -206
  373. package/dist/esm/utils/TemplateInterpolator.js.map +0 -1
  374. package/dist/managers/TemplateInterpolator.d.ts +0 -19
  375. package/dist/managers/TemplateInterpolator.d.ts.map +0 -1
  376. package/dist/managers/TemplateInterpolator.js +0 -86
  377. package/dist/managers/TemplateInterpolator.js.map +0 -1
  378. package/dist/managers/ToolTipper.d.ts +0 -32
  379. package/dist/managers/ToolTipper.d.ts.map +0 -1
  380. package/dist/managers/ToolTipper.js +0 -229
  381. package/dist/managers/ToolTipper.js.map +0 -1
  382. package/dist/models/BrowserState.d.ts +0 -26
  383. package/dist/models/BrowserState.d.ts.map +0 -1
  384. package/dist/models/BrowserState.js +0 -3
  385. package/dist/models/BrowserState.js.map +0 -1
  386. package/dist/models/ResolverContext.d.ts +0 -7
  387. package/dist/models/ResolverContext.d.ts.map +0 -1
  388. package/dist/models/ResolverContext.js +0 -3
  389. package/dist/models/ResolverContext.js.map +0 -1
  390. package/dist/models/ToolTemplateDataSource.d.ts +0 -36
  391. package/dist/models/ToolTemplateDataSource.d.ts.map +0 -1
  392. package/dist/models/ToolTemplateDataSource.js +0 -3
  393. package/dist/models/ToolTemplateDataSource.js.map +0 -1
  394. package/dist/test.d.ts +0 -78
  395. package/dist/test.d.ts.map +0 -1
  396. package/dist/test.js +0 -423
  397. package/dist/test.js.map +0 -1
  398. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  399. package/dist/utils/TemplateInterpolator.d.ts +0 -29
  400. package/dist/utils/TemplateInterpolator.d.ts.map +0 -1
  401. package/dist/utils/TemplateInterpolator.js +0 -211
  402. package/dist/utils/TemplateInterpolator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FlowsFilesApi.d.ts","sourceRoot":"","sources":["../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAIjF,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAAvB,uBAAuB,EAAE,uBAAuB;IAGtD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BxD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmEtE"}
1
+ {"version":3,"file":"FlowsFilesApi.d.ts","sourceRoot":"","sources":["../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAKjF,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAAvB,uBAAuB,EAAE,uBAAuB;IAGtD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BxD,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAmEtE"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FlowsFilesApi = void 0;
4
4
  const FlowNotFoundException_1 = require("../exceptions/FlowNotFoundException");
5
5
  const Logger_1 = require("../utils/Logger");
6
+ const MiscUtils_1 = require("../utils/MiscUtils");
6
7
  class FlowsFilesApi {
7
8
  constructor(flowsPersistenceFactory) {
8
9
  this.flowsPersistenceFactory = flowsPersistenceFactory;
@@ -12,11 +13,13 @@ class FlowsFilesApi {
12
13
  const imageId = req.params.imageId;
13
14
  for (const flowsPersistence of await this.flowsPersistenceFactory.createPersistenceLayers()) {
14
15
  try {
15
- const image = await flowsPersistence.getPngScreenShot(flowId, imageId);
16
+ const image = await flowsPersistence.getScreenShot(flowId, imageId);
16
17
  if (!image) {
17
18
  continue;
18
19
  }
19
- res.contentType('image/png');
20
+ const imageType = MiscUtils_1.MiscUtils.detectImageType(image);
21
+ const mimeType = `image/${imageType}`;
22
+ res.contentType(mimeType);
20
23
  res.send(image);
21
24
  return;
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FlowsFilesApi.js","sourceRoot":"","sources":["../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowsFilesApi.js","sourceRoot":"","sources":["../../src/apis/FlowsFilesApi.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,31 @@
1
1
  (() => {
2
+ if (!window.__donobu) {
3
+ Object.defineProperty(window, '__donobu', {
4
+ value: {},
5
+ enumerable: false,
6
+ writable: true,
7
+ configurable: false,
8
+ });
9
+ }
10
+
11
+ if (!window.__donobu.controlPanelRegistered) {
12
+ Object.defineProperty(window.__donobu, 'controlPanelRegistered', {
13
+ value: true,
14
+ enumerable: false,
15
+ writable: false,
16
+ configurable: false,
17
+ });
18
+ }
19
+
20
+ if (!window.__donobu.nextState) {
21
+ Object.defineProperty(window.__donobu, 'nextState', {
22
+ value: null,
23
+ enumerable: false,
24
+ writable: true,
25
+ configurable: false,
26
+ });
27
+ }
28
+
2
29
  /**
3
30
  * Wait until document.body is available, then call `init()`.
4
31
  */
@@ -358,7 +385,7 @@
358
385
  isTransitioningToPause = false;
359
386
 
360
387
  // Expose next state so external script can pick it up
361
- window.donobuNextState = 'RESUMING';
388
+ window.__donobu.nextState = 'RESUMING';
362
389
 
363
390
  updateButtonStates();
364
391
  }
@@ -371,7 +398,7 @@
371
398
  isTransitioningToPause = true;
372
399
 
373
400
  // Expose next state
374
- window.donobuNextState = 'PAUSED';
401
+ window.__donobu.nextState = 'PAUSED';
375
402
 
376
403
  updateButtonStates();
377
404
  }
@@ -384,7 +411,7 @@
384
411
  isTransitioningToEnd = true;
385
412
 
386
413
  // Expose next state
387
- window.donobuNextState = 'SUCCESS';
414
+ window.__donobu.nextState = 'SUCCESS';
388
415
 
389
416
  updateButtonStates();
390
417
  }
@@ -26,6 +26,124 @@
26
26
  "additionalProperties": false,
27
27
  "required": ["rationale"]
28
28
  },
29
+ "RunAccessibilityTestToolCoreParameters": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "required": [],
33
+ "properties": {}
34
+ },
35
+ "RunAccessibilityTestToolGptParameters": {
36
+ "type": "object",
37
+ "properties": {
38
+ "rationale": {
39
+ "description": "The reason why this particular action is being taken. It MUST relate to the overall objective.",
40
+ "type": "string"
41
+ }
42
+ },
43
+ "additionalProperties": false,
44
+ "required": ["rationale"]
45
+ },
46
+ "ToolParameters": {
47
+ "anyOf": [
48
+ {
49
+ "type": "object",
50
+ "properties": {
51
+ "_type": {},
52
+ "_output": {},
53
+ "_input": {},
54
+ "_def": {},
55
+ "description": {
56
+ "type": "string"
57
+ },
58
+ "~standard": {
59
+ "description": "The Standard Schema properties interface.",
60
+ "type": "object",
61
+ "properties": {
62
+ "version": {
63
+ "description": "The version number of the standard.",
64
+ "type": "number",
65
+ "const": 1
66
+ },
67
+ "vendor": {
68
+ "description": "The vendor name of the schema library.",
69
+ "type": "string"
70
+ },
71
+ "validate": {
72
+ "description": "Validates unknown input values.",
73
+ "type": "object",
74
+ "additionalProperties": false
75
+ },
76
+ "types": {
77
+ "description": "Inferred types associated with the schema.",
78
+ "type": "object",
79
+ "properties": {
80
+ "input": {
81
+ "description": "The input type of the schema."
82
+ },
83
+ "output": {
84
+ "description": "The output type of the schema."
85
+ }
86
+ },
87
+ "additionalProperties": false,
88
+ "required": ["input", "output"]
89
+ }
90
+ },
91
+ "additionalProperties": false,
92
+ "required": ["validate", "vendor", "version"]
93
+ },
94
+ "spa": {
95
+ "description": "Alias of safeParseAsync",
96
+ "type": "object",
97
+ "additionalProperties": false
98
+ }
99
+ },
100
+ "additionalProperties": false,
101
+ "required": [
102
+ "_def",
103
+ "_input",
104
+ "_output",
105
+ "_type",
106
+ "description",
107
+ "spa",
108
+ "~standard"
109
+ ]
110
+ },
111
+ {
112
+ "additionalProperties": false,
113
+ "type": "object",
114
+ "properties": {
115
+ "validate": {
116
+ "description": "Optional. Validates that the structure of a value matches this schema,\nand returns a typed version of the value if it does.",
117
+ "type": "object",
118
+ "additionalProperties": false
119
+ },
120
+ "__@validatorSymbol@9578": {
121
+ "description": "Used to mark validator functions so we can support both Zod and custom schemas.",
122
+ "type": "boolean",
123
+ "const": true
124
+ },
125
+ "_type": {
126
+ "description": "Schema type for inference."
127
+ },
128
+ "jsonSchema": {
129
+ "$ref": "#/definitions/JSONSchema7",
130
+ "description": "The JSON Schema for the schema. It is passed to the providers."
131
+ },
132
+ "__@schemaSymbol@9583": {
133
+ "description": "Used to mark schemas so we can support both Zod and custom schemas.",
134
+ "type": "boolean",
135
+ "const": true
136
+ }
137
+ },
138
+ "required": [
139
+ "__@schemaSymbol@9583",
140
+ "__@validatorSymbol@9578",
141
+ "_type",
142
+ "jsonSchema"
143
+ ]
144
+ }
145
+ ]
146
+ },
29
147
  "ChooseSelectOptionToolCoreParameters": {
30
148
  "type": "object",
31
149
  "properties": {
@@ -454,23 +572,6 @@
454
572
  "additionalProperties": false,
455
573
  "required": ["rationale", "url"]
456
574
  },
457
- "RunAccessibilityTestToolCoreParameters": {
458
- "type": "object",
459
- "additionalProperties": false,
460
- "required": [],
461
- "properties": {}
462
- },
463
- "RunAccessibilityTestToolGptParameters": {
464
- "type": "object",
465
- "properties": {
466
- "rationale": {
467
- "description": "The reason why this particular action is being taken. It MUST relate to the overall objective.",
468
- "type": "string"
469
- }
470
- },
471
- "additionalProperties": false,
472
- "required": ["rationale"]
473
- },
474
575
  "ScrollPageToolCoreParameters": {
475
576
  "type": "object",
476
577
  "properties": {
@@ -1 +1 @@
1
- 1107
1
+ 1131
@@ -0,0 +1,351 @@
1
+ // interactive-elements-tracker.js
2
+ (() => {
3
+ // Store all elements deemed to be interactive
4
+ const interactiveElements = new Set();
5
+
6
+ // Original method references for monkey patching
7
+ const originalAddEventListener = EventTarget.prototype.addEventListener;
8
+ const originalRemoveEventListener = EventTarget.prototype.removeEventListener;
9
+
10
+ // Events that indicate interactivity
11
+ const pointerEvents = [
12
+ 'click',
13
+ 'mousedown',
14
+ 'pointerdown',
15
+ 'mouseup',
16
+ 'pointerup',
17
+ 'touchstart',
18
+ 'focus',
19
+ 'blur',
20
+ 'change',
21
+ 'input',
22
+ 'submit',
23
+ ];
24
+
25
+ // Helper function to check if an element is in shadow DOM
26
+ const isInShadowDOM = (element) => {
27
+ return (
28
+ element instanceof Element && element.getRootNode() instanceof ShadowRoot
29
+ );
30
+ };
31
+
32
+ // Function to check if an element has interactive CSS properties
33
+ const hasInteractiveStyling = (element) => {
34
+ if (!(element instanceof Element)) return false;
35
+
36
+ try {
37
+ const computedStyle = window.getComputedStyle(element);
38
+
39
+ // Check for style properties that suggest interactivity
40
+ return (
41
+ computedStyle.cursor === 'pointer' ||
42
+ computedStyle.cursor === 'hand' ||
43
+ element.getAttribute('role') === 'button' ||
44
+ element.getAttribute('role') === 'link' ||
45
+ element.getAttribute('aria-haspopup') === 'true' ||
46
+ element.getAttribute('tabindex') === '0' ||
47
+ element.getAttribute('contenteditable') === 'true'
48
+ );
49
+ } catch (error) {
50
+ return false; // Handle potential errors in computed style
51
+ }
52
+ };
53
+
54
+ // Function to check for React-specific attributes that suggest interactivity
55
+ const hasReactInteractiveProps = (element) => {
56
+ if (!(element instanceof Element)) return false;
57
+
58
+ try {
59
+ // Check for React event handler attributes and data attributes
60
+ const reactEventAttrs = [
61
+ 'data-donobu-interactable',
62
+ 'onClick',
63
+ 'onMouseDown',
64
+ 'onMouseUp',
65
+ 'onPointerDown',
66
+ 'onPointerUp',
67
+ 'onTouchStart',
68
+ 'onChange',
69
+ 'onInput',
70
+ 'onFocus',
71
+ 'onBlur',
72
+ 'onSubmit',
73
+ ];
74
+
75
+ // Check for React component CSS classes that suggest interactivity
76
+ const interactiveClasses = [
77
+ 'cursor-pointer',
78
+ 'hover:bg-', // Common Tailwind hover classes
79
+ 'active:bg-',
80
+ 'focus:outline-',
81
+ 'hover:text-',
82
+ ];
83
+
84
+ // Check for attributes
85
+ for (const attr of reactEventAttrs) {
86
+ if (
87
+ element.hasAttribute(attr) ||
88
+ element.getAttribute(attr.toLowerCase()) !== null ||
89
+ (element.dataset && attr in element.dataset)
90
+ ) {
91
+ return true;
92
+ }
93
+ }
94
+
95
+ // Check for class names suggesting interactivity
96
+ const className = element.className || '';
97
+ if (typeof className === 'string') {
98
+ for (const cls of interactiveClasses) {
99
+ if (className.includes(cls)) {
100
+ return true;
101
+ }
102
+ }
103
+ }
104
+
105
+ return false;
106
+ } catch (error) {
107
+ return false; // Handle any potential errors
108
+ }
109
+ };
110
+
111
+ // Monkey patch addEventListener to track elements with event listeners
112
+ EventTarget.prototype.addEventListener = function (type, listener, options) {
113
+ if (pointerEvents.includes(type) && this !== window && this !== document) {
114
+ interactiveElements.add(this);
115
+
116
+ // If this element is in shadow DOM, ensure it's accessible
117
+ if (isInShadowDOM(this)) {
118
+ try {
119
+ const shadowRoot = this.getRootNode();
120
+ if (shadowRoot.host) {
121
+ interactiveElements.add(shadowRoot.host);
122
+ }
123
+ } catch (error) {
124
+ // Ignore errors if getRootNode fails
125
+ }
126
+ }
127
+ }
128
+ return originalAddEventListener.call(this, type, listener, options);
129
+ };
130
+
131
+ // Restore original removeEventListener behavior
132
+ EventTarget.prototype.removeEventListener = function (
133
+ type,
134
+ listener,
135
+ options,
136
+ ) {
137
+ if (pointerEvents.includes(type) && this !== window && this !== document) {
138
+ interactiveElements.delete(this);
139
+ }
140
+ return originalRemoveEventListener.call(this, type, listener, options);
141
+ };
142
+
143
+ // Scan DOM for potentially interactive elements
144
+ const scanForInteractiveElements = () => {
145
+ try {
146
+ // Common interactive element selectors
147
+ const interactiveSelectors = [
148
+ 'a',
149
+ 'button',
150
+ 'input',
151
+ 'select',
152
+ 'textarea',
153
+ 'summary',
154
+ '[role="button"]',
155
+ '[role="link"]',
156
+ '[role="menuitem"]',
157
+ '[role="tab"]',
158
+ '[tabindex]',
159
+ '[contenteditable="true"]',
160
+ '[data-donobu-interactable]',
161
+ '.cursor-pointer',
162
+ ];
163
+
164
+ // Only proceed if document is available
165
+ if (document && document.body) {
166
+ // Query for potential interactive elements
167
+ const potentialElements = document.querySelectorAll(
168
+ interactiveSelectors.join(','),
169
+ );
170
+
171
+ potentialElements.forEach((element) => {
172
+ // Add element if it has interactive styling or React props
173
+ if (
174
+ hasInteractiveStyling(element) ||
175
+ hasReactInteractiveProps(element)
176
+ ) {
177
+ interactiveElements.add(element);
178
+ }
179
+ });
180
+
181
+ // Handle shadow DOM
182
+ document.querySelectorAll('*').forEach((element) => {
183
+ if (element.shadowRoot) {
184
+ try {
185
+ const shadowElements = element.shadowRoot.querySelectorAll(
186
+ interactiveSelectors.join(','),
187
+ );
188
+ shadowElements.forEach((shadowEl) => {
189
+ if (
190
+ hasInteractiveStyling(shadowEl) ||
191
+ hasReactInteractiveProps(shadowEl)
192
+ ) {
193
+ interactiveElements.add(shadowEl);
194
+ interactiveElements.add(element); // Add the host element as well
195
+ }
196
+ });
197
+ } catch (error) {
198
+ // Continue if there's an error with a particular shadow root
199
+ }
200
+ }
201
+ });
202
+ }
203
+ } catch (error) {
204
+ console.error('Error scanning for interactive elements:', error);
205
+ }
206
+ };
207
+
208
+ // Initialize MutationObserver safely
209
+ let observer = null;
210
+
211
+ const initializeMutationObserver = () => {
212
+ if (!document || !document.body) return;
213
+
214
+ try {
215
+ observer = new MutationObserver((mutations) => {
216
+ let shouldRescan = false;
217
+
218
+ for (const mutation of mutations) {
219
+ if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
220
+ shouldRescan = true;
221
+ break;
222
+ }
223
+ }
224
+
225
+ if (shouldRescan) {
226
+ scanForInteractiveElements();
227
+ }
228
+ });
229
+
230
+ // Start observing the document body
231
+ observer.observe(document.body, {
232
+ childList: true,
233
+ subtree: true,
234
+ });
235
+ } catch (error) {
236
+ console.error('Error initializing MutationObserver:', error);
237
+ }
238
+ };
239
+
240
+ if (!window.__donobu) {
241
+ Object.defineProperty(window, '__donobu', {
242
+ value: {},
243
+ enumerable: false,
244
+ writable: true,
245
+ configurable: false,
246
+ });
247
+ }
248
+
249
+ // Add components without overwriting the namespace
250
+ if (!window.__donobu.getInteractiveElements) {
251
+ Object.defineProperty(window.__donobu, 'getInteractiveElements', {
252
+ value: () => {
253
+ // Trigger a scan to ensure we have the latest elements
254
+ scanForInteractiveElements();
255
+
256
+ const allInteractiveElements = [];
257
+
258
+ interactiveElements.forEach((element) => {
259
+ if (element instanceof Element) {
260
+ allInteractiveElements.push(element);
261
+
262
+ // Include shadow DOM elements
263
+ if (element.shadowRoot) {
264
+ try {
265
+ const shadowElements = Array.from(
266
+ element.shadowRoot.querySelectorAll('*'),
267
+ ).filter((el) => interactiveElements.has(el));
268
+
269
+ allInteractiveElements.push(...shadowElements);
270
+ } catch (error) {
271
+ // Continue if there's an error with a particular shadow element
272
+ }
273
+ }
274
+ }
275
+ });
276
+
277
+ return allInteractiveElements;
278
+ },
279
+ enumerable: false,
280
+ writable: false,
281
+ configurable: false,
282
+ });
283
+ }
284
+
285
+ if (!window.__donobu.debugInteractiveElement) {
286
+ Object.defineProperty(window.__donobu, 'debugInteractiveElement', {
287
+ value: (element) => {
288
+ if (!(element instanceof Element)) {
289
+ return { isInteractive: false, reason: 'Not a DOM element' };
290
+ }
291
+
292
+ const reasons = [];
293
+
294
+ if (hasInteractiveStyling(element)) {
295
+ reasons.push('Has interactive CSS styling');
296
+ }
297
+
298
+ if (hasReactInteractiveProps(element)) {
299
+ reasons.push('Has React interactive props or classes');
300
+ }
301
+
302
+ // Check common interactive elements
303
+ if (
304
+ element.tagName === 'A' ||
305
+ element.tagName === 'BUTTON' ||
306
+ element.tagName === 'INPUT' ||
307
+ element.tagName === 'SELECT'
308
+ ) {
309
+ reasons.push(`Is a ${element.tagName} element`);
310
+ }
311
+
312
+ // Check if element has an explicit event listener
313
+ if (interactiveElements.has(element)) {
314
+ reasons.push('Has registered event listener');
315
+ }
316
+
317
+ return {
318
+ isInteractive: reasons.length > 0,
319
+ reasons: reasons,
320
+ };
321
+ },
322
+ enumerable: false,
323
+ writable: false,
324
+ configurable: false,
325
+ });
326
+ }
327
+
328
+ // Initialize things safely after DOM content is loaded
329
+ const initialize = () => {
330
+ scanForInteractiveElements();
331
+ initializeMutationObserver();
332
+ };
333
+
334
+ // Set up a safer initialization approach
335
+ if (document.readyState === 'loading') {
336
+ document.addEventListener('DOMContentLoaded', initialize);
337
+ } else {
338
+ // DOM already ready, initialize now
339
+ initialize();
340
+ }
341
+
342
+ // Periodically scan for interactive elements (React/SPA behavior)
343
+ const rescanInterval = 2000; // milliseconds
344
+ setInterval(() => {
345
+ try {
346
+ scanForInteractiveElements();
347
+ } catch (error) {
348
+ console.error('Error during periodic scan:', error);
349
+ }
350
+ }, rescanInterval);
351
+ })();