@browserbasehq/orca 3.4.0-preview.0 → 3.5.0-vertex-test

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 (841) hide show
  1. package/dist/cjs/lib/inference.d.ts +2 -1
  2. package/dist/cjs/lib/inference.js +10 -3
  3. package/dist/cjs/lib/inference.js.map +1 -1
  4. package/dist/cjs/lib/prompt.d.ts +2 -2
  5. package/dist/cjs/lib/prompt.js +19 -4
  6. package/dist/cjs/lib/prompt.js.map +1 -1
  7. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
  8. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  9. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +10 -0
  10. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  11. package/dist/cjs/lib/v3/api.d.ts +6 -1
  12. package/dist/cjs/lib/v3/api.js +57 -12
  13. package/dist/cjs/lib/v3/api.js.map +1 -1
  14. package/dist/cjs/lib/v3/handlers/extractHandler.js +19 -2
  15. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -1
  16. package/dist/cjs/lib/v3/handlers/observeHandler.js +2 -1
  17. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -1
  18. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  19. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  20. package/dist/cjs/lib/v3/index.d.ts +1 -0
  21. package/dist/cjs/lib/v3/index.js.map +1 -1
  22. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  23. package/dist/cjs/lib/v3/launch/local.js +47 -7
  24. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  25. package/dist/cjs/lib/v3/llm/LLMProvider.js +0 -5
  26. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -1
  27. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  28. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  29. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -0
  30. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -1
  31. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  32. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  33. package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
  34. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  35. package/dist/cjs/lib/v3/types/public/api.d.ts +287 -0
  36. package/dist/cjs/lib/v3/types/public/api.js +61 -3
  37. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  38. package/dist/cjs/lib/v3/types/public/methods.d.ts +2 -0
  39. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -1
  40. package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
  41. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  42. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  43. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  44. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  45. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  46. package/dist/cjs/lib/v3/v3.d.ts +1 -0
  47. package/dist/cjs/lib/v3/v3.js +21 -47
  48. package/dist/cjs/lib/v3/v3.js.map +1 -1
  49. package/dist/cjs/lib/v3Evaluator.d.ts +20 -12
  50. package/dist/cjs/lib/v3Evaluator.js +41 -199
  51. package/dist/cjs/lib/v3Evaluator.js.map +1 -1
  52. package/dist/cjs/lib/v3LegacyEvaluator.d.ts +20 -0
  53. package/dist/cjs/lib/v3LegacyEvaluator.js +215 -0
  54. package/dist/cjs/lib/v3LegacyEvaluator.js.map +1 -0
  55. package/dist/cjs/lib/version.d.ts +1 -1
  56. package/dist/cjs/lib/version.js +1 -1
  57. package/dist/cjs/lib/version.js.map +1 -1
  58. package/dist/esm/lib/inference.d.ts +2 -1
  59. package/dist/esm/lib/inference.js +10 -3
  60. package/dist/esm/lib/inference.js.map +1 -1
  61. package/dist/esm/lib/prompt.d.ts +2 -2
  62. package/dist/esm/lib/prompt.js +19 -4
  63. package/dist/esm/lib/prompt.js.map +1 -1
  64. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  65. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  66. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  67. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  68. package/dist/esm/lib/v3/api.d.ts +6 -1
  69. package/dist/esm/lib/v3/api.js +57 -12
  70. package/dist/esm/lib/v3/api.js.map +1 -1
  71. package/dist/esm/lib/v3/handlers/extractHandler.js +19 -2
  72. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  73. package/dist/esm/lib/v3/handlers/observeHandler.js +2 -1
  74. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  75. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  76. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  77. package/dist/esm/lib/v3/index.d.ts +1 -0
  78. package/dist/esm/lib/v3/index.js.map +1 -1
  79. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  80. package/dist/esm/lib/v3/launch/local.js +48 -8
  81. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  82. package/dist/esm/lib/v3/llm/LLMProvider.js +1 -6
  83. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  84. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  85. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  86. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -0
  87. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  88. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  89. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  90. package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
  91. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  92. package/dist/esm/lib/v3/types/public/api.d.ts +287 -0
  93. package/dist/esm/lib/v3/types/public/api.js +59 -1
  94. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  95. package/dist/esm/lib/v3/types/public/methods.d.ts +2 -0
  96. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  97. package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
  98. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  99. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  100. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  101. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  102. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  103. package/dist/esm/lib/v3/v3.d.ts +1 -0
  104. package/dist/esm/lib/v3/v3.js +21 -47
  105. package/dist/esm/lib/v3/v3.js.map +1 -1
  106. package/dist/esm/lib/v3Evaluator.d.ts +20 -12
  107. package/dist/esm/lib/v3Evaluator.js +41 -199
  108. package/dist/esm/lib/v3Evaluator.js.map +1 -1
  109. package/dist/esm/lib/v3LegacyEvaluator.d.ts +20 -0
  110. package/dist/esm/lib/v3LegacyEvaluator.js +211 -0
  111. package/dist/esm/lib/v3LegacyEvaluator.js.map +1 -0
  112. package/dist/esm/lib/version.d.ts +1 -1
  113. package/dist/esm/lib/version.js +1 -1
  114. package/dist/esm/lib/version.js.map +1 -1
  115. package/package.json +30 -18
  116. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  117. package/dist/cjs/tests/cache-variables.test.js +0 -221
  118. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  119. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  120. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  121. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  122. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  123. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  124. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  125. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  126. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  127. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  128. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  129. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  130. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  131. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  132. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  133. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  134. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  135. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  136. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  137. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  138. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  139. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  140. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  141. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  142. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  143. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  144. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  145. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  146. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  147. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  148. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  149. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  150. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  151. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  152. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  153. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  154. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  155. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  156. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  157. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  158. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  159. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  160. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  161. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  162. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  163. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  164. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  165. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  166. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  167. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  168. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  169. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  170. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  171. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  172. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  173. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  174. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  175. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  176. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  177. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  178. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  179. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  180. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  181. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  182. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  183. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  184. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  185. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  186. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  187. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  188. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  189. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  190. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  191. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  192. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  193. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  194. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  195. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  196. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  197. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  198. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  199. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  200. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  201. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  202. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  203. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  204. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  205. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  206. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  207. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  208. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  209. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  210. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  211. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  212. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  213. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  214. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  215. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  216. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  217. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  218. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  219. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  220. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  221. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  222. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  223. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  224. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  225. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  226. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  227. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  228. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  229. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  230. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  231. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  232. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  233. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  234. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  235. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  236. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  237. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  238. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  239. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  240. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  241. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  242. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  243. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  244. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  245. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  246. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  247. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  248. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  249. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  250. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  251. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  252. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  253. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  254. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  255. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  256. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  257. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  258. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  259. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  260. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  261. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  262. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  263. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  264. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  265. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  266. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  267. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  268. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  269. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  270. package/dist/cjs/tests/integration/testUtils.js +0 -188
  271. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  272. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  273. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  274. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  275. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  276. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  277. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  278. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  279. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  280. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  281. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  282. package/dist/cjs/tests/integration/v3.config.js +0 -11
  283. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  284. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  285. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  286. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  287. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  288. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  289. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  290. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  291. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  292. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  293. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  294. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  295. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  296. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  297. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  298. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  299. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  300. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  301. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  302. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  303. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  304. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  305. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  306. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  307. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  308. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  309. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  310. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  311. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  312. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  313. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  314. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  315. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  316. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  317. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  318. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  319. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  320. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  321. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  322. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  323. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  324. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  325. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  326. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  327. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -133
  328. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  329. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  330. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  331. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  332. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  333. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  334. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  335. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  336. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -62
  337. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  338. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  339. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  340. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  341. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  342. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  343. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  344. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  345. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  346. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  347. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  348. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  349. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  350. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  351. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  352. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  353. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  354. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  355. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  356. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  357. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  358. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  359. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  360. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  361. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  362. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  363. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  364. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  365. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  366. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  367. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  368. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  369. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  370. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  371. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  372. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  373. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  374. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  375. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  376. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  377. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  378. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  379. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  380. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  381. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  382. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  383. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  384. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  385. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  386. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  387. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  388. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  389. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  390. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  391. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  392. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  393. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  394. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  395. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  396. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  397. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  398. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  399. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  400. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  401. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  402. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  403. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  404. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  405. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  406. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  407. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  408. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  409. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  410. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  411. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  412. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  413. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  414. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  415. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  416. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  417. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  418. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  419. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  420. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  421. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  422. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  423. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  424. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  425. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  426. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  427. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  428. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  429. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  430. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  431. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  432. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  433. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  434. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  435. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  436. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  437. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  438. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  439. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  440. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  441. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  442. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  443. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  444. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  445. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  446. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  447. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  448. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  449. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  450. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  451. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  452. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  453. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  454. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  455. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  456. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  457. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  458. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  459. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  460. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  461. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  462. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  463. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  464. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  465. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -897
  466. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  467. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  468. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  469. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  470. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  471. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  472. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  473. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  474. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  475. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  476. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  477. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  478. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  479. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  480. package/dist/esm/tests/cache-variables.test.js +0 -219
  481. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  482. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  483. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  484. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  485. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  486. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  487. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  488. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  489. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  490. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  491. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  492. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  493. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  494. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  495. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  496. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  497. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  498. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  499. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  500. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  501. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  502. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  503. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  504. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  505. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  506. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  507. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  508. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  509. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  510. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  511. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  512. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  513. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  514. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  515. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  516. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  517. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  518. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  519. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  520. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  521. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  522. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  523. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  524. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  525. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  526. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  527. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  528. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  529. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  530. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  531. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  532. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  533. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  534. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  535. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  536. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  537. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  538. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  539. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  540. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  541. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  542. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  543. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  544. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  545. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  546. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  547. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  548. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  549. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  550. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  551. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  552. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  553. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  554. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  555. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  556. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  557. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  558. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  559. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  560. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  561. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  562. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  563. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  564. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  565. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  566. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  567. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  568. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  569. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  570. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  571. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  572. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  573. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  574. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  575. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  576. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  577. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  578. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  579. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  580. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  581. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  582. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  583. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  584. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  585. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  586. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  587. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  588. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  589. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  590. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  591. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  592. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  593. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  594. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  595. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  596. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  597. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  598. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  599. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  600. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  601. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  602. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  603. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  604. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  605. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  606. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  607. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  608. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  609. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  610. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  611. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  612. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  613. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  614. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  615. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  616. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  617. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  618. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  619. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  620. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  621. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  622. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  623. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  624. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  625. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  626. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  627. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  628. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  629. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  630. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  631. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  632. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  633. package/dist/esm/tests/integration/testUtils.js +0 -178
  634. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  635. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  636. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  637. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  638. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  639. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  640. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  641. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  642. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  643. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  644. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  645. package/dist/esm/tests/integration/v3.config.js +0 -7
  646. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  647. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  648. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  649. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  650. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  651. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  652. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  653. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  654. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  655. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  656. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  657. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  658. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  659. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  660. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  661. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  662. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  663. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  664. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  665. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  666. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  667. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  668. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  669. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  670. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  671. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  672. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  673. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  674. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  675. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  676. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  677. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  678. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  679. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  680. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  681. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  682. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  683. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  684. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  685. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  686. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  687. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  688. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  689. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  690. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -131
  691. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  692. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  693. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  694. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  695. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  696. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  697. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  698. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  699. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -60
  700. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  701. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  702. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  703. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  704. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  705. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  706. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  707. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  708. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  709. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  710. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  711. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  712. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  713. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  714. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  715. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  716. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  717. package/dist/esm/tests/unit/cookies.test.js +0 -909
  718. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  719. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  720. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  721. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  722. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  723. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  724. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  725. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  726. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  727. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  728. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  729. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  730. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  731. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  732. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  733. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  734. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  735. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  736. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  737. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  738. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  739. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  740. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  741. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  742. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  743. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  744. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  745. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  746. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  747. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  748. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  749. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  750. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  751. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  752. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  753. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  754. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  755. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  756. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  757. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  758. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  759. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  760. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  761. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  762. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  763. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  764. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  765. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  766. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  767. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  768. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  769. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  770. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  771. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  772. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  773. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  774. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  775. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  776. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  777. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  778. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  779. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  780. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  781. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  782. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  783. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  784. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  785. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  786. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  787. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  788. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  789. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  790. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  791. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  792. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  793. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  794. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  795. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  796. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  797. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  798. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  799. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  800. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  801. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  802. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  803. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  804. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  805. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  806. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  807. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  808. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  809. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  810. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  811. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  812. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  813. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  814. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  815. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  816. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  817. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  818. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  819. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  820. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  821. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  822. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  823. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  824. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  825. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  826. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  827. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  828. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -862
  829. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  830. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  831. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  832. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  833. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  834. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  835. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  836. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  837. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  838. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  839. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  840. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  841. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger-initialization.spec.js","sourceRoot":"","sources":["../../../../tests/integration/logger-initialization.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport {\n bindInstanceLogger,\n unbindInstanceLogger,\n withInstanceLogContext,\n v3Logger,\n} from \"../../lib/v3/logger.js\";\nimport type { LogLine } from \"../../lib/v3/types/public/logs.js\";\n\ntest.describe(\"V3 Logger Instance Routing\", () => {\n test.afterEach(() => {\n // Clean up is handled by unbindInstanceLogger calls in tests\n });\n\n test(\"bindInstanceLogger routes logs to correct instance\", () => {\n const instanceId = \"test-instance-001\";\n const capturedLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => {\n capturedLogs.push(line);\n });\n\n try {\n // Log within context\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Test message for instance\",\n level: 1,\n });\n });\n\n // Should have captured the log\n expect(capturedLogs.length).toBe(1);\n expect(capturedLogs[0].message).toBe(\"Test message for instance\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"unbindInstanceLogger stops routing\", () => {\n const instanceId = \"test-instance-002\";\n const capturedLogs: LogLine[] = [];\n const consoleOutput: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n consoleOutput.push(msg);\n };\n\n bindInstanceLogger(instanceId, (line) => {\n capturedLogs.push(line);\n });\n\n // Unbind immediately\n unbindInstanceLogger(instanceId);\n\n // Log - should fall back to console\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"After unbind\",\n level: 1,\n });\n });\n\n // Should not have captured via instance logger\n expect(capturedLogs.length).toBe(0);\n // But should have logged to console\n expect(consoleOutput.length).toBeGreaterThan(0);\n } finally {\n console.log = originalConsoleLog;\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"multiple instances have isolated log routing\", () => {\n const instance1Id = \"test-instance-1\";\n const instance2Id = \"test-instance-2\";\n const instance1Logs: LogLine[] = [];\n const instance2Logs: LogLine[] = [];\n\n bindInstanceLogger(instance1Id, (line) => instance1Logs.push(line));\n bindInstanceLogger(instance2Id, (line) => instance2Logs.push(line));\n\n try {\n // Log from instance 1\n withInstanceLogContext(instance1Id, () => {\n v3Logger({\n category: \"test\",\n message: \"From instance 1\",\n level: 1,\n });\n });\n\n // Log from instance 2\n withInstanceLogContext(instance2Id, () => {\n v3Logger({\n category: \"test\",\n message: \"From instance 2\",\n level: 1,\n });\n });\n\n // Each instance should have only its own log\n expect(instance1Logs.length).toBe(1);\n expect(instance2Logs.length).toBe(1);\n expect(instance1Logs[0].message).toBe(\"From instance 1\");\n expect(instance2Logs[0].message).toBe(\"From instance 2\");\n } finally {\n unbindInstanceLogger(instance1Id);\n unbindInstanceLogger(instance2Id);\n }\n });\n\n test(\"v3Logger falls back to console when no instance context\", () => {\n const capturedLogs: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n capturedLogs.push(msg);\n };\n\n // Log without any instance context\n v3Logger({\n category: \"test\",\n message: \"Console fallback log\",\n level: 1,\n });\n\n // Should have used console logger\n expect(capturedLogs.length).toBeGreaterThan(0);\n const logOutput = capturedLogs.join(\"\\n\");\n expect(logOutput).toContain(\"Console fallback log\");\n } finally {\n console.log = originalConsoleLog;\n }\n });\n\n test(\"v3Logger falls back to console when instance logger throws\", () => {\n const instanceId = \"failing-instance\";\n const capturedConsoleLogs: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n capturedConsoleLogs.push(msg);\n };\n\n // Bind a logger that throws\n bindInstanceLogger(instanceId, () => {\n throw new Error(\"Instance logger failed\");\n });\n\n // Should fall back to console without throwing\n withInstanceLogContext(instanceId, () => {\n expect(() => {\n v3Logger({\n category: \"test\",\n message: \"Test with failing instance logger\",\n level: 1,\n });\n }).not.toThrow();\n });\n\n // Console should have received the log as fallback\n expect(capturedConsoleLogs.length).toBeGreaterThan(0);\n const logOutput = capturedConsoleLogs.join(\"\\n\");\n expect(logOutput).toContain(\"Test with failing instance logger\");\n } finally {\n console.log = originalConsoleLog;\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"withInstanceLogContext nests properly\", () => {\n const outerInstanceId = \"outer-instance\";\n const innerInstanceId = \"inner-instance\";\n const outerLogs: LogLine[] = [];\n const innerLogs: LogLine[] = [];\n\n bindInstanceLogger(outerInstanceId, (line) => outerLogs.push(line));\n bindInstanceLogger(innerInstanceId, (line) => innerLogs.push(line));\n\n try {\n withInstanceLogContext(outerInstanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Outer context\",\n level: 1,\n });\n\n withInstanceLogContext(innerInstanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Inner context\",\n level: 1,\n });\n });\n\n v3Logger({\n category: \"test\",\n message: \"Back to outer context\",\n level: 1,\n });\n });\n\n // Outer instance should have 2 logs\n expect(outerLogs.length).toBe(2);\n expect(outerLogs[0].message).toBe(\"Outer context\");\n expect(outerLogs[1].message).toBe(\"Back to outer context\");\n\n // Inner instance should have 1 log\n expect(innerLogs.length).toBe(1);\n expect(innerLogs[0].message).toBe(\"Inner context\");\n } finally {\n unbindInstanceLogger(outerInstanceId);\n unbindInstanceLogger(innerInstanceId);\n }\n });\n\n test(\"withInstanceLogContext returns function result\", () => {\n const instanceId = \"return-test-instance\";\n bindInstanceLogger(instanceId, () => {});\n\n try {\n const result = withInstanceLogContext(instanceId, () => {\n return { success: true, value: 42 };\n });\n\n expect(result).toEqual({ success: true, value: 42 });\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"withInstanceLogContext works with async functions\", async () => {\n const instanceId = \"async-test-instance\";\n const capturedLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => capturedLogs.push(line));\n\n try {\n const asyncResult = await withInstanceLogContext(instanceId, async () => {\n v3Logger({\n category: \"test\",\n message: \"Log from async context\",\n level: 1,\n });\n\n await new Promise((resolve) => setTimeout(resolve, 10));\n\n v3Logger({\n category: \"test\",\n message: \"Log after await\",\n level: 1,\n });\n\n return \"async result\";\n });\n\n expect(asyncResult).toBe(\"async result\");\n expect(capturedLogs.length).toBe(2);\n expect(capturedLogs[0].message).toBe(\"Log from async context\");\n expect(capturedLogs[1].message).toBe(\"Log after await\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"console fallback formats different log levels correctly\", () => {\n const consoleOutput: { level: string; msg: string }[] = [];\n const originalConsoleLog = console.log;\n const originalConsoleError = console.error;\n const originalConsoleDebug = console.debug;\n\n try {\n console.log = (msg: string) => {\n consoleOutput.push({ level: \"log\", msg });\n };\n console.error = (msg: string) => {\n consoleOutput.push({ level: \"error\", msg });\n };\n console.debug = (msg: string) => {\n consoleOutput.push({ level: \"debug\", msg });\n };\n\n // Test error level (0)\n v3Logger({\n category: \"test\",\n message: \"Error message\",\n level: 0,\n });\n\n // Test info level (1)\n v3Logger({\n category: \"test\",\n message: \"Info message\",\n level: 1,\n });\n\n // Test debug level (2)\n v3Logger({\n category: \"test\",\n message: \"Debug message\",\n level: 2,\n });\n\n expect(consoleOutput.length).toBe(3);\n expect(consoleOutput[0].level).toBe(\"error\");\n expect(consoleOutput[0].msg).toContain(\"ERROR\");\n expect(consoleOutput[0].msg).toContain(\"Error message\");\n\n expect(consoleOutput[1].level).toBe(\"log\");\n expect(consoleOutput[1].msg).toContain(\"INFO\");\n expect(consoleOutput[1].msg).toContain(\"Info message\");\n\n expect(consoleOutput[2].level).toBe(\"debug\");\n expect(consoleOutput[2].msg).toContain(\"DEBUG\");\n expect(consoleOutput[2].msg).toContain(\"Debug message\");\n } finally {\n console.log = originalConsoleLog;\n console.error = originalConsoleError;\n console.debug = originalConsoleDebug;\n }\n });\n\n test(\"console fallback formats auxiliary data\", () => {\n const consoleOutput: string[] = [];\n const originalConsoleLog = console.log;\n\n try {\n console.log = (msg: string) => {\n consoleOutput.push(msg);\n };\n\n v3Logger({\n category: \"test\",\n message: \"Message with auxiliary\",\n level: 1,\n auxiliary: {\n stringValue: { value: \"test\", type: \"string\" },\n integerValue: { value: \"42\", type: \"integer\" },\n objectValue: {\n value: JSON.stringify({ nested: \"data\" }),\n type: \"object\",\n },\n },\n });\n\n expect(consoleOutput.length).toBe(1);\n const output = consoleOutput[0];\n expect(output).toContain(\"Message with auxiliary\");\n expect(output).toContain(\"stringValue\");\n expect(output).toContain(\"integerValue\");\n expect(output).toContain(\"objectValue\");\n } finally {\n console.log = originalConsoleLog;\n }\n });\n\n test(\"concurrent instances don't interfere\", () => {\n const instances = Array.from({ length: 10 }, (_, i) => `instance-${i}`);\n const logsByInstance = new Map<string, LogLine[]>();\n\n // Bind all instances\n instances.forEach((id) => {\n const logs: LogLine[] = [];\n logsByInstance.set(id, logs);\n bindInstanceLogger(id, (line) => logs.push(line));\n });\n\n try {\n // Log from each instance\n instances.forEach((id, index) => {\n withInstanceLogContext(id, () => {\n v3Logger({\n category: \"test\",\n message: `Message from ${id}`,\n level: 1,\n auxiliary: {\n index: { value: String(index), type: \"integer\" },\n },\n });\n });\n });\n\n // Verify each instance received only its own log\n instances.forEach((id) => {\n const logs = logsByInstance.get(id)!;\n expect(logs.length).toBe(1);\n expect(logs[0].message).toBe(`Message from ${id}`);\n });\n } finally {\n instances.forEach((id) => unbindInstanceLogger(id));\n }\n });\n});\n\ntest.describe(\"V3 Logger with External Logger (Production Pattern)\", () => {\n test.afterEach(() => {\n // Clean up instance loggers\n });\n\n test(\"external logger receives all logs from v3Logger\", () => {\n const instanceId = \"v3-instance-with-external\";\n const externalLogs: LogLine[] = [];\n\n // Simulate V3 constructor behavior with external logger\n const externalLogger = (line: LogLine) => {\n externalLogs.push(line);\n };\n\n bindInstanceLogger(instanceId, externalLogger);\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"a11y/snapshot\",\n message: \"Capturing hybrid snapshot\",\n level: 0,\n });\n\n v3Logger({\n category: \"handlers/act\",\n message: \"Executing action\",\n level: 1,\n auxiliary: {\n action: { value: \"click\", type: \"string\" },\n },\n });\n\n v3Logger({\n category: \"debug\",\n message: \"Debug details\",\n level: 2,\n });\n });\n\n // All logs should be captured by external logger\n expect(externalLogs.length).toBe(3);\n expect(externalLogs[0].message).toBe(\"Capturing hybrid snapshot\");\n expect(externalLogs[1].message).toBe(\"Executing action\");\n expect(externalLogs[2].message).toBe(\"Debug details\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"StagehandLogger wrapper forwards to external logger\", () => {\n const instanceId = \"v3-with-stagehand-wrapper\";\n const externalLogs: LogLine[] = [];\n\n // Simulate V3's stagehandLogger.log() wrapping pattern\n const mockStagehandLogger = {\n log: (line: LogLine) => {\n // This simulates StagehandLogger.log() which internally calls externalLogger\n externalLogs.push(line);\n },\n };\n\n bindInstanceLogger(instanceId, (line) => mockStagehandLogger.log(line));\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Log through StagehandLogger wrapper\",\n level: 1,\n });\n });\n\n expect(externalLogs.length).toBe(1);\n expect(externalLogs[0].message).toBe(\n \"Log through StagehandLogger wrapper\",\n );\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"multiple V3 instances with different external loggers\", () => {\n const instance1Id = \"v3-instance-1\";\n const instance2Id = \"v3-instance-2\";\n const external1Logs: LogLine[] = [];\n const external2Logs: LogLine[] = [];\n\n // Simulate two V3 instances with different external loggers\n bindInstanceLogger(instance1Id, (line) => external1Logs.push(line));\n bindInstanceLogger(instance2Id, (line) => external2Logs.push(line));\n\n try {\n // Instance 1 logs\n withInstanceLogContext(instance1Id, () => {\n v3Logger({\n category: \"instance1\",\n message: \"Instance 1 activity\",\n level: 1,\n });\n });\n\n // Instance 2 logs\n withInstanceLogContext(instance2Id, () => {\n v3Logger({\n category: \"instance2\",\n message: \"Instance 2 activity\",\n level: 1,\n });\n });\n\n // Each external logger should only have its instance's logs\n expect(external1Logs.length).toBe(1);\n expect(external2Logs.length).toBe(1);\n expect(external1Logs[0].message).toBe(\"Instance 1 activity\");\n expect(external2Logs[0].message).toBe(\"Instance 2 activity\");\n } finally {\n unbindInstanceLogger(instance1Id);\n unbindInstanceLogger(instance2Id);\n }\n });\n\n test(\"external logger receives logs with auxiliary data preserved\", () => {\n const instanceId = \"v3-with-auxiliary\";\n const externalLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => externalLogs.push(line));\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"extract\",\n message: \"Extracting data\",\n level: 1,\n auxiliary: {\n selector: { value: \"xpath=/html/body\", type: \"string\" },\n timeout: { value: \"5000\", type: \"integer\" },\n retries: { value: \"3\", type: \"integer\" },\n metadata: {\n value: JSON.stringify({ key: \"value\" }),\n type: \"object\",\n },\n },\n });\n });\n\n expect(externalLogs.length).toBe(1);\n const log = externalLogs[0];\n expect(log.auxiliary).toBeDefined();\n expect(log.auxiliary?.selector?.value).toBe(\"xpath=/html/body\");\n expect(log.auxiliary?.timeout?.value).toBe(\"5000\");\n expect(log.auxiliary?.retries?.value).toBe(\"3\");\n expect(log.auxiliary?.metadata?.type).toBe(\"object\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"external logger handles rapid concurrent logs\", () => {\n const instanceId = \"v3-rapid-logs\";\n const externalLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => externalLogs.push(line));\n\n try {\n withInstanceLogContext(instanceId, () => {\n // Simulate rapid logging like during snapshot capture\n for (let i = 0; i < 50; i++) {\n v3Logger({\n category: \"perf\",\n message: `Operation ${i}`,\n level: 2,\n auxiliary: {\n iteration: { value: String(i), type: \"integer\" },\n },\n });\n }\n });\n\n // All logs should be captured\n expect(externalLogs.length).toBe(50);\n expect(externalLogs[0].message).toBe(\"Operation 0\");\n expect(externalLogs[49].message).toBe(\"Operation 49\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"external logger can filter by log level\", () => {\n const instanceId = \"v3-with-filtering\";\n const errorLogs: LogLine[] = [];\n\n // External logger that only captures errors\n const filteringLogger = (line: LogLine) => {\n if (line.level === 0) {\n errorLogs.push(line);\n }\n };\n\n bindInstanceLogger(instanceId, filteringLogger);\n\n try {\n withInstanceLogContext(instanceId, () => {\n v3Logger({\n category: \"test\",\n message: \"Info message\",\n level: 1,\n });\n\n v3Logger({\n category: \"test\",\n message: \"Error message\",\n level: 0,\n });\n\n v3Logger({\n category: \"test\",\n message: \"Debug message\",\n level: 2,\n });\n\n v3Logger({\n category: \"test\",\n message: \"Another error\",\n level: 0,\n });\n });\n\n // Only error logs should be captured\n expect(errorLogs.length).toBe(2);\n expect(errorLogs[0].message).toBe(\"Error message\");\n expect(errorLogs[1].message).toBe(\"Another error\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n\n test(\"external logger persists across async operations\", async () => {\n const instanceId = \"v3-async-ops\";\n const externalLogs: LogLine[] = [];\n\n bindInstanceLogger(instanceId, (line) => externalLogs.push(line));\n\n try {\n await withInstanceLogContext(instanceId, async () => {\n v3Logger({\n category: \"async\",\n message: \"Before async operation\",\n level: 1,\n });\n\n await new Promise((resolve) => setTimeout(resolve, 50));\n\n v3Logger({\n category: \"async\",\n message: \"After async operation\",\n level: 1,\n });\n\n await Promise.all([\n Promise.resolve().then(() =>\n v3Logger({\n category: \"async\",\n message: \"Parallel operation 1\",\n level: 1,\n }),\n ),\n Promise.resolve().then(() =>\n v3Logger({\n category: \"async\",\n message: \"Parallel operation 2\",\n level: 1,\n }),\n ),\n ]);\n });\n\n // All logs should be captured despite async boundaries\n expect(externalLogs.length).toBe(4);\n expect(externalLogs[0].message).toBe(\"Before async operation\");\n expect(externalLogs[1].message).toBe(\"After async operation\");\n } finally {\n unbindInstanceLogger(instanceId);\n }\n });\n});\n"]}
@@ -1,291 +0,0 @@
1
- import { test, expect } from "@playwright/test";
2
- import { V3 } from "../../lib/v3/v3.js";
3
- import { getV3DynamicTestConfig } from "./v3.dynamic.config.js";
4
- import { closeV3 } from "./testUtils.js";
5
- test.describe("V3 Multi-Instance Logger Isolation", () => {
6
- // Run tests serially to avoid resource exhaustion from creating many Chrome instances
7
- test.describe.configure({ mode: "serial" });
8
- // Increase timeout for stress tests that create/destroy multiple instances
9
- test.setTimeout(120_000);
10
- test("multiple V3 instances can be created concurrently without logger conflicts", async () => {
11
- const instanceCount = 5;
12
- const instances = [];
13
- const instanceLogs = new Map();
14
- try {
15
- // Create multiple instances with individual loggers
16
- const creationPromises = Array.from({ length: instanceCount }, (_, i) => {
17
- const logs = [];
18
- instanceLogs.set(i, logs);
19
- const config = getV3DynamicTestConfig({
20
- verbose: 2,
21
- disablePino: true,
22
- logger: (line) => {
23
- logs.push({
24
- ...line,
25
- auxiliary: {
26
- ...line.auxiliary,
27
- index: { value: String(i), type: "integer" },
28
- },
29
- });
30
- },
31
- });
32
- const v3 = new V3(config);
33
- instances.push(v3);
34
- return v3.init();
35
- });
36
- // All instances should initialize successfully
37
- await Promise.all(creationPromises);
38
- // Each instance should be initialized
39
- expect(instances.length).toBe(instanceCount);
40
- for (const instance of instances) {
41
- expect(instance.context).toBeDefined();
42
- }
43
- // Perform operations that generate logs
44
- await Promise.all(instances.map(async (instance) => {
45
- const page = await instance.context.awaitActivePage();
46
- await page.goto("about:blank");
47
- }));
48
- // Each instance should have logged to its own logger
49
- for (let i = 0; i < instanceCount; i++) {
50
- const logs = instanceLogs.get(i);
51
- // Each instance should have some logs
52
- expect(logs.length).toBeGreaterThan(0);
53
- // Logs should not contain data from other instances
54
- // (though this is harder to verify without more specific markers)
55
- const hasOwnLogs = logs.some((log) => log.auxiliary?.index?.value === String(i) ||
56
- log.category === "init");
57
- expect(hasOwnLogs).toBe(true);
58
- }
59
- }
60
- finally {
61
- // Clean up all instances
62
- await Promise.all(instances.map((instance) => closeV3(instance)));
63
- }
64
- });
65
- test("V3 instances with external loggers don't leak logs to each other", async () => {
66
- const instance1Logs = [];
67
- const instance2Logs = [];
68
- const v3Instance1 = new V3(getV3DynamicTestConfig({
69
- verbose: 2,
70
- disablePino: true,
71
- logger: (line) => instance1Logs.push(line),
72
- }));
73
- const v3Instance2 = new V3(getV3DynamicTestConfig({
74
- verbose: 2,
75
- disablePino: true,
76
- logger: (line) => instance2Logs.push(line),
77
- }));
78
- try {
79
- // Initialize both instances
80
- await Promise.all([v3Instance1.init(), v3Instance2.init()]);
81
- // Perform operations on each instance
82
- const page1 = await v3Instance1.context.awaitActivePage();
83
- await page1.goto("about:blank");
84
- const page2 = await v3Instance2.context.awaitActivePage();
85
- await page2.goto("data:text/html,<h1>Instance 2</h1>");
86
- // Both instances should have logs
87
- expect(instance1Logs.length).toBeGreaterThan(0);
88
- expect(instance2Logs.length).toBeGreaterThan(0);
89
- // Logs should be distinct (no exact duplicates)
90
- // This is a weak check, but verifies basic isolation
91
- const instance1Messages = new Set(instance1Logs.map((l) => l.message));
92
- const instance2Messages = new Set(instance2Logs.map((l) => l.message));
93
- // At least some messages should be unique to each instance
94
- // (This might not always be true for very generic messages like "init",
95
- // but serves as a smoke test)
96
- const allMessages = new Set([...instance1Messages, ...instance2Messages]);
97
- expect(allMessages.size).toBeGreaterThanOrEqual(Math.max(instance1Messages.size, instance2Messages.size));
98
- }
99
- finally {
100
- await Promise.all([closeV3(v3Instance1), closeV3(v3Instance2)]);
101
- }
102
- });
103
- test("V3 instances without external loggers use shared global logger", async () => {
104
- // Create instances without external loggers
105
- const v3Instance1 = new V3(getV3DynamicTestConfig({
106
- verbose: 1,
107
- disablePino: true,
108
- }));
109
- const v3Instance2 = new V3(getV3DynamicTestConfig({
110
- verbose: 1,
111
- disablePino: true,
112
- }));
113
- try {
114
- // Initialize both instances concurrently
115
- await Promise.all([v3Instance1.init(), v3Instance2.init()]);
116
- // Both should work fine
117
- expect(v3Instance1.context).toBeDefined();
118
- expect(v3Instance2.context).toBeDefined();
119
- // Perform basic operations to ensure logging doesn't cause issues
120
- const page1 = await v3Instance1.context.awaitActivePage();
121
- const page2 = await v3Instance2.context.awaitActivePage();
122
- await Promise.all([page1.goto("about:blank"), page2.goto("about:blank")]);
123
- // Both should still be operational
124
- expect(page1.url()).toContain("about:blank");
125
- expect(page2.url()).toContain("about:blank");
126
- }
127
- finally {
128
- await Promise.all([closeV3(v3Instance1), closeV3(v3Instance2)]);
129
- }
130
- });
131
- test("rapidly creating and destroying instances doesn't cause logger issues", async () => {
132
- const iterations = 5;
133
- const results = [];
134
- for (let i = 0; i < iterations; i++) {
135
- const logs = [];
136
- const v3 = new V3(getV3DynamicTestConfig({
137
- verbose: 1, // Capture INFO logs for verification
138
- disablePino: true,
139
- logger: (line) => logs.push(line),
140
- }));
141
- try {
142
- await v3.init();
143
- const page = await v3.context.awaitActivePage();
144
- await page.goto("about:blank");
145
- results.push(true);
146
- // Verify some logs were captured
147
- expect(logs.length).toBeGreaterThan(0);
148
- }
149
- finally {
150
- await closeV3(v3);
151
- }
152
- }
153
- // All iterations should succeed
154
- expect(results.length).toBe(iterations);
155
- expect(results.every((r) => r === true)).toBe(true);
156
- });
157
- test("concurrent instance creation with mixed logger configurations", async () => {
158
- const instances = [];
159
- const configs = [
160
- // With Pino disabled
161
- getV3DynamicTestConfig({ verbose: 1, disablePino: true }),
162
- // With external logger
163
- getV3DynamicTestConfig({
164
- verbose: 2,
165
- disablePino: true,
166
- //eslint-disable-next-line @typescript-eslint/no-unused-vars
167
- logger: (_line) => {
168
- // External logger
169
- },
170
- }),
171
- // Without external logger
172
- getV3DynamicTestConfig({ verbose: 0, disablePino: true }),
173
- // High verbosity
174
- getV3DynamicTestConfig({ verbose: 2, disablePino: true }),
175
- ];
176
- try {
177
- // Create all instances concurrently
178
- const creationPromises = configs.map((config) => {
179
- const v3 = new V3(config);
180
- instances.push(v3);
181
- return v3.init();
182
- });
183
- await Promise.all(creationPromises);
184
- // All should be initialized successfully
185
- expect(instances.length).toBe(configs.length);
186
- for (const instance of instances) {
187
- expect(instance.context).toBeDefined();
188
- }
189
- // All should be able to perform operations
190
- await Promise.all(instances.map(async (instance) => {
191
- const page = await instance.context.awaitActivePage();
192
- await page.goto("about:blank");
193
- expect(page.url()).toContain("about:blank");
194
- }));
195
- }
196
- finally {
197
- await Promise.all(instances.map((instance) => closeV3(instance)));
198
- }
199
- });
200
- test("V3 instance logger is properly cleaned up on close", async () => {
201
- const logs = [];
202
- const v3 = new V3(getV3DynamicTestConfig({
203
- verbose: 2,
204
- disablePino: true,
205
- logger: (line) => logs.push(line),
206
- }));
207
- await v3.init();
208
- const initialLogCount = logs.length;
209
- expect(initialLogCount).toBeGreaterThan(0);
210
- await closeV3(v3);
211
- // After close, the instance should not generate new logs
212
- // (This is hard to test directly, but we can verify the instance is closed)
213
- expect(v3["state"].kind).toBe("UNINITIALIZED");
214
- });
215
- test("logger works correctly across instance lifecycle", async () => {
216
- const logs = [];
217
- const v3 = new V3(getV3DynamicTestConfig({
218
- verbose: 2,
219
- disablePino: true,
220
- logger: (line) => logs.push(line),
221
- }));
222
- try {
223
- // Before init
224
- expect(logs.length).toBe(0);
225
- // After init
226
- await v3.init();
227
- const afterInitCount = logs.length;
228
- expect(afterInitCount).toBeGreaterThan(0);
229
- // During operation
230
- const page = await v3.context.awaitActivePage();
231
- await page.goto("data:text/html,<h1>Test</h1>");
232
- const afterOperationCount = logs.length;
233
- expect(afterOperationCount).toBeGreaterThanOrEqual(afterInitCount);
234
- // Verify log structure
235
- const initLogs = logs.filter((log) => log.category === "init");
236
- expect(initLogs.length).toBeGreaterThan(0);
237
- // All logs should have required fields
238
- for (const log of logs) {
239
- expect(log.category).toBeDefined();
240
- expect(log.message).toBeDefined();
241
- expect(typeof log.level).toBe("number");
242
- }
243
- }
244
- finally {
245
- await closeV3(v3);
246
- }
247
- });
248
- test("multiple instances can navigate concurrently without logger interference", async () => {
249
- const instanceCount = 3;
250
- const instances = [];
251
- const instanceLogs = new Map();
252
- try {
253
- // Create instances
254
- for (let i = 0; i < instanceCount; i++) {
255
- const logs = [];
256
- instanceLogs.set(i, logs);
257
- const v3 = new V3(getV3DynamicTestConfig({
258
- verbose: 1,
259
- disablePino: true,
260
- logger: (line) => logs.push(line),
261
- }));
262
- instances.push(v3);
263
- await v3.init();
264
- }
265
- // Navigate all instances concurrently to different URLs
266
- const urls = [
267
- "data:text/html,<h1>Page 1</h1>",
268
- "data:text/html,<h1>Page 2</h1>",
269
- "data:text/html,<h1>Page 3</h1>",
270
- ];
271
- await Promise.all(instances.map(async (instance, i) => {
272
- const page = await instance.context.awaitActivePage();
273
- await page.goto(urls[i]);
274
- }));
275
- // Verify each instance navigated to the correct URL
276
- for (let i = 0; i < instanceCount; i++) {
277
- const page = await instances[i].context.awaitActivePage();
278
- expect(page.url()).toContain(`Page ${i + 1}`);
279
- }
280
- // Each instance should have its own logs
281
- for (let i = 0; i < instanceCount; i++) {
282
- const logs = instanceLogs.get(i);
283
- expect(logs.length).toBeGreaterThan(0);
284
- }
285
- }
286
- finally {
287
- await Promise.all(instances.map((instance) => closeV3(instance)));
288
- }
289
- });
290
- });
291
- //# sourceMappingURL=multi-instance-logger.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-instance-logger.spec.js","sourceRoot":"","sources":["../../../../tests/integration/multi-instance-logger.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { getV3DynamicTestConfig } from \"./v3.dynamic.config.js\";\nimport type { LogLine } from \"../../lib/v3/types/public/logs.js\";\nimport { closeV3 } from \"./testUtils.js\";\n\ntest.describe(\"V3 Multi-Instance Logger Isolation\", () => {\n // Run tests serially to avoid resource exhaustion from creating many Chrome instances\n test.describe.configure({ mode: \"serial\" });\n // Increase timeout for stress tests that create/destroy multiple instances\n test.setTimeout(120_000);\n\n test(\"multiple V3 instances can be created concurrently without logger conflicts\", async () => {\n const instanceCount = 5;\n const instances: V3[] = [];\n const instanceLogs: Map<number, LogLine[]> = new Map();\n\n try {\n // Create multiple instances with individual loggers\n const creationPromises = Array.from({ length: instanceCount }, (_, i) => {\n const logs: LogLine[] = [];\n instanceLogs.set(i, logs);\n\n const config = getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => {\n logs.push({\n ...line,\n auxiliary: {\n ...line.auxiliary,\n index: { value: String(i), type: \"integer\" },\n },\n });\n },\n });\n\n const v3 = new V3(config);\n instances.push(v3);\n return v3.init();\n });\n\n // All instances should initialize successfully\n await Promise.all(creationPromises);\n\n // Each instance should be initialized\n expect(instances.length).toBe(instanceCount);\n for (const instance of instances) {\n expect(instance.context).toBeDefined();\n }\n\n // Perform operations that generate logs\n await Promise.all(\n instances.map(async (instance) => {\n const page = await instance.context.awaitActivePage();\n await page.goto(\"about:blank\");\n }),\n );\n\n // Each instance should have logged to its own logger\n for (let i = 0; i < instanceCount; i++) {\n const logs = instanceLogs.get(i)!;\n // Each instance should have some logs\n expect(logs.length).toBeGreaterThan(0);\n\n // Logs should not contain data from other instances\n // (though this is harder to verify without more specific markers)\n const hasOwnLogs = logs.some(\n (log) =>\n log.auxiliary?.index?.value === String(i) ||\n log.category === \"init\",\n );\n expect(hasOwnLogs).toBe(true);\n }\n } finally {\n // Clean up all instances\n await Promise.all(instances.map((instance) => closeV3(instance)));\n }\n });\n\n test(\"V3 instances with external loggers don't leak logs to each other\", async () => {\n const instance1Logs: LogLine[] = [];\n const instance2Logs: LogLine[] = [];\n\n const v3Instance1 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => instance1Logs.push(line),\n }),\n );\n\n const v3Instance2 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => instance2Logs.push(line),\n }),\n );\n\n try {\n // Initialize both instances\n await Promise.all([v3Instance1.init(), v3Instance2.init()]);\n\n // Perform operations on each instance\n const page1 = await v3Instance1.context.awaitActivePage();\n await page1.goto(\"about:blank\");\n\n const page2 = await v3Instance2.context.awaitActivePage();\n await page2.goto(\"data:text/html,<h1>Instance 2</h1>\");\n\n // Both instances should have logs\n expect(instance1Logs.length).toBeGreaterThan(0);\n expect(instance2Logs.length).toBeGreaterThan(0);\n\n // Logs should be distinct (no exact duplicates)\n // This is a weak check, but verifies basic isolation\n const instance1Messages = new Set(instance1Logs.map((l) => l.message));\n const instance2Messages = new Set(instance2Logs.map((l) => l.message));\n\n // At least some messages should be unique to each instance\n // (This might not always be true for very generic messages like \"init\",\n // but serves as a smoke test)\n const allMessages = new Set([...instance1Messages, ...instance2Messages]);\n expect(allMessages.size).toBeGreaterThanOrEqual(\n Math.max(instance1Messages.size, instance2Messages.size),\n );\n } finally {\n await Promise.all([closeV3(v3Instance1), closeV3(v3Instance2)]);\n }\n });\n\n test(\"V3 instances without external loggers use shared global logger\", async () => {\n // Create instances without external loggers\n const v3Instance1 = new V3(\n getV3DynamicTestConfig({\n verbose: 1,\n disablePino: true,\n }),\n );\n\n const v3Instance2 = new V3(\n getV3DynamicTestConfig({\n verbose: 1,\n disablePino: true,\n }),\n );\n\n try {\n // Initialize both instances concurrently\n await Promise.all([v3Instance1.init(), v3Instance2.init()]);\n\n // Both should work fine\n expect(v3Instance1.context).toBeDefined();\n expect(v3Instance2.context).toBeDefined();\n\n // Perform basic operations to ensure logging doesn't cause issues\n const page1 = await v3Instance1.context.awaitActivePage();\n const page2 = await v3Instance2.context.awaitActivePage();\n\n await Promise.all([page1.goto(\"about:blank\"), page2.goto(\"about:blank\")]);\n\n // Both should still be operational\n expect(page1.url()).toContain(\"about:blank\");\n expect(page2.url()).toContain(\"about:blank\");\n } finally {\n await Promise.all([closeV3(v3Instance1), closeV3(v3Instance2)]);\n }\n });\n\n test(\"rapidly creating and destroying instances doesn't cause logger issues\", async () => {\n const iterations = 5;\n const results: boolean[] = [];\n\n for (let i = 0; i < iterations; i++) {\n const logs: LogLine[] = [];\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 1, // Capture INFO logs for verification\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n try {\n await v3.init();\n const page = await v3.context.awaitActivePage();\n await page.goto(\"about:blank\");\n results.push(true);\n\n // Verify some logs were captured\n expect(logs.length).toBeGreaterThan(0);\n } finally {\n await closeV3(v3);\n }\n }\n\n // All iterations should succeed\n expect(results.length).toBe(iterations);\n expect(results.every((r) => r === true)).toBe(true);\n });\n\n test(\"concurrent instance creation with mixed logger configurations\", async () => {\n const instances: V3[] = [];\n const configs = [\n // With Pino disabled\n getV3DynamicTestConfig({ verbose: 1, disablePino: true }),\n // With external logger\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n //eslint-disable-next-line @typescript-eslint/no-unused-vars\n logger: (_line: LogLine) => {\n // External logger\n },\n }),\n // Without external logger\n getV3DynamicTestConfig({ verbose: 0, disablePino: true }),\n // High verbosity\n getV3DynamicTestConfig({ verbose: 2, disablePino: true }),\n ];\n\n try {\n // Create all instances concurrently\n const creationPromises = configs.map((config) => {\n const v3 = new V3(config);\n instances.push(v3);\n return v3.init();\n });\n\n await Promise.all(creationPromises);\n\n // All should be initialized successfully\n expect(instances.length).toBe(configs.length);\n for (const instance of instances) {\n expect(instance.context).toBeDefined();\n }\n\n // All should be able to perform operations\n await Promise.all(\n instances.map(async (instance) => {\n const page = await instance.context.awaitActivePage();\n await page.goto(\"about:blank\");\n expect(page.url()).toContain(\"about:blank\");\n }),\n );\n } finally {\n await Promise.all(instances.map((instance) => closeV3(instance)));\n }\n });\n\n test(\"V3 instance logger is properly cleaned up on close\", async () => {\n const logs: LogLine[] = [];\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n await v3.init();\n const initialLogCount = logs.length;\n expect(initialLogCount).toBeGreaterThan(0);\n\n await closeV3(v3);\n\n // After close, the instance should not generate new logs\n // (This is hard to test directly, but we can verify the instance is closed)\n expect(v3[\"state\"].kind).toBe(\"UNINITIALIZED\");\n });\n\n test(\"logger works correctly across instance lifecycle\", async () => {\n const logs: LogLine[] = [];\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 2,\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n try {\n // Before init\n expect(logs.length).toBe(0);\n\n // After init\n await v3.init();\n const afterInitCount = logs.length;\n expect(afterInitCount).toBeGreaterThan(0);\n\n // During operation\n const page = await v3.context.awaitActivePage();\n await page.goto(\"data:text/html,<h1>Test</h1>\");\n const afterOperationCount = logs.length;\n expect(afterOperationCount).toBeGreaterThanOrEqual(afterInitCount);\n\n // Verify log structure\n const initLogs = logs.filter((log) => log.category === \"init\");\n expect(initLogs.length).toBeGreaterThan(0);\n\n // All logs should have required fields\n for (const log of logs) {\n expect(log.category).toBeDefined();\n expect(log.message).toBeDefined();\n expect(typeof log.level).toBe(\"number\");\n }\n } finally {\n await closeV3(v3);\n }\n });\n\n test(\"multiple instances can navigate concurrently without logger interference\", async () => {\n const instanceCount = 3;\n const instances: V3[] = [];\n const instanceLogs: Map<number, LogLine[]> = new Map();\n\n try {\n // Create instances\n for (let i = 0; i < instanceCount; i++) {\n const logs: LogLine[] = [];\n instanceLogs.set(i, logs);\n\n const v3 = new V3(\n getV3DynamicTestConfig({\n verbose: 1,\n disablePino: true,\n logger: (line: LogLine) => logs.push(line),\n }),\n );\n\n instances.push(v3);\n await v3.init();\n }\n\n // Navigate all instances concurrently to different URLs\n const urls = [\n \"data:text/html,<h1>Page 1</h1>\",\n \"data:text/html,<h1>Page 2</h1>\",\n \"data:text/html,<h1>Page 3</h1>\",\n ];\n\n await Promise.all(\n instances.map(async (instance, i) => {\n const page = await instance.context.awaitActivePage();\n await page.goto(urls[i]);\n }),\n );\n\n // Verify each instance navigated to the correct URL\n for (let i = 0; i < instanceCount; i++) {\n const page = await instances[i].context.awaitActivePage();\n expect(page.url()).toContain(`Page ${i + 1}`);\n }\n\n // Each instance should have its own logs\n for (let i = 0; i < instanceCount; i++) {\n const logs = instanceLogs.get(i)!;\n expect(logs.length).toBeGreaterThan(0);\n }\n } finally {\n await Promise.all(instances.map((instance) => closeV3(instance)));\n }\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,20 +0,0 @@
1
- import { test, expect } from "@playwright/test";
2
- import { V3 } from "../../lib/v3/v3.js";
3
- import { captureHybridSnapshot } from "../../lib/v3/understudy/a11y/snapshot/index.js";
4
- import { v3TestConfig } from "./v3.config.js";
5
- test.describe("tests captureHybridSnapshot() does not break due to -32000 Failed to convert response to JSON: CBOR: stack limit exceeded", () => {
6
- let v3;
7
- test.beforeEach(async () => {
8
- v3 = new V3(v3TestConfig);
9
- await v3.init();
10
- });
11
- test.afterEach(async () => {
12
- await v3?.close?.().catch(() => { });
13
- });
14
- test("captureHybridSnapshot does not throw", async () => {
15
- const page = v3.context.pages()[0];
16
- await page.goto("https://browserbase.github.io/stagehand-eval-sites/sites/nested-div/");
17
- await expect(captureHybridSnapshot(page)).resolves.toBeDefined();
18
- });
19
- });
20
- //# sourceMappingURL=nested-div.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nested-div.spec.js","sourceRoot":"","sources":["../../../../tests/integration/nested-div.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,IAAI,CAAC,QAAQ,CAAC,2HAA2H,EAAE,GAAG,EAAE;IAC9I,IAAI,EAAM,CAAC;IAEX,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;QACzB,EAAE,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,IAAI,CACb,sEAAsE,CACvE,CAAC;QAEF,MAAM,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { captureHybridSnapshot } from \"../../lib/v3/understudy/a11y/snapshot/index.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\n\ntest.describe(\"tests captureHybridSnapshot() does not break due to -32000 Failed to convert response to JSON: CBOR: stack limit exceeded\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"captureHybridSnapshot does not throw\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"https://browserbase.github.io/stagehand-eval-sites/sites/nested-div/\",\n );\n\n await expect(captureHybridSnapshot(page)).resolves.toBeDefined();\n });\n});\n"]}
@@ -1,128 +0,0 @@
1
- import { expect, test } from "@playwright/test";
2
- import { V3 } from "../../lib/v3/v3.js";
3
- import { getV3TestConfig } from "./v3.config.js";
4
- import { closeV3, createScriptedAisdkTestLlmClient, findLastEncodedId, promptToText, } from "./testUtils.js";
5
- const encodedIdPattern = /^\d+-\d+$/;
6
- const mainFrameEncodedIdPattern = /^0-\d+$/;
7
- function encodeHtml(html) {
8
- return `data:text/html,${encodeURIComponent(html)}`;
9
- }
10
- const filler = Array.from({ length: 80 }, (_, index) => `<span hidden data-filler="${index}">filler ${index}</span>`).join("");
11
- const cases = [
12
- {
13
- name: "button after hidden filler nodes",
14
- instruction: "Find the Target Checkout button",
15
- targetText: "Target Checkout",
16
- marker: "checkout",
17
- html: `
18
- <!doctype html>
19
- <html>
20
- <body>
21
- ${filler}
22
- <main>
23
- <button onclick="document.body.dataset.clicked = 'checkout'">
24
- Target Checkout
25
- </button>
26
- </main>
27
- </body>
28
- </html>
29
- `,
30
- },
31
- {
32
- name: "navigation link",
33
- instruction: "Find the Pricing Plans link",
34
- targetText: "Pricing Plans",
35
- marker: "pricing",
36
- html: `
37
- <!doctype html>
38
- <html>
39
- <body>
40
- <nav>
41
- <a href="#pricing" onclick="document.body.dataset.clicked = 'pricing'">
42
- Pricing Plans
43
- </a>
44
- </nav>
45
- </body>
46
- </html>
47
- `,
48
- },
49
- {
50
- name: "form input",
51
- instruction: "Find the Company Email input",
52
- targetText: "Company Email",
53
- marker: "email",
54
- html: `
55
- <!doctype html>
56
- <html>
57
- <body>
58
- <form>
59
- <label>
60
- Company Email
61
- <input
62
- type="email"
63
- onclick="document.body.dataset.clicked = 'email'"
64
- />
65
- </label>
66
- </form>
67
- </body>
68
- </html>
69
- `,
70
- },
71
- ];
72
- function observeResponseForTarget(testCase, onElementId) {
73
- return (options) => {
74
- const promptText = promptToText(options.prompt);
75
- expect(promptText).toContain("Always copy the complete ID exactly as shown inside the brackets into elementId");
76
- expect(promptText).toContain('return elementId "0-18372"');
77
- expect(promptText).toContain(testCase.targetText);
78
- const elementId = findLastEncodedId(options);
79
- expect(elementId).toMatch(encodedIdPattern);
80
- expect(elementId).toMatch(mainFrameEncodedIdPattern);
81
- onElementId(elementId, options);
82
- return {
83
- elements: [
84
- {
85
- elementId,
86
- description: testCase.targetText,
87
- method: "click",
88
- arguments: [],
89
- },
90
- ],
91
- };
92
- };
93
- }
94
- test.describe("observe main frame element IDs", () => {
95
- for (const testCase of cases) {
96
- test(`keeps complete 0-ordinal element IDs for ${testCase.name}`, async () => {
97
- let observedElementId;
98
- const llmClient = createScriptedAisdkTestLlmClient({
99
- modelId: "mock/observe-main-frame-element-id-format",
100
- jsonResponses: {
101
- Observation: observeResponseForTarget(testCase, (elementId) => {
102
- observedElementId = elementId;
103
- }),
104
- },
105
- });
106
- const v3 = new V3(getV3TestConfig({
107
- llmClient,
108
- }));
109
- await v3.init();
110
- try {
111
- const page = v3.context.pages()[0];
112
- await page.goto(encodeHtml(testCase.html));
113
- const observed = await v3.observe(testCase.instruction);
114
- expect(observedElementId).toMatch(mainFrameEncodedIdPattern);
115
- expect(observed).toHaveLength(1);
116
- expect(observed[0].selector).toMatch(/^xpath=/);
117
- const actResult = await v3.act(observed[0]);
118
- expect(actResult.success).toBe(true);
119
- const clicked = await page.evaluate(() => document.body.dataset.clicked);
120
- expect(clicked).toBe(testCase.marker);
121
- }
122
- finally {
123
- await closeV3(v3);
124
- }
125
- });
126
- }
127
- });
128
- //# sourceMappingURL=observe-element-id-format.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observe-element-id-format.spec.js","sourceRoot":"","sources":["../../../../tests/integration/observe-element-id-format.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, test } from \"@playwright/test\";\nimport type { LanguageModelV2CallOptions } from \"@ai-sdk/provider\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { getV3TestConfig } from \"./v3.config.js\";\nimport {\n closeV3,\n createScriptedAisdkTestLlmClient,\n findLastEncodedId,\n promptToText,\n} from \"./testUtils.js\";\n\nconst encodedIdPattern = /^\\d+-\\d+$/;\nconst mainFrameEncodedIdPattern = /^0-\\d+$/;\n\nfunction encodeHtml(html: string): string {\n return `data:text/html,${encodeURIComponent(html)}`;\n}\n\ntype MainFrameCase = {\n name: string;\n instruction: string;\n targetText: string;\n marker: string;\n html: string;\n};\n\nconst filler = Array.from(\n { length: 80 },\n (_, index) => `<span hidden data-filler=\"${index}\">filler ${index}</span>`,\n).join(\"\");\n\nconst cases: MainFrameCase[] = [\n {\n name: \"button after hidden filler nodes\",\n instruction: \"Find the Target Checkout button\",\n targetText: \"Target Checkout\",\n marker: \"checkout\",\n html: `\n <!doctype html>\n <html>\n <body>\n ${filler}\n <main>\n <button onclick=\"document.body.dataset.clicked = 'checkout'\">\n Target Checkout\n </button>\n </main>\n </body>\n </html>\n `,\n },\n {\n name: \"navigation link\",\n instruction: \"Find the Pricing Plans link\",\n targetText: \"Pricing Plans\",\n marker: \"pricing\",\n html: `\n <!doctype html>\n <html>\n <body>\n <nav>\n <a href=\"#pricing\" onclick=\"document.body.dataset.clicked = 'pricing'\">\n Pricing Plans\n </a>\n </nav>\n </body>\n </html>\n `,\n },\n {\n name: \"form input\",\n instruction: \"Find the Company Email input\",\n targetText: \"Company Email\",\n marker: \"email\",\n html: `\n <!doctype html>\n <html>\n <body>\n <form>\n <label>\n Company Email\n <input\n type=\"email\"\n onclick=\"document.body.dataset.clicked = 'email'\"\n />\n </label>\n </form>\n </body>\n </html>\n `,\n },\n];\n\nfunction observeResponseForTarget(\n testCase: MainFrameCase,\n onElementId: (elementId: string, options: LanguageModelV2CallOptions) => void,\n) {\n return (options: LanguageModelV2CallOptions) => {\n const promptText = promptToText(options.prompt);\n expect(promptText).toContain(\n \"Always copy the complete ID exactly as shown inside the brackets into elementId\",\n );\n expect(promptText).toContain('return elementId \"0-18372\"');\n\n expect(promptText).toContain(testCase.targetText);\n\n const elementId = findLastEncodedId(options);\n expect(elementId).toMatch(encodedIdPattern);\n expect(elementId).toMatch(mainFrameEncodedIdPattern);\n onElementId(elementId, options);\n\n return {\n elements: [\n {\n elementId,\n description: testCase.targetText,\n method: \"click\",\n arguments: [] as string[],\n },\n ],\n };\n };\n}\n\ntest.describe(\"observe main frame element IDs\", () => {\n for (const testCase of cases) {\n test(`keeps complete 0-ordinal element IDs for ${testCase.name}`, async () => {\n let observedElementId: string | undefined;\n const llmClient = createScriptedAisdkTestLlmClient({\n modelId: \"mock/observe-main-frame-element-id-format\",\n jsonResponses: {\n Observation: observeResponseForTarget(testCase, (elementId) => {\n observedElementId = elementId;\n }),\n },\n });\n\n const v3 = new V3(\n getV3TestConfig({\n llmClient,\n }),\n );\n await v3.init();\n\n try {\n const page = v3.context.pages()[0];\n await page.goto(encodeHtml(testCase.html));\n\n const observed = await v3.observe(testCase.instruction);\n\n expect(observedElementId).toMatch(mainFrameEncodedIdPattern);\n expect(observed).toHaveLength(1);\n expect(observed[0].selector).toMatch(/^xpath=/);\n\n const actResult = await v3.act(observed[0]);\n expect(actResult.success).toBe(true);\n\n const clicked = await page.evaluate(\n () => document.body.dataset.clicked,\n );\n expect(clicked).toBe(testCase.marker);\n } finally {\n await closeV3(v3);\n }\n });\n }\n});\n"]}