@browserbasehq/orca 3.4.0-preview-3 → 3.4.0-preview-5

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 (785) hide show
  1. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
  2. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  3. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +10 -0
  4. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  5. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  6. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  7. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  8. package/dist/cjs/lib/v3/launch/local.js +47 -7
  9. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  10. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  11. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  12. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  13. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  14. package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
  15. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  16. package/dist/cjs/lib/v3/types/public/api.d.ts +283 -0
  17. package/dist/cjs/lib/v3/types/public/api.js +50 -3
  18. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  19. package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
  20. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  21. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  22. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  23. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  24. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  25. package/dist/cjs/lib/v3/v3.js +2 -47
  26. package/dist/cjs/lib/v3/v3.js.map +1 -1
  27. package/dist/cjs/lib/version.d.ts +1 -1
  28. package/dist/cjs/lib/version.js +1 -1
  29. package/dist/cjs/lib/version.js.map +1 -1
  30. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  31. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  32. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  33. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  34. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  35. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  36. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  37. package/dist/esm/lib/v3/launch/local.js +48 -8
  38. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  39. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  40. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  41. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  42. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  43. package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
  44. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  45. package/dist/esm/lib/v3/types/public/api.d.ts +283 -0
  46. package/dist/esm/lib/v3/types/public/api.js +48 -1
  47. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  48. package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
  49. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  50. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  51. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  52. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  53. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  54. package/dist/esm/lib/v3/v3.js +2 -47
  55. package/dist/esm/lib/v3/v3.js.map +1 -1
  56. package/dist/esm/lib/version.d.ts +1 -1
  57. package/dist/esm/lib/version.js +1 -1
  58. package/dist/esm/lib/version.js.map +1 -1
  59. package/package.json +8 -8
  60. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  61. package/dist/cjs/tests/cache-variables.test.js +0 -221
  62. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  63. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  64. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  65. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  66. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  67. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  68. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  69. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  70. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  71. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  72. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  73. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  74. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  75. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  76. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  77. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  78. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  79. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  80. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  81. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  82. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  83. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  84. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  85. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  86. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  87. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  88. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  89. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  90. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  91. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  92. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  93. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  94. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  95. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  96. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  97. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  98. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  99. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  100. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  101. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  102. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  103. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  104. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  105. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  106. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  107. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  108. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  109. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  110. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  111. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  112. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  113. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  114. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  115. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  116. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  117. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  118. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  119. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  120. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  121. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  122. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  123. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  124. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  125. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  126. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  127. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  128. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  129. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  130. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  131. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  132. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  133. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  134. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  135. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  136. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  137. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  138. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  139. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  140. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  141. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  142. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  143. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  144. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  145. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  146. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  147. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  148. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  149. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  150. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  151. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  152. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  153. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  154. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  155. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  156. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  157. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  158. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  159. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  160. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  161. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  162. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  163. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  164. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  165. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  166. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  167. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  168. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  169. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  170. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  171. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  172. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  173. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  174. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  175. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  176. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  177. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  178. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  179. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  180. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  181. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  182. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  183. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  184. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  185. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  186. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  187. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  188. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  189. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  190. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  191. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  192. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  193. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  194. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  195. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  196. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  197. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  198. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  199. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  200. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  201. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  202. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  203. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  204. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  205. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  206. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  207. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  208. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  209. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  210. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  211. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  212. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  213. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  214. package/dist/cjs/tests/integration/testUtils.js +0 -188
  215. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  216. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  217. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  218. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  219. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  220. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  221. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  222. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  223. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  224. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  225. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  226. package/dist/cjs/tests/integration/v3.config.js +0 -11
  227. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  228. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  229. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  230. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  231. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  232. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  233. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  234. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  235. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  236. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  237. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  238. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  239. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  240. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  241. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  242. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  243. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  244. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  245. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  246. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  247. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  248. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  249. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  250. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  251. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  252. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  253. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  254. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  255. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  256. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  257. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  258. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  259. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  260. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  261. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  262. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  263. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  264. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  265. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  266. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  267. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  268. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  269. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  270. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  271. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -135
  272. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  273. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  274. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  275. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  276. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  277. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  278. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  279. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  280. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -69
  281. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  282. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  283. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  284. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  285. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  286. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  287. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  288. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  289. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  290. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  291. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  292. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  293. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  294. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  295. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  296. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  297. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  298. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  299. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  300. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  301. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  302. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  303. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  304. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  305. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  306. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  307. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  308. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  309. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  310. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  311. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  312. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  313. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  314. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  315. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  316. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  317. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  318. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  319. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  320. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  321. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  322. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  323. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  324. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  325. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  326. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  327. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  328. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  329. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  330. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  331. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  332. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  333. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  334. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  335. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  336. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  337. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  338. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  339. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  340. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  341. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  342. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  343. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  344. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  345. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  346. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  347. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  348. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  349. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  350. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  351. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  352. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  353. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  354. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  355. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  356. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  357. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  358. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  359. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  360. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  361. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  362. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  363. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  364. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  365. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  366. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  367. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  368. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  369. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  370. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  371. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  372. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  373. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  374. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  375. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  376. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  377. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  378. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  379. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  380. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  381. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  382. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  383. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  384. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  385. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  386. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  387. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  388. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  389. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  390. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  391. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  392. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  393. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  394. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  395. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  396. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  397. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  398. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  399. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  400. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  401. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  402. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  403. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  404. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  405. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  406. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  407. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  408. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  409. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -933
  410. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  411. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  412. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  413. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  414. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  415. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  416. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  417. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  418. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  419. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  420. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  421. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  422. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  423. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  424. package/dist/esm/tests/cache-variables.test.js +0 -219
  425. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  426. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  427. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  428. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  429. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  430. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  431. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  432. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  433. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  434. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  435. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  436. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  437. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  438. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  439. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  440. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  441. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  442. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  443. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  444. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  445. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  446. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  447. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  448. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  449. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  450. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  451. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  452. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  453. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  454. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  455. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  456. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  457. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  458. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  459. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  460. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  461. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  462. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  463. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  464. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  465. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  466. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  467. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  468. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  469. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  470. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  471. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  472. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  473. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  474. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  475. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  476. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  477. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  478. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  479. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  480. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  481. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  482. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  483. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  484. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  485. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  486. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  487. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  488. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  489. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  490. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  491. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  492. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  493. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  494. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  495. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  496. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  497. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  498. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  499. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  500. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  501. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  502. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  503. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  504. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  505. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  506. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  507. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  508. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  509. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  510. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  511. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  512. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  513. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  514. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  515. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  516. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  517. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  518. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  519. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  520. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  521. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  522. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  523. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  524. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  525. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  526. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  527. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  528. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  529. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  530. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  531. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  532. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  533. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  534. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  535. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  536. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  537. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  538. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  539. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  540. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  541. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  542. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  543. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  544. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  545. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  546. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  547. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  548. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  549. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  550. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  551. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  552. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  553. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  554. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  555. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  556. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  557. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  558. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  559. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  560. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  561. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  562. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  563. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  564. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  565. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  566. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  567. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  568. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  569. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  570. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  571. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  572. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  573. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  574. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  575. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  576. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  577. package/dist/esm/tests/integration/testUtils.js +0 -178
  578. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  579. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  580. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  581. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  582. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  583. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  584. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  585. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  586. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  587. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  588. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  589. package/dist/esm/tests/integration/v3.config.js +0 -7
  590. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  591. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  592. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  593. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  594. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  595. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  596. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  597. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  598. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  599. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  600. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  601. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  602. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  603. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  604. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  605. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  606. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  607. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  608. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  609. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  610. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  611. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  612. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  613. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  614. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  615. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  616. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  617. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  618. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  619. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  620. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  621. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  622. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  623. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  624. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  625. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  626. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  627. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  628. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  629. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  630. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  631. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  632. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  633. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  634. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -133
  635. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  636. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  637. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  638. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  639. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  640. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  641. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  642. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  643. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -67
  644. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  645. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  646. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  647. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  648. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  649. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  650. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  651. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  652. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  653. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  654. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  655. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  656. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  657. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  658. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  659. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  660. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  661. package/dist/esm/tests/unit/cookies.test.js +0 -909
  662. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  663. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  664. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  665. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  666. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  667. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  668. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  669. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  670. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  671. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  672. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  673. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  674. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  675. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  676. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  677. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  678. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  679. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  680. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  681. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  682. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  683. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  684. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  685. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  686. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  687. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  688. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  689. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  690. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  691. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  692. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  693. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  694. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  695. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  696. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  697. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  698. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  699. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  700. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  701. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  702. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  703. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  704. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  705. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  706. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  707. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  708. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  709. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  710. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  711. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  712. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  713. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  714. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  715. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  716. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  717. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  718. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  719. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  720. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  721. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  722. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  723. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  724. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  725. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  726. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  727. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  728. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  729. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  730. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  731. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  732. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  733. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  734. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  735. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  736. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  737. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  738. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  739. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  740. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  741. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  742. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  743. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  744. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  745. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  746. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  747. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  748. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  749. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  750. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  751. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  752. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  753. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  754. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  755. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  756. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  757. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  758. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  759. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  760. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  761. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  762. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  763. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  764. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  765. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  766. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  767. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  768. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  769. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  770. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  771. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  772. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -898
  773. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  774. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  775. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  776. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  777. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  778. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  779. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  780. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  781. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  782. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  783. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  784. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  785. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1,898 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import { ActHandler } from "../../lib/v3/handlers/actHandler.js";
3
- import { ExtractHandler } from "../../lib/v3/handlers/extractHandler.js";
4
- import { ObserveHandler } from "../../lib/v3/handlers/observeHandler.js";
5
- import { createTimeoutGuard } from "../../lib/v3/handlers/handlerUtils/timeoutGuard.js";
6
- import { waitForDomNetworkQuiet } from "../../lib/v3/handlers/handlerUtils/actHandlerUtils.js";
7
- import { captureHybridSnapshot } from "../../lib/v3/understudy/a11y/snapshot/index.js";
8
- import { ActTimeoutError, ExtractTimeoutError, ObserveTimeoutError, } from "../../lib/v3/types/public/sdkErrors.js";
9
- import { act as actInference, extract as extractInference, observe as observeInference, } from "../../lib/inference.js";
10
- import { V3FunctionName } from "../../lib/v3/types/public/methods.js";
11
- vi.mock("../../lib/v3/handlers/handlerUtils/timeoutGuard", () => ({
12
- createTimeoutGuard: vi.fn(),
13
- }));
14
- vi.mock("../../lib/v3/handlers/handlerUtils/actHandlerUtils", () => ({
15
- waitForDomNetworkQuiet: vi.fn(),
16
- performUnderstudyMethod: vi.fn(),
17
- }));
18
- vi.mock("../../lib/v3/understudy/a11y/snapshot", () => ({
19
- captureHybridSnapshot: vi.fn(),
20
- diffCombinedTrees: vi.fn(),
21
- }));
22
- vi.mock("../../lib/inference", () => ({
23
- act: vi.fn(),
24
- extract: vi.fn(),
25
- observe: vi.fn(),
26
- }));
27
- describe("ActHandler timeout guard", () => {
28
- beforeEach(() => {
29
- vi.clearAllMocks();
30
- });
31
- it("throws ActTimeoutError when timeout expires before snapshot", async () => {
32
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
33
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
34
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
35
- captureHybridSnapshotMock.mockResolvedValue({
36
- combinedTree: "",
37
- combinedXpathMap: {},
38
- combinedUrlMap: {},
39
- });
40
- // Make createTimeoutGuard return a guard that throws on call #2
41
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
42
- let calls = 0;
43
- return vi.fn(() => {
44
- calls += 1;
45
- if (calls >= 2) {
46
- throw errorFactory
47
- ? errorFactory(timeoutMs)
48
- : new ActTimeoutError(timeoutMs);
49
- }
50
- });
51
- });
52
- const handler = buildActHandler();
53
- const fakePage = {
54
- mainFrame: vi.fn().mockReturnValue({}),
55
- };
56
- await expect(handler.act({
57
- instruction: "do something",
58
- page: fakePage,
59
- timeout: 5,
60
- })).rejects.toThrow(ActTimeoutError);
61
- // Verify pre-timeout helper ran
62
- expect(waitForDomNetworkQuietMock).toHaveBeenCalledTimes(1);
63
- // Verify snapshot was NOT called (timeout fired before it)
64
- expect(captureHybridSnapshotMock).not.toHaveBeenCalled();
65
- });
66
- it("throws ActTimeoutError when timeout expires before LLM call", async () => {
67
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
68
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
69
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
70
- captureHybridSnapshotMock.mockResolvedValue({
71
- combinedTree: "tree content",
72
- combinedXpathMap: {},
73
- combinedUrlMap: {},
74
- });
75
- const actInferenceMock = vi.mocked(actInference);
76
- // Throw on call #3 (after snapshot but before LLM)
77
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
78
- let calls = 0;
79
- return vi.fn(() => {
80
- calls += 1;
81
- if (calls >= 3) {
82
- throw errorFactory
83
- ? errorFactory(timeoutMs)
84
- : new ActTimeoutError(timeoutMs);
85
- }
86
- });
87
- });
88
- const handler = buildActHandler();
89
- const fakePage = {
90
- mainFrame: vi.fn().mockReturnValue({}),
91
- };
92
- await expect(handler.act({
93
- instruction: "do something",
94
- page: fakePage,
95
- timeout: 5,
96
- })).rejects.toThrow(ActTimeoutError);
97
- // Snapshot should have been called
98
- expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(1);
99
- // LLM inference should NOT have been called
100
- expect(actInferenceMock).not.toHaveBeenCalled();
101
- });
102
- it("throws ActTimeoutError with correct message format", async () => {
103
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
104
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
105
- const timeoutMs = 100;
106
- vi.mocked(createTimeoutGuard).mockImplementation((ms, errorFactory) => {
107
- return vi.fn(() => {
108
- throw errorFactory ? errorFactory(ms) : new ActTimeoutError(ms);
109
- });
110
- });
111
- const handler = buildActHandler();
112
- const fakePage = {
113
- mainFrame: vi.fn().mockReturnValue({}),
114
- };
115
- try {
116
- await handler.act({
117
- instruction: "do something",
118
- page: fakePage,
119
- timeout: timeoutMs,
120
- });
121
- throw new Error("Expected ActTimeoutError to be thrown");
122
- }
123
- catch (error) {
124
- expect(error).toBeInstanceOf(ActTimeoutError);
125
- expect(error.message).toContain("act()");
126
- expect(error.message).toContain(`${timeoutMs}ms`);
127
- expect(error.name).toBe("ActTimeoutError");
128
- }
129
- });
130
- });
131
- describe("ActHandler two-step timeout", () => {
132
- beforeEach(() => {
133
- vi.clearAllMocks();
134
- });
135
- it("throws ActTimeoutError during step 2; step 2 action does not run", async () => {
136
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
137
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
138
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
139
- captureHybridSnapshotMock.mockResolvedValue({
140
- combinedTree: "tree content",
141
- combinedXpathMap: { "1-0": "/html/body/button" },
142
- combinedUrlMap: {},
143
- });
144
- const { performUnderstudyMethod } = await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js");
145
- const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);
146
- performUnderstudyMethodMock.mockResolvedValue(undefined);
147
- const actInferenceMock = vi.mocked(actInference);
148
- // First call returns a two-step action
149
- actInferenceMock.mockResolvedValueOnce({
150
- element: {
151
- elementId: "1-0",
152
- description: "click button",
153
- method: "click",
154
- arguments: [],
155
- },
156
- twoStep: true,
157
- prompt_tokens: 100,
158
- completion_tokens: 50,
159
- inference_time_ms: 500,
160
- });
161
- const diffCombinedTreesMock = vi.mocked((await import("../../lib/v3/understudy/a11y/snapshot/index.js"))
162
- .diffCombinedTrees);
163
- diffCombinedTreesMock.mockReturnValue("diff tree");
164
- // Timeout fires after step 1 completes, during step 2 snapshot
165
- // ensureTimeRemaining calls: 1=before wait, 2=after wait/before snap1, 3=before LLM1,
166
- // 4=before action1, 5=inside takeDeterministicAction, 6=performUnderstudy,
167
- // 7=before snap2 (this one should throw)
168
- let callCount = 0;
169
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
170
- return vi.fn(() => {
171
- callCount += 1;
172
- if (callCount >= 7) {
173
- throw errorFactory
174
- ? errorFactory(timeoutMs)
175
- : new ActTimeoutError(timeoutMs);
176
- }
177
- });
178
- });
179
- const handler = buildActHandler();
180
- const fakePage = {
181
- mainFrame: vi.fn().mockReturnValue({}),
182
- };
183
- await expect(handler.act({
184
- instruction: "click then type",
185
- page: fakePage,
186
- timeout: 50,
187
- })).rejects.toThrow(ActTimeoutError);
188
- // Step 1 action should have been executed
189
- expect(performUnderstudyMethodMock).toHaveBeenCalledTimes(1);
190
- // Step 2 LLM call should NOT have happened
191
- expect(actInferenceMock).toHaveBeenCalledTimes(1);
192
- });
193
- });
194
- describe("ActHandler self-heal timeout", () => {
195
- beforeEach(() => {
196
- vi.clearAllMocks();
197
- });
198
- it("throws ActTimeoutError during self-heal snapshot; no retry action executes", async () => {
199
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
200
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
201
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
202
- captureHybridSnapshotMock.mockResolvedValue({
203
- combinedTree: "tree content",
204
- combinedXpathMap: { "1-0": "/html/body/button" },
205
- combinedUrlMap: {},
206
- });
207
- const { performUnderstudyMethod } = await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js");
208
- const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);
209
- // First call fails, triggering self-heal
210
- performUnderstudyMethodMock.mockRejectedValueOnce(new Error("Element not found"));
211
- const actInferenceMock = vi.mocked(actInference);
212
- actInferenceMock.mockResolvedValue({
213
- element: {
214
- elementId: "1-0",
215
- description: "click button",
216
- method: "click",
217
- arguments: [],
218
- },
219
- twoStep: false,
220
- prompt_tokens: 100,
221
- completion_tokens: 50,
222
- inference_time_ms: 500,
223
- });
224
- // Timeout during self-heal snapshot (call 7 or later)
225
- let callCount = 0;
226
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
227
- return vi.fn(() => {
228
- callCount += 1;
229
- // Timeout during self-heal snapshot call
230
- if (callCount >= 7) {
231
- throw errorFactory
232
- ? errorFactory(timeoutMs)
233
- : new ActTimeoutError(timeoutMs);
234
- }
235
- });
236
- });
237
- const handler = buildActHandler({ selfHeal: true });
238
- const fakePage = {
239
- mainFrame: vi.fn().mockReturnValue({}),
240
- };
241
- await expect(handler.act({
242
- instruction: "click button",
243
- page: fakePage,
244
- timeout: 50,
245
- })).rejects.toThrow(ActTimeoutError);
246
- // First action attempt should have been tried
247
- expect(performUnderstudyMethodMock).toHaveBeenCalledTimes(1);
248
- // First LLM call should have happened
249
- expect(actInferenceMock).toHaveBeenCalledTimes(1);
250
- // Self-heal snapshot should have been started (call happened)
251
- expect(captureHybridSnapshotMock).toHaveBeenCalled();
252
- });
253
- it("throws ActTimeoutError during self-heal LLM inference; no retry action executes", async () => {
254
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
255
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
256
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
257
- captureHybridSnapshotMock.mockResolvedValue({
258
- combinedTree: "tree content",
259
- combinedXpathMap: { "1-0": "/html/body/button" },
260
- combinedUrlMap: {},
261
- });
262
- const { performUnderstudyMethod } = await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js");
263
- const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);
264
- // First call fails, triggering self-heal
265
- performUnderstudyMethodMock.mockRejectedValueOnce(new Error("Element not found"));
266
- const actInferenceMock = vi.mocked(actInference);
267
- actInferenceMock.mockResolvedValueOnce({
268
- element: {
269
- elementId: "1-0",
270
- description: "click button",
271
- method: "click",
272
- arguments: [],
273
- },
274
- twoStep: false,
275
- prompt_tokens: 100,
276
- completion_tokens: 50,
277
- inference_time_ms: 500,
278
- });
279
- // Timeout during self-heal LLM inference (call 8)
280
- let callCount = 0;
281
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
282
- return vi.fn(() => {
283
- callCount += 1;
284
- // Timeout during self-heal LLM call
285
- if (callCount >= 8) {
286
- throw errorFactory
287
- ? errorFactory(timeoutMs)
288
- : new ActTimeoutError(timeoutMs);
289
- }
290
- });
291
- });
292
- const handler = buildActHandler({ selfHeal: true });
293
- const fakePage = {
294
- mainFrame: vi.fn().mockReturnValue({}),
295
- };
296
- await expect(handler.act({
297
- instruction: "click button",
298
- page: fakePage,
299
- timeout: 50,
300
- })).rejects.toThrow(ActTimeoutError);
301
- // Self-heal snapshot was captured
302
- expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(2);
303
- // Only one LLM inference (the retry inference was aborted by timeout)
304
- expect(actInferenceMock).toHaveBeenCalledTimes(1);
305
- });
306
- });
307
- describe("ExtractHandler timeout guard", () => {
308
- beforeEach(() => {
309
- vi.clearAllMocks();
310
- });
311
- it("throws ExtractTimeoutError when timeout expires before snapshot", async () => {
312
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
313
- captureHybridSnapshotMock.mockResolvedValue({
314
- combinedTree: "tree content",
315
- combinedXpathMap: {},
316
- combinedUrlMap: {},
317
- });
318
- const extractInferenceMock = vi.mocked(extractInference);
319
- // Throw immediately on first call
320
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
321
- return vi.fn(() => {
322
- throw errorFactory
323
- ? errorFactory(timeoutMs)
324
- : new ExtractTimeoutError(timeoutMs);
325
- });
326
- });
327
- const handler = buildExtractHandler();
328
- const fakePage = {
329
- mainFrame: vi.fn().mockReturnValue({}),
330
- };
331
- await expect(handler.extract({
332
- instruction: "extract title",
333
- page: fakePage,
334
- timeout: 5,
335
- })).rejects.toThrow(ExtractTimeoutError);
336
- // Snapshot should NOT have been called
337
- expect(captureHybridSnapshotMock).not.toHaveBeenCalled();
338
- // LLM inference should NOT have been called
339
- expect(extractInferenceMock).not.toHaveBeenCalled();
340
- });
341
- it("throws ExtractTimeoutError when timeout expires before LLM call", async () => {
342
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
343
- captureHybridSnapshotMock.mockResolvedValue({
344
- combinedTree: "tree content",
345
- combinedXpathMap: {},
346
- combinedUrlMap: {},
347
- });
348
- const extractInferenceMock = vi.mocked(extractInference);
349
- // Throw on call #2 (after snapshot but before LLM)
350
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
351
- let calls = 0;
352
- return vi.fn(() => {
353
- calls += 1;
354
- if (calls >= 2) {
355
- throw errorFactory
356
- ? errorFactory(timeoutMs)
357
- : new ExtractTimeoutError(timeoutMs);
358
- }
359
- });
360
- });
361
- const handler = buildExtractHandler();
362
- const fakePage = {
363
- mainFrame: vi.fn().mockReturnValue({}),
364
- };
365
- await expect(handler.extract({
366
- instruction: "extract title",
367
- page: fakePage,
368
- timeout: 5,
369
- })).rejects.toThrow(ExtractTimeoutError);
370
- // Snapshot should have been called
371
- expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(1);
372
- // LLM inference should NOT have been called
373
- expect(extractInferenceMock).not.toHaveBeenCalled();
374
- });
375
- it("throws ExtractTimeoutError with correct message format", async () => {
376
- const timeoutMs = 200;
377
- vi.mocked(createTimeoutGuard).mockImplementation((ms, errorFactory) => {
378
- return vi.fn(() => {
379
- throw errorFactory ? errorFactory(ms) : new ExtractTimeoutError(ms);
380
- });
381
- });
382
- const handler = buildExtractHandler();
383
- const fakePage = {
384
- mainFrame: vi.fn().mockReturnValue({}),
385
- };
386
- try {
387
- await handler.extract({
388
- instruction: "extract title",
389
- page: fakePage,
390
- timeout: timeoutMs,
391
- });
392
- throw new Error("Expected ExtractTimeoutError to be thrown");
393
- }
394
- catch (error) {
395
- expect(error).toBeInstanceOf(ExtractTimeoutError);
396
- expect(error.message).toContain("extract()");
397
- expect(error.message).toContain(`${timeoutMs}ms`);
398
- expect(error.name).toBe("ExtractTimeoutError");
399
- }
400
- });
401
- it("stops LLM and post-processing when timeout expires", async () => {
402
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
403
- captureHybridSnapshotMock.mockResolvedValue({
404
- combinedTree: "tree content",
405
- combinedXpathMap: {},
406
- combinedUrlMap: { "1-0": "https://example.com" },
407
- });
408
- const extractInferenceMock = vi.mocked(extractInference);
409
- // Allow snapshot but timeout before LLM
410
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
411
- let calls = 0;
412
- return vi.fn(() => {
413
- calls += 1;
414
- if (calls >= 2) {
415
- throw errorFactory
416
- ? errorFactory(timeoutMs)
417
- : new ExtractTimeoutError(timeoutMs);
418
- }
419
- });
420
- });
421
- const handler = buildExtractHandler();
422
- const fakePage = {
423
- mainFrame: vi.fn().mockReturnValue({}),
424
- };
425
- await expect(handler.extract({
426
- instruction: "extract links",
427
- page: fakePage,
428
- timeout: 5,
429
- })).rejects.toThrow(ExtractTimeoutError);
430
- // Post-processing (URL injection) never runs because LLM was never called
431
- expect(extractInferenceMock).not.toHaveBeenCalled();
432
- });
433
- });
434
- describe("ObserveHandler timeout guard", () => {
435
- beforeEach(() => {
436
- vi.clearAllMocks();
437
- });
438
- it("throws ObserveTimeoutError when timeout expires before snapshot", async () => {
439
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
440
- captureHybridSnapshotMock.mockResolvedValue({
441
- combinedTree: "tree content",
442
- combinedXpathMap: {},
443
- combinedUrlMap: {},
444
- });
445
- const observeInferenceMock = vi.mocked(observeInference);
446
- // Throw immediately on first call
447
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
448
- return vi.fn(() => {
449
- throw errorFactory
450
- ? errorFactory(timeoutMs)
451
- : new ObserveTimeoutError(timeoutMs);
452
- });
453
- });
454
- const handler = buildObserveHandler();
455
- const fakePage = {
456
- mainFrame: vi.fn().mockReturnValue({}),
457
- };
458
- await expect(handler.observe({
459
- instruction: "find buttons",
460
- page: fakePage,
461
- timeout: 5,
462
- })).rejects.toThrow(ObserveTimeoutError);
463
- // Snapshot should NOT have been called
464
- expect(captureHybridSnapshotMock).not.toHaveBeenCalled();
465
- // LLM inference should NOT have been called
466
- expect(observeInferenceMock).not.toHaveBeenCalled();
467
- });
468
- it("throws ObserveTimeoutError when timeout expires before LLM call", async () => {
469
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
470
- captureHybridSnapshotMock.mockResolvedValue({
471
- combinedTree: "tree content",
472
- combinedXpathMap: {},
473
- combinedUrlMap: {},
474
- });
475
- const observeInferenceMock = vi.mocked(observeInference);
476
- // Throw on call #2 (after snapshot but before LLM)
477
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
478
- let calls = 0;
479
- return vi.fn(() => {
480
- calls += 1;
481
- if (calls >= 2) {
482
- throw errorFactory
483
- ? errorFactory(timeoutMs)
484
- : new ObserveTimeoutError(timeoutMs);
485
- }
486
- });
487
- });
488
- const handler = buildObserveHandler();
489
- const fakePage = {
490
- mainFrame: vi.fn().mockReturnValue({}),
491
- };
492
- await expect(handler.observe({
493
- instruction: "find buttons",
494
- page: fakePage,
495
- timeout: 5,
496
- })).rejects.toThrow(ObserveTimeoutError);
497
- // Snapshot should have been called
498
- expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(1);
499
- // LLM inference should NOT have been called
500
- expect(observeInferenceMock).not.toHaveBeenCalled();
501
- });
502
- it("throws ObserveTimeoutError with correct message format", async () => {
503
- const timeoutMs = 150;
504
- vi.mocked(createTimeoutGuard).mockImplementation((ms, errorFactory) => {
505
- return vi.fn(() => {
506
- throw errorFactory ? errorFactory(ms) : new ObserveTimeoutError(ms);
507
- });
508
- });
509
- const handler = buildObserveHandler();
510
- const fakePage = {
511
- mainFrame: vi.fn().mockReturnValue({}),
512
- };
513
- try {
514
- await handler.observe({
515
- instruction: "find buttons",
516
- page: fakePage,
517
- timeout: timeoutMs,
518
- });
519
- throw new Error("Expected ObserveTimeoutError to be thrown");
520
- }
521
- catch (error) {
522
- expect(error).toBeInstanceOf(ObserveTimeoutError);
523
- expect(error.message).toContain("observe()");
524
- expect(error.message).toContain(`${timeoutMs}ms`);
525
- expect(error.name).toBe("ObserveTimeoutError");
526
- }
527
- });
528
- it("aborts result processing when timeout expires", async () => {
529
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
530
- captureHybridSnapshotMock.mockResolvedValue({
531
- combinedTree: "tree content",
532
- combinedXpathMap: { "1-0": "/html/body/button" },
533
- combinedUrlMap: {},
534
- });
535
- const observeInferenceMock = vi.mocked(observeInference);
536
- // Timeout before LLM call
537
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs, errorFactory) => {
538
- let calls = 0;
539
- return vi.fn(() => {
540
- calls += 1;
541
- if (calls >= 2) {
542
- throw errorFactory
543
- ? errorFactory(timeoutMs)
544
- : new ObserveTimeoutError(timeoutMs);
545
- }
546
- });
547
- });
548
- const handler = buildObserveHandler();
549
- const fakePage = {
550
- mainFrame: vi.fn().mockReturnValue({}),
551
- };
552
- await expect(handler.observe({
553
- instruction: "find all interactive elements",
554
- page: fakePage,
555
- timeout: 5,
556
- })).rejects.toThrow(ObserveTimeoutError);
557
- // Result mapping/processing never happens
558
- expect(observeInferenceMock).not.toHaveBeenCalled();
559
- });
560
- });
561
- describe("No-timeout success paths", () => {
562
- beforeEach(() => {
563
- vi.clearAllMocks();
564
- });
565
- it("act() completes successfully without timeout and records metrics", async () => {
566
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
567
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
568
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
569
- captureHybridSnapshotMock.mockResolvedValue({
570
- combinedTree: "tree content",
571
- combinedXpathMap: { "1-0": "/html/body/button" },
572
- combinedUrlMap: {},
573
- });
574
- const { performUnderstudyMethod } = await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js");
575
- const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);
576
- performUnderstudyMethodMock.mockResolvedValue(undefined);
577
- const actInferenceMock = vi.mocked(actInference);
578
- actInferenceMock.mockResolvedValue({
579
- element: {
580
- elementId: "1-0",
581
- description: "click button",
582
- method: "click",
583
- arguments: [],
584
- },
585
- twoStep: false,
586
- prompt_tokens: 100,
587
- completion_tokens: 50,
588
- reasoning_tokens: 10,
589
- cached_input_tokens: 5,
590
- inference_time_ms: 500,
591
- });
592
- // No timeout - guard never throws
593
- vi.mocked(createTimeoutGuard).mockImplementation(() => {
594
- return vi.fn(() => {
595
- // No-op - never throws
596
- });
597
- });
598
- const metricsCallback = vi.fn();
599
- const handler = buildActHandler({ onMetrics: metricsCallback });
600
- const fakePage = {
601
- mainFrame: vi.fn().mockReturnValue({}),
602
- };
603
- const result = await handler.act({
604
- instruction: "click button",
605
- page: fakePage,
606
- // No timeout specified
607
- });
608
- expect(result.success).toBe(true);
609
- expect(metricsCallback).toHaveBeenCalledWith(V3FunctionName.ACT, 100, 50, 10, 5, 500);
610
- });
611
- it("extract() completes successfully without timeout and records metrics", async () => {
612
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
613
- captureHybridSnapshotMock.mockResolvedValue({
614
- combinedTree: "tree content",
615
- combinedXpathMap: {},
616
- combinedUrlMap: {},
617
- });
618
- const extractInferenceMock = vi.mocked(extractInference);
619
- extractInferenceMock.mockResolvedValue({
620
- title: "Test Title",
621
- metadata: { completed: true, progress: "100%" },
622
- prompt_tokens: 200,
623
- completion_tokens: 100,
624
- reasoning_tokens: 20,
625
- cached_input_tokens: 10,
626
- inference_time_ms: 800,
627
- });
628
- // No timeout - guard never throws
629
- vi.mocked(createTimeoutGuard).mockImplementation(() => {
630
- return vi.fn(() => {
631
- // No-op - never throws
632
- });
633
- });
634
- const metricsCallback = vi.fn();
635
- const handler = buildExtractHandler({ onMetrics: metricsCallback });
636
- const fakePage = {
637
- mainFrame: vi.fn().mockReturnValue({}),
638
- };
639
- const result = await handler.extract({
640
- instruction: "extract title",
641
- page: fakePage,
642
- // No timeout specified
643
- });
644
- expect(result).toHaveProperty("title", "Test Title");
645
- expect(metricsCallback).toHaveBeenCalledWith(V3FunctionName.EXTRACT, 200, 100, 20, 10, 800);
646
- });
647
- it("observe() completes successfully without timeout and records metrics", async () => {
648
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
649
- captureHybridSnapshotMock.mockResolvedValue({
650
- combinedTree: "tree content",
651
- combinedXpathMap: { "1-0": "/html/body/button" },
652
- combinedUrlMap: {},
653
- });
654
- const observeInferenceMock = vi.mocked(observeInference);
655
- observeInferenceMock.mockResolvedValue({
656
- elements: [
657
- {
658
- elementId: "1-0",
659
- description: "Submit button",
660
- },
661
- ],
662
- prompt_tokens: 150,
663
- completion_tokens: 75,
664
- reasoning_tokens: 15,
665
- cached_input_tokens: 8,
666
- inference_time_ms: 600,
667
- });
668
- // No timeout - guard never throws
669
- vi.mocked(createTimeoutGuard).mockImplementation(() => {
670
- return vi.fn(() => {
671
- // No-op - never throws
672
- });
673
- });
674
- const metricsCallback = vi.fn();
675
- const handler = buildObserveHandler({ onMetrics: metricsCallback });
676
- const fakePage = {
677
- mainFrame: vi.fn().mockReturnValue({}),
678
- };
679
- const result = await handler.observe({
680
- instruction: "find buttons",
681
- page: fakePage,
682
- // No timeout specified
683
- });
684
- expect(result).toHaveLength(1);
685
- expect(result[0]).toHaveProperty("description", "Submit button");
686
- expect(metricsCallback).toHaveBeenCalledWith(V3FunctionName.OBSERVE, 150, 75, 15, 8, 600);
687
- });
688
- it("observe() forwards variables to inference and preserves placeholders", async () => {
689
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
690
- captureHybridSnapshotMock.mockResolvedValue({
691
- combinedTree: "tree content",
692
- combinedXpathMap: { "1-0": "/html/body/input" },
693
- combinedUrlMap: {},
694
- });
695
- const observeInferenceMock = vi.mocked(observeInference);
696
- observeInferenceMock.mockResolvedValue({
697
- elements: [
698
- {
699
- elementId: "1-0",
700
- description: "Email field",
701
- method: "fill",
702
- arguments: ["%username%"],
703
- },
704
- ],
705
- prompt_tokens: 150,
706
- completion_tokens: 75,
707
- reasoning_tokens: 15,
708
- cached_input_tokens: 8,
709
- inference_time_ms: 600,
710
- });
711
- vi.mocked(createTimeoutGuard).mockImplementation(() => {
712
- return vi.fn(() => {
713
- // No-op - never throws
714
- });
715
- });
716
- const handler = buildObserveHandler();
717
- const fakePage = {
718
- mainFrame: vi.fn().mockReturnValue({}),
719
- };
720
- const variables = {
721
- username: {
722
- value: "john@example.com",
723
- description: "The login email",
724
- },
725
- };
726
- const result = await handler.observe({
727
- instruction: "find the field where %username% should be entered",
728
- variables,
729
- page: fakePage,
730
- });
731
- expect(observeInferenceMock).toHaveBeenCalledWith(expect.objectContaining({
732
- variables,
733
- }));
734
- expect(result).toHaveLength(1);
735
- expect(result[0]).toHaveProperty("arguments");
736
- expect(result[0]?.arguments).toEqual(["%username%"]);
737
- });
738
- it("observe() forwards ignoreSelectors to snapshot capture", async () => {
739
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
740
- captureHybridSnapshotMock.mockResolvedValue({
741
- combinedTree: "tree content",
742
- combinedXpathMap: { "1-0": "/html/body/button" },
743
- combinedUrlMap: {},
744
- });
745
- const observeInferenceMock = vi.mocked(observeInference);
746
- observeInferenceMock.mockResolvedValue({
747
- elements: [
748
- {
749
- elementId: "1-0",
750
- description: "Submit button",
751
- },
752
- ],
753
- });
754
- vi.mocked(createTimeoutGuard).mockImplementation(() => {
755
- return vi.fn(() => {
756
- // No-op - never throws
757
- });
758
- });
759
- const handler = buildObserveHandler();
760
- const fakePage = {
761
- mainFrame: vi.fn().mockReturnValue({}),
762
- };
763
- await handler.observe({
764
- instruction: "find buttons",
765
- ignoreSelectors: [".cookie-banner", "#sidebar-ads"],
766
- page: fakePage,
767
- });
768
- expect(captureHybridSnapshotMock).toHaveBeenCalledWith(fakePage, {
769
- experimental: false,
770
- focusSelector: undefined,
771
- ignoreSelectors: [".cookie-banner", "#sidebar-ads"],
772
- });
773
- });
774
- it("act() with zero timeout behaves as no timeout", async () => {
775
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
776
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
777
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
778
- captureHybridSnapshotMock.mockResolvedValue({
779
- combinedTree: "tree content",
780
- combinedXpathMap: { "1-0": "/html/body/button" },
781
- combinedUrlMap: {},
782
- });
783
- const { performUnderstudyMethod } = await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js");
784
- const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);
785
- performUnderstudyMethodMock.mockResolvedValue(undefined);
786
- const actInferenceMock = vi.mocked(actInference);
787
- actInferenceMock.mockResolvedValue({
788
- element: {
789
- elementId: "1-0",
790
- description: "click button",
791
- method: "click",
792
- arguments: [],
793
- },
794
- twoStep: false,
795
- prompt_tokens: 100,
796
- completion_tokens: 50,
797
- inference_time_ms: 500,
798
- });
799
- // When timeout is 0 or negative, createTimeoutGuard returns a no-op
800
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs) => {
801
- if (!timeoutMs || timeoutMs <= 0) {
802
- return vi.fn(() => {
803
- // No-op
804
- });
805
- }
806
- return vi.fn(() => {
807
- throw new ActTimeoutError(timeoutMs);
808
- });
809
- });
810
- const handler = buildActHandler();
811
- const fakePage = {
812
- mainFrame: vi.fn().mockReturnValue({}),
813
- };
814
- const result = await handler.act({
815
- instruction: "click button",
816
- page: fakePage,
817
- timeout: 0, // Zero timeout should be treated as "no timeout"
818
- });
819
- expect(result.success).toBe(true);
820
- });
821
- it("act() with negative timeout behaves as no timeout", async () => {
822
- const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);
823
- waitForDomNetworkQuietMock.mockResolvedValue(undefined);
824
- const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);
825
- captureHybridSnapshotMock.mockResolvedValue({
826
- combinedTree: "tree content",
827
- combinedXpathMap: { "1-0": "/html/body/button" },
828
- combinedUrlMap: {},
829
- });
830
- const { performUnderstudyMethod } = await import("../../lib/v3/handlers/handlerUtils/actHandlerUtils.js");
831
- const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);
832
- performUnderstudyMethodMock.mockResolvedValue(undefined);
833
- const actInferenceMock = vi.mocked(actInference);
834
- actInferenceMock.mockResolvedValue({
835
- element: {
836
- elementId: "1-0",
837
- description: "click button",
838
- method: "click",
839
- arguments: [],
840
- },
841
- twoStep: false,
842
- prompt_tokens: 100,
843
- completion_tokens: 50,
844
- inference_time_ms: 500,
845
- });
846
- vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs) => {
847
- if (!timeoutMs || timeoutMs <= 0) {
848
- return vi.fn(() => {
849
- // No-op
850
- });
851
- }
852
- return vi.fn(() => {
853
- throw new ActTimeoutError(timeoutMs);
854
- });
855
- });
856
- const handler = buildActHandler();
857
- const fakePage = {
858
- mainFrame: vi.fn().mockReturnValue({}),
859
- };
860
- const result = await handler.act({
861
- instruction: "click button",
862
- page: fakePage,
863
- timeout: -100, // Negative timeout should be treated as "no timeout"
864
- });
865
- expect(result.success).toBe(true);
866
- });
867
- });
868
- function buildActHandler(options = {}) {
869
- const defaultClientOptions = {};
870
- const fakeClient = {
871
- type: "openai",
872
- modelName: "gpt-4o",
873
- clientOptions: defaultClientOptions,
874
- };
875
- const resolveLlmClient = vi.fn().mockReturnValue(fakeClient);
876
- return new ActHandler(fakeClient, "gpt-4o", defaultClientOptions, resolveLlmClient, undefined, false, options.selfHeal ?? false, options.onMetrics, undefined);
877
- }
878
- function buildExtractHandler(options = {}) {
879
- const defaultClientOptions = {};
880
- const fakeClient = {
881
- type: "openai",
882
- modelName: "gpt-4o",
883
- clientOptions: defaultClientOptions,
884
- };
885
- const resolveLlmClient = vi.fn().mockReturnValue(fakeClient);
886
- return new ExtractHandler(fakeClient, "gpt-4o", defaultClientOptions, resolveLlmClient, undefined, false, false, options.onMetrics);
887
- }
888
- function buildObserveHandler(options = {}) {
889
- const defaultClientOptions = {};
890
- const fakeClient = {
891
- type: "openai",
892
- modelName: "gpt-4o",
893
- clientOptions: defaultClientOptions,
894
- };
895
- const resolveLlmClient = vi.fn().mockReturnValue(fakeClient);
896
- return new ObserveHandler(fakeClient, "gpt-4o", defaultClientOptions, resolveLlmClient, undefined, false, false, options.onMetrics);
897
- }
898
- //# sourceMappingURL=timeout-handlers.test.js.map