@browserbasehq/orca 3.1.0-patch.3 → 3.2.0-preview.1

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 (1460) hide show
  1. package/dist/cjs/cli.js +2 -210
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.js +2 -25025
  4. package/dist/cjs/lib/inference.js +335 -0
  5. package/dist/cjs/lib/inference.js.map +1 -0
  6. package/dist/cjs/lib/inferenceLogUtils.js +99 -0
  7. package/dist/cjs/lib/inferenceLogUtils.js.map +1 -0
  8. package/dist/cjs/lib/logger.js +331 -0
  9. package/dist/cjs/lib/logger.js.map +1 -0
  10. package/dist/cjs/lib/modelUtils.d.ts +1 -0
  11. package/dist/cjs/lib/modelUtils.js +53 -0
  12. package/dist/cjs/lib/modelUtils.js.map +1 -0
  13. package/dist/cjs/lib/prompt.d.ts +3 -2
  14. package/dist/cjs/lib/prompt.js +245 -0
  15. package/dist/cjs/lib/prompt.js.map +1 -0
  16. package/dist/cjs/lib/utils.js +670 -0
  17. package/dist/cjs/lib/utils.js.map +1 -0
  18. package/dist/cjs/lib/v3/agent/AgentClient.js +21 -0
  19. package/dist/cjs/lib/v3/agent/AgentClient.js.map +1 -0
  20. package/dist/cjs/lib/v3/agent/AgentProvider.js +81 -0
  21. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -0
  22. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +844 -0
  23. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
  24. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +803 -0
  25. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -0
  26. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +777 -0
  27. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
  28. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +622 -0
  29. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -0
  30. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
  31. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js +212 -0
  32. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
  33. package/dist/cjs/lib/v3/agent/tools/act.d.ts +2 -2
  34. package/dist/cjs/lib/v3/agent/tools/act.js +75 -0
  35. package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -0
  36. package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  37. package/dist/cjs/lib/v3/agent/tools/ariaTree.js +73 -0
  38. package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -0
  39. package/dist/cjs/lib/v3/agent/tools/click.js +100 -0
  40. package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -0
  41. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js +72 -0
  42. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -0
  43. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +101 -0
  44. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
  45. package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
  46. package/dist/cjs/lib/v3/agent/tools/extract.js +110 -0
  47. package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -0
  48. package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  49. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +158 -0
  50. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -0
  51. package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +8 -2
  52. package/dist/cjs/lib/v3/agent/tools/fillform.js +90 -0
  53. package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -0
  54. package/dist/cjs/lib/v3/agent/tools/goto.js +35 -0
  55. package/dist/cjs/lib/v3/agent/tools/goto.js.map +1 -0
  56. package/dist/cjs/lib/v3/agent/tools/index.d.ts +11 -1
  57. package/dist/cjs/lib/v3/agent/tools/index.js +78 -0
  58. package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -0
  59. package/dist/cjs/lib/v3/agent/tools/keys.js +64 -0
  60. package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -0
  61. package/dist/cjs/lib/v3/agent/tools/navback.js +27 -0
  62. package/dist/cjs/lib/v3/agent/tools/navback.js.map +1 -0
  63. package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
  64. package/dist/cjs/lib/v3/agent/tools/screenshot.js +47 -0
  65. package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -0
  66. package/dist/cjs/lib/v3/agent/tools/scroll.js +159 -0
  67. package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -0
  68. package/dist/cjs/lib/v3/agent/tools/search.js +77 -0
  69. package/dist/cjs/lib/v3/agent/tools/search.js.map +1 -0
  70. package/dist/cjs/lib/v3/agent/tools/think.js +28 -0
  71. package/dist/cjs/lib/v3/agent/tools/think.js.map +1 -0
  72. package/dist/cjs/lib/v3/agent/tools/type.d.ts +2 -2
  73. package/dist/cjs/lib/v3/agent/tools/type.js +111 -0
  74. package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -0
  75. package/dist/cjs/lib/v3/agent/tools/wait.js +63 -0
  76. package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -0
  77. package/dist/cjs/lib/v3/agent/utils/actionMapping.js +103 -0
  78. package/dist/cjs/lib/v3/agent/utils/actionMapping.js.map +1 -0
  79. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js +33 -0
  80. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
  81. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js +65 -0
  82. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
  83. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js +150 -0
  84. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
  85. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +108 -0
  86. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
  87. package/dist/cjs/lib/v3/agent/utils/imageCompression.js +212 -0
  88. package/dist/cjs/lib/v3/agent/utils/imageCompression.js.map +1 -0
  89. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js +167 -0
  90. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js.map +1 -0
  91. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js +29 -0
  92. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
  93. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js +90 -0
  94. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
  95. package/dist/cjs/lib/v3/agent/utils/variables.d.ts +21 -0
  96. package/dist/cjs/lib/v3/agent/utils/variables.js +54 -0
  97. package/dist/cjs/lib/v3/agent/utils/variables.js.map +1 -0
  98. package/dist/cjs/lib/v3/agent/utils/xpath.js +22 -0
  99. package/dist/cjs/lib/v3/agent/utils/xpath.js.map +1 -0
  100. package/dist/cjs/lib/v3/api.d.ts +23 -5
  101. package/dist/cjs/lib/v3/api.js +589 -0
  102. package/dist/cjs/lib/v3/api.js.map +1 -0
  103. package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
  104. package/dist/cjs/lib/v3/cache/ActCache.js +280 -0
  105. package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -0
  106. package/dist/cjs/lib/v3/cache/AgentCache.d.ts +1 -0
  107. package/dist/cjs/lib/v3/cache/AgentCache.js +651 -0
  108. package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -0
  109. package/dist/cjs/lib/v3/cache/CacheStorage.js +105 -0
  110. package/dist/cjs/lib/v3/cache/CacheStorage.js.map +1 -0
  111. package/dist/cjs/lib/v3/cache/serverAgentCache.js +52 -0
  112. package/dist/cjs/lib/v3/cache/serverAgentCache.js.map +1 -0
  113. package/dist/cjs/lib/v3/cache/utils.js +44 -0
  114. package/dist/cjs/lib/v3/cache/utils.js.map +1 -0
  115. package/dist/cjs/lib/v3/cli.js +15 -0
  116. package/dist/cjs/lib/v3/cli.js.map +1 -0
  117. package/dist/cjs/lib/v3/dom/a11yScripts/index.js +124 -0
  118. package/dist/cjs/lib/v3/dom/a11yScripts/index.js.map +1 -0
  119. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js +23 -0
  120. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
  121. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js +59 -0
  122. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
  123. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js +5 -0
  124. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
  125. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js +11 -0
  126. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
  127. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js +5 -0
  128. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js.map +1 -0
  129. package/dist/cjs/lib/v3/dom/index.js +18 -0
  130. package/dist/cjs/lib/v3/dom/index.js.map +1 -0
  131. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js +278 -0
  132. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js.map +1 -0
  133. package/dist/cjs/lib/v3/dom/locatorScripts/index.js +21 -0
  134. package/dist/cjs/lib/v3/dom/locatorScripts/index.js.map +1 -0
  135. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js +474 -0
  136. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
  137. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js +289 -0
  138. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
  139. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js +286 -0
  140. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
  141. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js +381 -0
  142. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
  143. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js +202 -0
  144. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
  145. package/dist/cjs/lib/v3/dom/piercer.entry.js +5 -0
  146. package/dist/cjs/lib/v3/dom/piercer.entry.js.map +1 -0
  147. package/dist/cjs/lib/v3/dom/piercer.runtime.js +93 -0
  148. package/dist/cjs/lib/v3/dom/piercer.runtime.js.map +1 -0
  149. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js +5 -0
  150. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
  151. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js +43 -0
  152. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
  153. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js +6 -0
  154. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js.map +1 -0
  155. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js +85 -0
  156. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
  157. package/dist/cjs/lib/v3/external_clients/aisdk.js +107 -0
  158. package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -0
  159. package/dist/cjs/lib/v3/external_clients/customOpenAI.js +224 -0
  160. package/dist/cjs/lib/v3/external_clients/customOpenAI.js.map +1 -0
  161. package/dist/cjs/lib/v3/flowLogger.js +881 -0
  162. package/dist/cjs/lib/v3/flowLogger.js.map +1 -0
  163. package/dist/cjs/lib/v3/handlers/actHandler.d.ts +2 -1
  164. package/dist/cjs/lib/v3/handlers/actHandler.js +344 -0
  165. package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -0
  166. package/dist/cjs/lib/v3/handlers/extractHandler.js +144 -0
  167. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -0
  168. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +604 -0
  169. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
  170. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js +17 -0
  171. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
  172. package/dist/cjs/lib/v3/handlers/observeHandler.js +159 -0
  173. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -0
  174. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +462 -0
  175. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -0
  176. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +532 -0
  177. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
  178. package/dist/cjs/lib/v3/index.d.ts +143 -0
  179. package/dist/cjs/lib/v3/index.js +119 -0
  180. package/dist/cjs/lib/v3/index.js.map +1 -0
  181. package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
  182. package/dist/cjs/lib/v3/launch/browserbase.js +47 -0
  183. package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -0
  184. package/dist/cjs/lib/v3/launch/local.js +104 -0
  185. package/dist/cjs/lib/v3/launch/local.js.map +1 -0
  186. package/dist/cjs/lib/v3/llm/AnthropicClient.js +246 -0
  187. package/dist/cjs/lib/v3/llm/AnthropicClient.js.map +1 -0
  188. package/dist/cjs/lib/v3/llm/CerebrasClient.js +242 -0
  189. package/dist/cjs/lib/v3/llm/CerebrasClient.js.map +1 -0
  190. package/dist/cjs/lib/v3/llm/GoogleClient.js +373 -0
  191. package/dist/cjs/lib/v3/llm/GoogleClient.js.map +1 -0
  192. package/dist/cjs/lib/v3/llm/GroqClient.js +243 -0
  193. package/dist/cjs/lib/v3/llm/GroqClient.js.map +1 -0
  194. package/dist/cjs/lib/v3/llm/LLMClient.js +27 -0
  195. package/dist/cjs/lib/v3/llm/LLMClient.js.map +1 -0
  196. package/dist/cjs/lib/v3/llm/LLMProvider.js +194 -0
  197. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -0
  198. package/dist/cjs/lib/v3/llm/OpenAIClient.js +336 -0
  199. package/dist/cjs/lib/v3/llm/OpenAIClient.js.map +1 -0
  200. package/dist/cjs/lib/v3/llm/aisdk.js +355 -0
  201. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -0
  202. package/dist/cjs/lib/v3/logger.js +102 -0
  203. package/dist/cjs/lib/v3/logger.js.map +1 -0
  204. package/dist/cjs/lib/v3/mcp/connection.d.ts +2 -0
  205. package/dist/cjs/lib/v3/mcp/connection.js +56 -0
  206. package/dist/cjs/lib/v3/mcp/connection.js.map +1 -0
  207. package/dist/cjs/lib/v3/mcp/utils.js +40 -0
  208. package/dist/cjs/lib/v3/mcp/utils.js.map +1 -0
  209. package/dist/cjs/lib/v3/runtimePaths.d.ts +6 -0
  210. package/dist/cjs/lib/v3/runtimePaths.js +119 -0
  211. package/dist/cjs/lib/v3/runtimePaths.js.map +1 -0
  212. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js +36 -0
  213. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js.map +1 -0
  214. package/dist/cjs/lib/v3/shutdown/supervisor.js +193 -0
  215. package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -0
  216. package/dist/cjs/lib/v3/shutdown/supervisorClient.js +95 -0
  217. package/dist/cjs/lib/v3/shutdown/supervisorClient.js.map +1 -0
  218. package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
  219. package/dist/cjs/lib/v3/timeoutConfig.js +36 -0
  220. package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -0
  221. package/dist/cjs/lib/v3/types/private/agent.js +3 -0
  222. package/dist/cjs/lib/v3/types/private/agent.js.map +1 -0
  223. package/dist/cjs/lib/v3/types/private/api.js +3 -0
  224. package/dist/cjs/lib/v3/types/private/api.js.map +1 -0
  225. package/dist/cjs/lib/v3/types/private/cache.d.ts +3 -0
  226. package/dist/cjs/lib/v3/types/private/cache.js +3 -0
  227. package/dist/cjs/lib/v3/types/private/cache.js.map +1 -0
  228. package/dist/cjs/lib/v3/types/private/evaluator.js +3 -0
  229. package/dist/cjs/lib/v3/types/private/evaluator.js.map +1 -0
  230. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -1
  231. package/dist/cjs/lib/v3/types/private/handlers.js +19 -0
  232. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -0
  233. package/dist/cjs/lib/v3/types/private/index.js +24 -0
  234. package/dist/cjs/lib/v3/types/private/index.js.map +1 -0
  235. package/dist/cjs/lib/v3/types/private/internal.js +3 -0
  236. package/dist/cjs/lib/v3/types/private/internal.js.map +1 -0
  237. package/dist/cjs/lib/v3/types/private/locator.js +3 -0
  238. package/dist/cjs/lib/v3/types/private/locator.js.map +1 -0
  239. package/dist/cjs/lib/v3/types/private/network.js +6 -0
  240. package/dist/cjs/lib/v3/types/private/network.js.map +1 -0
  241. package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
  242. package/dist/cjs/lib/v3/types/private/shutdown.js +6 -0
  243. package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -0
  244. package/dist/cjs/lib/v3/types/private/shutdownErrors.js +28 -0
  245. package/dist/cjs/lib/v3/types/private/shutdownErrors.js.map +1 -0
  246. package/dist/cjs/lib/v3/types/private/snapshot.js +3 -0
  247. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -0
  248. package/dist/cjs/lib/v3/types/public/agent.d.ts +60 -2
  249. package/dist/cjs/lib/v3/types/public/agent.js +18 -0
  250. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -0
  251. package/dist/cjs/lib/v3/types/public/api.d.ts +17 -0
  252. package/dist/cjs/lib/v3/types/public/api.js +922 -0
  253. package/dist/cjs/lib/v3/types/public/api.js.map +1 -0
  254. package/dist/cjs/lib/v3/types/public/apiErrors.js +41 -0
  255. package/dist/cjs/lib/v3/types/public/apiErrors.js.map +1 -0
  256. package/dist/cjs/lib/v3/types/public/context.d.ts +32 -0
  257. package/dist/cjs/lib/v3/types/public/context.js +3 -0
  258. package/dist/cjs/lib/v3/types/public/context.js.map +1 -0
  259. package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
  260. package/dist/cjs/lib/v3/types/public/index.js +56 -0
  261. package/dist/cjs/lib/v3/types/public/index.js.map +1 -0
  262. package/dist/cjs/lib/v3/types/public/locator.js +3 -0
  263. package/dist/cjs/lib/v3/types/public/locator.js.map +1 -0
  264. package/dist/cjs/lib/v3/types/public/logs.js +16 -0
  265. package/dist/cjs/lib/v3/types/public/logs.js.map +1 -0
  266. package/dist/cjs/lib/v3/types/public/methods.d.ts +33 -2
  267. package/dist/cjs/lib/v3/types/public/methods.js +18 -0
  268. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -0
  269. package/dist/cjs/lib/v3/types/public/metrics.js +3 -0
  270. package/dist/cjs/lib/v3/types/public/metrics.js.map +1 -0
  271. package/dist/cjs/lib/v3/types/public/model.d.ts +4 -2
  272. package/dist/cjs/lib/v3/types/public/model.js +3 -0
  273. package/dist/cjs/lib/v3/types/public/model.js.map +1 -0
  274. package/dist/cjs/lib/v3/types/public/options.d.ts +8 -0
  275. package/dist/cjs/lib/v3/types/public/options.js +7 -0
  276. package/dist/cjs/lib/v3/types/public/options.js.map +1 -0
  277. package/dist/cjs/lib/v3/types/public/page.js +8 -0
  278. package/dist/cjs/lib/v3/types/public/page.js.map +1 -0
  279. package/dist/cjs/lib/v3/types/public/screenshotTypes.js +3 -0
  280. package/dist/cjs/lib/v3/types/public/screenshotTypes.js.map +1 -0
  281. package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +13 -0
  282. package/dist/cjs/lib/v3/types/public/sdkErrors.js +390 -0
  283. package/dist/cjs/lib/v3/types/public/sdkErrors.js.map +1 -0
  284. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +204 -0
  285. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
  286. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js +124 -0
  287. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
  288. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +345 -0
  289. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
  290. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +132 -0
  291. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
  292. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js +285 -0
  293. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
  294. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  295. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js +226 -0
  296. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
  297. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js +12 -0
  298. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
  299. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js +26 -0
  300. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
  301. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +143 -0
  302. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
  303. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js +110 -0
  304. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
  305. package/dist/cjs/lib/v3/understudy/a11yInvocation.js +15 -0
  306. package/dist/cjs/lib/v3/understudy/a11yInvocation.js.map +1 -0
  307. package/dist/cjs/lib/v3/understudy/cdp.d.ts +6 -1
  308. package/dist/cjs/lib/v3/understudy/cdp.js +317 -0
  309. package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -0
  310. package/dist/cjs/lib/v3/understudy/consoleMessage.js +70 -0
  311. package/dist/cjs/lib/v3/understudy/consoleMessage.js.map +1 -0
  312. package/dist/cjs/lib/v3/understudy/context.d.ts +34 -0
  313. package/dist/cjs/lib/v3/understudy/context.js +960 -0
  314. package/dist/cjs/lib/v3/understudy/context.js.map +1 -0
  315. package/dist/cjs/lib/v3/understudy/cookies.d.ts +32 -0
  316. package/dist/cjs/lib/v3/understudy/cookies.js +142 -0
  317. package/dist/cjs/lib/v3/understudy/cookies.js.map +1 -0
  318. package/dist/cjs/lib/v3/understudy/deepLocator.js +204 -0
  319. package/dist/cjs/lib/v3/understudy/deepLocator.js.map +1 -0
  320. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js +87 -0
  321. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js.map +1 -0
  322. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js +88 -0
  323. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js.map +1 -0
  324. package/dist/cjs/lib/v3/understudy/frame.js +232 -0
  325. package/dist/cjs/lib/v3/understudy/frame.js.map +1 -0
  326. package/dist/cjs/lib/v3/understudy/frameLocator.js +260 -0
  327. package/dist/cjs/lib/v3/understudy/frameLocator.js.map +1 -0
  328. package/dist/cjs/lib/v3/understudy/frameRegistry.js +302 -0
  329. package/dist/cjs/lib/v3/understudy/frameRegistry.js.map +1 -0
  330. package/dist/cjs/lib/v3/understudy/initScripts.js +36 -0
  331. package/dist/cjs/lib/v3/understudy/initScripts.js.map +1 -0
  332. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js +249 -0
  333. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
  334. package/dist/cjs/lib/v3/understudy/locator.js +790 -0
  335. package/dist/cjs/lib/v3/understudy/locator.js.map +1 -0
  336. package/dist/cjs/lib/v3/understudy/locatorInvocation.js +15 -0
  337. package/dist/cjs/lib/v3/understudy/locatorInvocation.js.map +1 -0
  338. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js +228 -0
  339. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
  340. package/dist/cjs/lib/v3/understudy/networkManager.js +310 -0
  341. package/dist/cjs/lib/v3/understudy/networkManager.js.map +1 -0
  342. package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
  343. package/dist/cjs/lib/v3/understudy/page.js +1998 -0
  344. package/dist/cjs/lib/v3/understudy/page.js.map +1 -0
  345. package/dist/cjs/lib/v3/understudy/piercer.js +65 -0
  346. package/dist/cjs/lib/v3/understudy/piercer.js.map +1 -0
  347. package/dist/cjs/lib/v3/understudy/response.js +335 -0
  348. package/dist/cjs/lib/v3/understudy/response.js.map +1 -0
  349. package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  350. package/dist/cjs/lib/v3/understudy/screenshotUtils.js +345 -0
  351. package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -0
  352. package/dist/cjs/lib/v3/understudy/selectorResolver.js +300 -0
  353. package/dist/cjs/lib/v3/understudy/selectorResolver.js.map +1 -0
  354. package/dist/cjs/lib/v3/v3.js +1631 -0
  355. package/dist/cjs/lib/v3/v3.js.map +1 -0
  356. package/dist/cjs/lib/v3/zodCompat.js +26 -0
  357. package/dist/cjs/lib/v3/zodCompat.js.map +1 -0
  358. package/dist/cjs/lib/v3Evaluator.js +214 -0
  359. package/dist/cjs/lib/v3Evaluator.js.map +1 -0
  360. package/dist/cjs/lib/version.d.ts +1 -1
  361. package/dist/cjs/lib/version.js +9 -0
  362. package/dist/cjs/lib/version.js.map +1 -0
  363. package/dist/cjs/tests/cache-variables.test.js +221 -0
  364. package/dist/cjs/tests/cache-variables.test.js.map +1 -0
  365. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +123 -0
  366. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +1 -0
  367. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +83 -0
  368. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  369. package/dist/cjs/tests/integration/agent-callbacks.spec.js +385 -0
  370. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +1 -0
  371. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +362 -0
  372. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  373. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +262 -0
  374. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  375. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +112 -0
  376. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +1 -0
  377. package/dist/cjs/tests/integration/agent-streaming.spec.js +140 -0
  378. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +1 -0
  379. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  380. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +41 -0
  381. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  382. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  383. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +76 -0
  384. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +1 -0
  385. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  386. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +45 -0
  387. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -0
  388. package/dist/cjs/tests/integration/click-count.spec.d.ts +1 -0
  389. package/dist/cjs/tests/integration/click-count.spec.js +163 -0
  390. package/dist/cjs/tests/integration/click-count.spec.js.map +1 -0
  391. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  392. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +99 -0
  393. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  394. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +1 -0
  395. package/dist/cjs/tests/integration/context-addInitScript.spec.js +285 -0
  396. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -0
  397. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  398. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +49 -0
  399. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  400. package/dist/cjs/tests/integration/cookies.spec.d.ts +1 -0
  401. package/dist/cjs/tests/integration/cookies.spec.js +187 -0
  402. package/dist/cjs/tests/integration/cookies.spec.js.map +1 -0
  403. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +1 -0
  404. package/dist/cjs/tests/integration/default-page-tracking.spec.js +52 -0
  405. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +1 -0
  406. package/dist/cjs/tests/integration/downloads.spec.d.ts +1 -0
  407. package/dist/cjs/tests/integration/downloads.spec.js +52 -0
  408. package/dist/cjs/tests/integration/downloads.spec.js.map +1 -0
  409. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  410. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +57 -0
  411. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  412. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  413. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
  414. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  415. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  416. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +474 -0
  417. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  418. package/dist/cjs/tests/integration/keep-alive.child.d.ts +1 -0
  419. package/dist/cjs/tests/integration/keep-alive.child.js +85 -0
  420. package/dist/cjs/tests/integration/keep-alive.child.js.map +1 -0
  421. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +22 -0
  422. package/dist/cjs/tests/integration/keep-alive.spec.js +490 -0
  423. package/dist/cjs/tests/integration/keep-alive.spec.js.map +1 -0
  424. package/dist/cjs/tests/integration/keyboard.spec.d.ts +1 -0
  425. package/dist/cjs/tests/integration/keyboard.spec.js +259 -0
  426. package/dist/cjs/tests/integration/keyboard.spec.js.map +1 -0
  427. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  428. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +150 -0
  429. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  430. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +1 -0
  431. package/dist/cjs/tests/integration/locator-content-methods.spec.js +180 -0
  432. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +1 -0
  433. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  434. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +129 -0
  435. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +1 -0
  436. package/dist/cjs/tests/integration/locator-count.spec.d.ts +1 -0
  437. package/dist/cjs/tests/integration/locator-count.spec.js +68 -0
  438. package/dist/cjs/tests/integration/locator-count.spec.js.map +1 -0
  439. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +1 -0
  440. package/dist/cjs/tests/integration/locator-fill.spec.js +117 -0
  441. package/dist/cjs/tests/integration/locator-fill.spec.js.map +1 -0
  442. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +1 -0
  443. package/dist/cjs/tests/integration/locator-input-methods.spec.js +127 -0
  444. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +1 -0
  445. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +1 -0
  446. package/dist/cjs/tests/integration/locator-nth.spec.js +175 -0
  447. package/dist/cjs/tests/integration/locator-nth.spec.js.map +1 -0
  448. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +1 -0
  449. package/dist/cjs/tests/integration/locator-select-option.spec.js +216 -0
  450. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +1 -0
  451. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +1 -0
  452. package/dist/cjs/tests/integration/logger-initialization.spec.js +597 -0
  453. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +1 -0
  454. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  455. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +293 -0
  456. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +1 -0
  457. package/dist/cjs/tests/integration/nested-div.spec.d.ts +1 -0
  458. package/dist/cjs/tests/integration/nested-div.spec.js +22 -0
  459. package/dist/cjs/tests/integration/nested-div.spec.js.map +1 -0
  460. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +1 -0
  461. package/dist/cjs/tests/integration/page-addInitScript.spec.js +94 -0
  462. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +1 -0
  463. package/dist/cjs/tests/integration/page-console.spec.d.ts +1 -0
  464. package/dist/cjs/tests/integration/page-console.spec.js +47 -0
  465. package/dist/cjs/tests/integration/page-console.spec.js.map +1 -0
  466. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  467. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +437 -0
  468. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  469. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  470. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
  471. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  472. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +1 -0
  473. package/dist/cjs/tests/integration/page-goto-response.spec.js +34 -0
  474. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +1 -0
  475. package/dist/cjs/tests/integration/page-hover.spec.d.ts +1 -0
  476. package/dist/cjs/tests/integration/page-hover.spec.js +165 -0
  477. package/dist/cjs/tests/integration/page-hover.spec.js.map +1 -0
  478. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +1 -0
  479. package/dist/cjs/tests/integration/page-screenshot.spec.js +292 -0
  480. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -0
  481. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +1 -0
  482. package/dist/cjs/tests/integration/page-scroll.spec.js +183 -0
  483. package/dist/cjs/tests/integration/page-scroll.spec.js.map +1 -0
  484. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +1 -0
  485. package/dist/cjs/tests/integration/page-send-cdp.spec.js +47 -0
  486. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +1 -0
  487. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  488. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +63 -0
  489. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +1 -0
  490. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +1 -0
  491. package/dist/cjs/tests/integration/setinputfiles.spec.js +133 -0
  492. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +1 -0
  493. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  494. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +161 -0
  495. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  496. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  497. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +160 -0
  498. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  499. package/dist/cjs/tests/integration/testUtils.d.ts +7 -0
  500. package/dist/cjs/tests/integration/testUtils.js +44 -0
  501. package/dist/cjs/tests/integration/testUtils.js.map +1 -0
  502. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  503. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +105 -0
  504. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +1 -0
  505. package/dist/cjs/tests/integration/timeouts.spec.d.ts +1 -0
  506. package/dist/cjs/tests/integration/timeouts.spec.js +197 -0
  507. package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -0
  508. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +1 -0
  509. package/dist/cjs/tests/integration/user-data-dir.spec.js +77 -0
  510. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +1 -0
  511. package/dist/cjs/tests/integration/v3.config.d.ts +4 -0
  512. package/dist/cjs/tests/integration/v3.config.js +11 -0
  513. package/dist/cjs/tests/integration/v3.config.js.map +1 -0
  514. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +4 -0
  515. package/dist/cjs/tests/integration/v3.dynamic.config.js +48 -0
  516. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +1 -0
  517. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +2 -0
  518. package/dist/cjs/tests/integration/v3.playwright.config.js +48 -0
  519. package/dist/cjs/tests/integration/v3.playwright.config.js.map +1 -0
  520. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +1 -0
  521. package/dist/cjs/tests/integration/wait-for-selector.spec.js +683 -0
  522. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +1 -0
  523. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  524. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +118 -0
  525. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +1 -0
  526. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  527. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +87 -0
  528. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  529. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +1 -0
  530. package/dist/cjs/tests/unit/agent-execution-model.test.js +128 -0
  531. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +1 -0
  532. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +1 -0
  533. package/dist/cjs/tests/unit/api-multiregion.test.js +58 -0
  534. package/dist/cjs/tests/unit/api-multiregion.test.js.map +1 -0
  535. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  536. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +102 -0
  537. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  538. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  539. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +186 -0
  540. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +1 -0
  541. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +1 -0
  542. package/dist/cjs/tests/unit/cdp-connection-close.test.js +74 -0
  543. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +1 -0
  544. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  545. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +58 -0
  546. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +1 -0
  547. package/dist/cjs/tests/unit/cookies.test.d.ts +1 -0
  548. package/dist/cjs/tests/unit/cookies.test.js +944 -0
  549. package/dist/cjs/tests/unit/cookies.test.js.map +1 -0
  550. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  551. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +29 -0
  552. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +1 -0
  553. package/dist/cjs/tests/unit/llm-provider.test.d.ts +1 -0
  554. package/dist/cjs/tests/unit/llm-provider.test.js +64 -0
  555. package/dist/cjs/tests/unit/llm-provider.test.js.map +1 -0
  556. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +1 -0
  557. package/dist/cjs/tests/unit/model-deprecation.test.js +142 -0
  558. package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -0
  559. package/dist/cjs/tests/unit/model-utils.test.d.ts +1 -0
  560. package/dist/cjs/tests/unit/model-utils.test.js +42 -0
  561. package/dist/cjs/tests/unit/model-utils.test.js.map +1 -0
  562. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  563. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
  564. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
  565. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +1 -0
  566. package/dist/cjs/tests/unit/page-snapshot.test.js +75 -0
  567. package/dist/cjs/tests/unit/page-snapshot.test.js.map +1 -0
  568. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +1 -0
  569. package/dist/cjs/tests/unit/public-api/export-surface.test.js +107 -0
  570. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +1 -0
  571. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  572. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +175 -0
  573. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  574. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  575. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +110 -0
  576. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +1 -0
  577. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +1 -0
  578. package/dist/cjs/tests/unit/public-api/public-types.test.js +99 -0
  579. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -0
  580. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  581. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +60 -0
  582. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  583. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  584. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +95 -0
  585. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +1 -0
  586. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  587. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +121 -0
  588. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  589. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  590. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +65 -0
  591. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  592. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +1 -0
  593. package/dist/cjs/tests/unit/public-api/v3-core.test.js +108 -0
  594. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +1 -0
  595. package/dist/cjs/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
  596. package/dist/cjs/tests/unit/rerender-missing-shadows.test.js +209 -0
  597. package/dist/cjs/tests/unit/rerender-missing-shadows.test.js.map +1 -0
  598. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +1 -0
  599. package/dist/cjs/tests/unit/safety-confirmation.test.js +110 -0
  600. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +1 -0
  601. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  602. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +330 -0
  603. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  604. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  605. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +286 -0
  606. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  607. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  608. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +394 -0
  609. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  610. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +1 -0
  611. package/dist/cjs/tests/unit/snapshot-cbor.test.js +204 -0
  612. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +1 -0
  613. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  614. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +220 -0
  615. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  616. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  617. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +107 -0
  618. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  619. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  620. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +89 -0
  621. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  622. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  623. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +335 -0
  624. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  625. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  626. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +84 -0
  627. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  628. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  629. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +74 -0
  630. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  631. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +1 -0
  632. package/dist/cjs/tests/unit/timeout-handlers.test.js +847 -0
  633. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +1 -0
  634. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +1 -0
  635. package/dist/cjs/tests/unit/understudy-command-exception.test.js +57 -0
  636. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +1 -0
  637. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +1 -0
  638. package/dist/cjs/tests/unit/xpath-parser.test.js +311 -0
  639. package/dist/cjs/tests/unit/xpath-parser.test.js.map +1 -0
  640. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +1 -0
  641. package/dist/cjs/tests/unit/xpath-resolver.test.js +80 -0
  642. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +1 -0
  643. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  644. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +149 -0
  645. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  646. package/dist/esm/index.d.ts +1 -2
  647. package/dist/esm/index.js +1 -2
  648. package/dist/esm/lib/inference.js +5 -8
  649. package/dist/esm/lib/inference.js.map +1 -1
  650. package/dist/esm/lib/modelUtils.d.ts +1 -0
  651. package/dist/esm/lib/modelUtils.js.map +1 -1
  652. package/dist/esm/lib/prompt.d.ts +3 -2
  653. package/dist/esm/lib/prompt.js.map +1 -1
  654. package/dist/esm/lib/v3/agent/AgentProvider.js +1 -1
  655. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  656. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +17 -2
  657. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  658. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +4 -4
  659. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
  660. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
  661. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +24 -1
  662. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -1
  663. package/dist/esm/lib/v3/agent/tools/act.d.ts +2 -2
  664. package/dist/esm/lib/v3/agent/tools/act.js +66 -44
  665. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
  666. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  667. package/dist/esm/lib/v3/agent/tools/ariaTree.js +60 -22
  668. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
  669. package/dist/esm/lib/v3/agent/tools/click.js +23 -31
  670. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
  671. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
  672. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
  673. package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
  674. package/dist/esm/lib/v3/agent/tools/extract.js +16 -3
  675. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
  676. package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  677. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +109 -98
  678. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
  679. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +8 -2
  680. package/dist/esm/lib/v3/agent/tools/fillform.js +82 -52
  681. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
  682. package/dist/esm/lib/v3/agent/tools/index.d.ts +11 -1
  683. package/dist/esm/lib/v3/agent/tools/index.js +8 -7
  684. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
  685. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
  686. package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
  687. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
  688. package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
  689. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
  690. package/dist/esm/lib/v3/agent/tools/type.d.ts +2 -2
  691. package/dist/esm/lib/v3/agent/tools/type.js +80 -79
  692. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
  693. package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
  694. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
  695. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
  696. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
  697. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +8 -0
  698. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -1
  699. package/dist/esm/lib/v3/agent/utils/variables.d.ts +21 -0
  700. package/dist/esm/lib/v3/agent/utils/variables.js +48 -0
  701. package/dist/esm/lib/v3/agent/utils/variables.js.map +1 -0
  702. package/dist/esm/lib/v3/api.d.ts +23 -5
  703. package/dist/esm/lib/v3/api.js +74 -13
  704. package/dist/esm/lib/v3/api.js.map +1 -1
  705. package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
  706. package/dist/esm/lib/v3/cache/ActCache.js +2 -18
  707. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
  708. package/dist/esm/lib/v3/cache/AgentCache.d.ts +1 -0
  709. package/dist/esm/lib/v3/cache/AgentCache.js +18 -11
  710. package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
  711. package/dist/esm/lib/v3/handlers/actHandler.d.ts +2 -1
  712. package/dist/esm/lib/v3/handlers/actHandler.js +4 -4
  713. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
  714. package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
  715. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  716. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +0 -27
  717. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
  718. package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
  719. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  720. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +13 -16
  721. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  722. package/dist/esm/lib/v3/index.d.ts +143 -0
  723. package/dist/esm/lib/v3/index.js +41 -0
  724. package/dist/esm/lib/v3/index.js.map +1 -1
  725. package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
  726. package/dist/esm/lib/v3/launch/browserbase.js +4 -9
  727. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
  728. package/dist/esm/lib/v3/llm/LLMProvider.js +0 -5
  729. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  730. package/dist/esm/lib/v3/llm/OpenAIClient.js +2 -2
  731. package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -1
  732. package/dist/esm/lib/v3/mcp/connection.d.ts +2 -0
  733. package/dist/esm/lib/v3/mcp/connection.js +5 -2
  734. package/dist/esm/lib/v3/mcp/connection.js.map +1 -1
  735. package/dist/esm/lib/v3/runtimePaths.d.ts +6 -0
  736. package/dist/esm/lib/v3/runtimePaths.js +107 -0
  737. package/dist/esm/lib/v3/runtimePaths.js.map +1 -0
  738. package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
  739. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
  740. package/dist/esm/lib/v3/shutdown/supervisorClient.js +9 -14
  741. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
  742. package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
  743. package/dist/esm/lib/v3/timeoutConfig.js +5 -0
  744. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
  745. package/dist/esm/lib/v3/types/private/cache.d.ts +3 -0
  746. package/dist/esm/lib/v3/types/private/cache.js.map +1 -1
  747. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -1
  748. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  749. package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
  750. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
  751. package/dist/esm/lib/v3/types/public/agent.d.ts +60 -2
  752. package/dist/esm/lib/v3/types/public/agent.js +1 -1
  753. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  754. package/dist/esm/lib/v3/types/public/api.d.ts +17 -0
  755. package/dist/esm/lib/v3/types/public/api.js +3 -2
  756. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  757. package/dist/esm/lib/v3/types/public/context.d.ts +32 -0
  758. package/dist/esm/lib/v3/types/public/context.js +2 -0
  759. package/dist/esm/lib/v3/types/public/context.js.map +1 -0
  760. package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
  761. package/dist/esm/lib/v3/types/public/index.js +1 -0
  762. package/dist/esm/lib/v3/types/public/index.js.map +1 -1
  763. package/dist/esm/lib/v3/types/public/methods.d.ts +33 -2
  764. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  765. package/dist/esm/lib/v3/types/public/model.d.ts +4 -2
  766. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  767. package/dist/esm/lib/v3/types/public/options.d.ts +8 -0
  768. package/dist/esm/lib/v3/types/public/options.js.map +1 -1
  769. package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +13 -0
  770. package/dist/esm/lib/v3/types/public/sdkErrors.js +22 -0
  771. package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -1
  772. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  773. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +1 -1
  774. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -1
  775. package/dist/esm/lib/v3/understudy/cdp.d.ts +6 -1
  776. package/dist/esm/lib/v3/understudy/cdp.js +65 -7
  777. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
  778. package/dist/esm/lib/v3/understudy/context.d.ts +34 -0
  779. package/dist/esm/lib/v3/understudy/context.js +327 -67
  780. package/dist/esm/lib/v3/understudy/context.js.map +1 -1
  781. package/dist/esm/lib/v3/understudy/cookies.d.ts +32 -0
  782. package/dist/esm/lib/v3/understudy/cookies.js +136 -0
  783. package/dist/esm/lib/v3/understudy/cookies.js.map +1 -0
  784. package/dist/esm/lib/v3/understudy/deepLocator.js +1 -23
  785. package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -1
  786. package/dist/esm/lib/v3/understudy/frame.js +24 -7
  787. package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
  788. package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
  789. package/dist/esm/lib/v3/understudy/page.js +58 -5
  790. package/dist/esm/lib/v3/understudy/page.js.map +1 -1
  791. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  792. package/dist/esm/lib/v3/understudy/screenshotUtils.js +1 -19
  793. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
  794. package/dist/esm/lib/v3/understudy/selectorResolver.js +1 -1
  795. package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -1
  796. package/dist/esm/lib/v3/v3.js +59 -35
  797. package/dist/esm/lib/v3/v3.js.map +1 -1
  798. package/dist/esm/lib/version.d.ts +1 -1
  799. package/dist/esm/lib/version.js +1 -1
  800. package/dist/esm/lib/version.js.map +1 -1
  801. package/dist/esm/tests/cache-variables.test.d.ts +1 -0
  802. package/dist/esm/tests/cache-variables.test.js +219 -0
  803. package/dist/esm/tests/cache-variables.test.js.map +1 -0
  804. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +1 -0
  805. package/dist/esm/tests/integration/agent-abort-signal.spec.js +121 -0
  806. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +1 -0
  807. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +1 -0
  808. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +78 -0
  809. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  810. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +1 -0
  811. package/dist/esm/tests/integration/agent-callbacks.spec.js +383 -0
  812. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +1 -0
  813. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +1 -0
  814. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +360 -0
  815. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  816. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +1 -0
  817. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +260 -0
  818. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  819. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +1 -0
  820. package/dist/esm/tests/integration/agent-message-continuation.spec.js +110 -0
  821. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +1 -0
  822. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +1 -0
  823. package/dist/esm/tests/integration/agent-streaming.spec.js +138 -0
  824. package/dist/esm/tests/integration/agent-streaming.spec.js.map +1 -0
  825. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  826. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +39 -0
  827. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  828. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  829. package/dist/esm/tests/integration/cdp-connection-close.spec.js +74 -0
  830. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +1 -0
  831. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  832. package/dist/esm/tests/integration/cdp-session-detached.spec.js +43 -0
  833. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -0
  834. package/dist/esm/tests/integration/click-count.spec.d.ts +1 -0
  835. package/dist/esm/tests/integration/click-count.spec.js +161 -0
  836. package/dist/esm/tests/integration/click-count.spec.js.map +1 -0
  837. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  838. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +97 -0
  839. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  840. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +1 -0
  841. package/dist/esm/tests/integration/context-addInitScript.spec.js +283 -0
  842. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -0
  843. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  844. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +47 -0
  845. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  846. package/dist/esm/tests/integration/cookies.spec.d.ts +1 -0
  847. package/dist/esm/tests/integration/cookies.spec.js +185 -0
  848. package/dist/esm/tests/integration/cookies.spec.js.map +1 -0
  849. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +1 -0
  850. package/dist/esm/tests/integration/default-page-tracking.spec.js +50 -0
  851. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +1 -0
  852. package/dist/esm/tests/integration/downloads.spec.d.ts +1 -0
  853. package/dist/esm/tests/integration/downloads.spec.js +47 -0
  854. package/dist/esm/tests/integration/downloads.spec.js.map +1 -0
  855. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  856. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +55 -0
  857. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  858. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  859. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
  860. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  861. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  862. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +472 -0
  863. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  864. package/dist/esm/tests/integration/keep-alive.child.d.ts +1 -0
  865. package/dist/esm/tests/integration/keep-alive.child.js +83 -0
  866. package/dist/esm/tests/integration/keep-alive.child.js.map +1 -0
  867. package/dist/esm/tests/integration/keep-alive.spec.d.ts +22 -0
  868. package/dist/esm/tests/integration/keep-alive.spec.js +482 -0
  869. package/dist/esm/tests/integration/keep-alive.spec.js.map +1 -0
  870. package/dist/esm/tests/integration/keyboard.spec.d.ts +1 -0
  871. package/dist/esm/tests/integration/keyboard.spec.js +257 -0
  872. package/dist/esm/tests/integration/keyboard.spec.js.map +1 -0
  873. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  874. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +148 -0
  875. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  876. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +1 -0
  877. package/dist/esm/tests/integration/locator-content-methods.spec.js +178 -0
  878. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +1 -0
  879. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  880. package/dist/esm/tests/integration/locator-count-iframe.spec.js +127 -0
  881. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +1 -0
  882. package/dist/esm/tests/integration/locator-count.spec.d.ts +1 -0
  883. package/dist/esm/tests/integration/locator-count.spec.js +66 -0
  884. package/dist/esm/tests/integration/locator-count.spec.js.map +1 -0
  885. package/dist/esm/tests/integration/locator-fill.spec.d.ts +1 -0
  886. package/dist/esm/tests/integration/locator-fill.spec.js +115 -0
  887. package/dist/esm/tests/integration/locator-fill.spec.js.map +1 -0
  888. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +1 -0
  889. package/dist/esm/tests/integration/locator-input-methods.spec.js +125 -0
  890. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +1 -0
  891. package/dist/esm/tests/integration/locator-nth.spec.d.ts +1 -0
  892. package/dist/esm/tests/integration/locator-nth.spec.js +173 -0
  893. package/dist/esm/tests/integration/locator-nth.spec.js.map +1 -0
  894. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +1 -0
  895. package/dist/esm/tests/integration/locator-select-option.spec.js +214 -0
  896. package/dist/esm/tests/integration/locator-select-option.spec.js.map +1 -0
  897. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +1 -0
  898. package/dist/esm/tests/integration/logger-initialization.spec.js +595 -0
  899. package/dist/esm/tests/integration/logger-initialization.spec.js.map +1 -0
  900. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  901. package/dist/esm/tests/integration/multi-instance-logger.spec.js +291 -0
  902. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +1 -0
  903. package/dist/esm/tests/integration/nested-div.spec.d.ts +1 -0
  904. package/dist/esm/tests/integration/nested-div.spec.js +20 -0
  905. package/dist/esm/tests/integration/nested-div.spec.js.map +1 -0
  906. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +1 -0
  907. package/dist/esm/tests/integration/page-addInitScript.spec.js +92 -0
  908. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +1 -0
  909. package/dist/esm/tests/integration/page-console.spec.d.ts +1 -0
  910. package/dist/esm/tests/integration/page-console.spec.js +45 -0
  911. package/dist/esm/tests/integration/page-console.spec.js.map +1 -0
  912. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  913. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +435 -0
  914. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  915. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  916. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
  917. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  918. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +1 -0
  919. package/dist/esm/tests/integration/page-goto-response.spec.js +32 -0
  920. package/dist/esm/tests/integration/page-goto-response.spec.js.map +1 -0
  921. package/dist/esm/tests/integration/page-hover.spec.d.ts +1 -0
  922. package/dist/esm/tests/integration/page-hover.spec.js +163 -0
  923. package/dist/esm/tests/integration/page-hover.spec.js.map +1 -0
  924. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +1 -0
  925. package/dist/esm/tests/integration/page-screenshot.spec.js +257 -0
  926. package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -0
  927. package/dist/esm/tests/integration/page-scroll.spec.d.ts +1 -0
  928. package/dist/esm/tests/integration/page-scroll.spec.js +181 -0
  929. package/dist/esm/tests/integration/page-scroll.spec.js.map +1 -0
  930. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +1 -0
  931. package/dist/esm/tests/integration/page-send-cdp.spec.js +45 -0
  932. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +1 -0
  933. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  934. package/dist/esm/tests/integration/perform-understudy-method.spec.js +61 -0
  935. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +1 -0
  936. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +1 -0
  937. package/dist/esm/tests/integration/setinputfiles.spec.js +128 -0
  938. package/dist/esm/tests/integration/setinputfiles.spec.js.map +1 -0
  939. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  940. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +156 -0
  941. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  942. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  943. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +155 -0
  944. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  945. package/dist/esm/tests/integration/testUtils.d.ts +7 -0
  946. package/dist/esm/tests/integration/testUtils.js +40 -0
  947. package/dist/esm/tests/integration/testUtils.js.map +1 -0
  948. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  949. package/dist/esm/tests/integration/text-selector-innermost.spec.js +103 -0
  950. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +1 -0
  951. package/dist/esm/tests/integration/timeouts.spec.d.ts +1 -0
  952. package/dist/esm/tests/integration/timeouts.spec.js +195 -0
  953. package/dist/esm/tests/integration/timeouts.spec.js.map +1 -0
  954. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +1 -0
  955. package/dist/esm/tests/integration/user-data-dir.spec.js +42 -0
  956. package/dist/esm/tests/integration/user-data-dir.spec.js.map +1 -0
  957. package/dist/esm/tests/integration/v3.config.d.ts +4 -0
  958. package/dist/esm/tests/integration/v3.config.js +7 -0
  959. package/dist/esm/tests/integration/v3.config.js.map +1 -0
  960. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +4 -0
  961. package/dist/esm/tests/integration/v3.dynamic.config.js +44 -0
  962. package/dist/esm/tests/integration/v3.dynamic.config.js.map +1 -0
  963. package/dist/esm/tests/integration/v3.playwright.config.d.ts +2 -0
  964. package/dist/esm/tests/integration/v3.playwright.config.js +46 -0
  965. package/dist/esm/tests/integration/v3.playwright.config.js.map +1 -0
  966. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +1 -0
  967. package/dist/esm/tests/integration/wait-for-selector.spec.js +681 -0
  968. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +1 -0
  969. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  970. package/dist/esm/tests/integration/wait-for-timeout.spec.js +116 -0
  971. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +1 -0
  972. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  973. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +85 -0
  974. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  975. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +1 -0
  976. package/dist/esm/tests/unit/agent-execution-model.test.js +126 -0
  977. package/dist/esm/tests/unit/agent-execution-model.test.js.map +1 -0
  978. package/dist/esm/tests/unit/api-multiregion.test.d.ts +1 -0
  979. package/dist/esm/tests/unit/api-multiregion.test.js +56 -0
  980. package/dist/esm/tests/unit/api-multiregion.test.js.map +1 -0
  981. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  982. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +100 -0
  983. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  984. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  985. package/dist/esm/tests/unit/cache-llm-resolution.test.js +184 -0
  986. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +1 -0
  987. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +1 -0
  988. package/dist/esm/tests/unit/cdp-connection-close.test.js +72 -0
  989. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +1 -0
  990. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  991. package/dist/esm/tests/unit/context-extra-http-headers.test.js +56 -0
  992. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +1 -0
  993. package/dist/esm/tests/unit/cookies.test.d.ts +1 -0
  994. package/dist/esm/tests/unit/cookies.test.js +909 -0
  995. package/dist/esm/tests/unit/cookies.test.js.map +1 -0
  996. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  997. package/dist/esm/tests/unit/helpers/mockCDPSession.js +25 -0
  998. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +1 -0
  999. package/dist/esm/tests/unit/llm-provider.test.d.ts +1 -0
  1000. package/dist/esm/tests/unit/llm-provider.test.js +62 -0
  1001. package/dist/esm/tests/unit/llm-provider.test.js.map +1 -0
  1002. package/dist/esm/tests/unit/model-deprecation.test.d.ts +1 -0
  1003. package/dist/esm/tests/unit/model-deprecation.test.js +140 -0
  1004. package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -0
  1005. package/dist/esm/tests/unit/model-utils.test.d.ts +1 -0
  1006. package/dist/esm/tests/unit/model-utils.test.js +40 -0
  1007. package/dist/esm/tests/unit/model-utils.test.js.map +1 -0
  1008. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  1009. package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
  1010. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
  1011. package/dist/esm/tests/unit/page-snapshot.test.d.ts +1 -0
  1012. package/dist/esm/tests/unit/page-snapshot.test.js +40 -0
  1013. package/dist/esm/tests/unit/page-snapshot.test.js.map +1 -0
  1014. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +1 -0
  1015. package/dist/esm/tests/unit/public-api/export-surface.test.js +72 -0
  1016. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +1 -0
  1017. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  1018. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +140 -0
  1019. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  1020. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  1021. package/dist/esm/tests/unit/public-api/public-error-types.test.js +74 -0
  1022. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +1 -0
  1023. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +1 -0
  1024. package/dist/esm/tests/unit/public-api/public-types.test.js +97 -0
  1025. package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -0
  1026. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  1027. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +25 -0
  1028. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  1029. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  1030. package/dist/esm/tests/unit/public-api/schema-utils.test.js +60 -0
  1031. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +1 -0
  1032. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  1033. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +86 -0
  1034. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  1035. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  1036. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +30 -0
  1037. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  1038. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +1 -0
  1039. package/dist/esm/tests/unit/public-api/v3-core.test.js +73 -0
  1040. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +1 -0
  1041. package/dist/esm/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
  1042. package/dist/esm/tests/unit/rerender-missing-shadows.test.js +207 -0
  1043. package/dist/esm/tests/unit/rerender-missing-shadows.test.js.map +1 -0
  1044. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +1 -0
  1045. package/dist/esm/tests/unit/safety-confirmation.test.js +108 -0
  1046. package/dist/esm/tests/unit/safety-confirmation.test.js.map +1 -0
  1047. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  1048. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +295 -0
  1049. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  1050. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  1051. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +284 -0
  1052. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  1053. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  1054. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +359 -0
  1055. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  1056. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +1 -0
  1057. package/dist/esm/tests/unit/snapshot-cbor.test.js +202 -0
  1058. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +1 -0
  1059. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  1060. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +218 -0
  1061. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  1062. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  1063. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +105 -0
  1064. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  1065. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  1066. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +87 -0
  1067. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  1068. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  1069. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +333 -0
  1070. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  1071. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  1072. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +82 -0
  1073. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  1074. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  1075. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +72 -0
  1076. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  1077. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +1 -0
  1078. package/dist/esm/tests/unit/timeout-handlers.test.js +812 -0
  1079. package/dist/esm/tests/unit/timeout-handlers.test.js.map +1 -0
  1080. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +1 -0
  1081. package/dist/esm/tests/unit/understudy-command-exception.test.js +55 -0
  1082. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +1 -0
  1083. package/dist/esm/tests/unit/xpath-parser.test.d.ts +1 -0
  1084. package/dist/esm/tests/unit/xpath-parser.test.js +309 -0
  1085. package/dist/esm/tests/unit/xpath-parser.test.js.map +1 -0
  1086. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +1 -0
  1087. package/dist/esm/tests/unit/xpath-resolver.test.js +78 -0
  1088. package/dist/esm/tests/unit/xpath-resolver.test.js.map +1 -0
  1089. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  1090. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +114 -0
  1091. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  1092. package/package.json +19 -8
  1093. package/dist/cjs/cli.js.map +0 -7
  1094. package/dist/cjs/index.js.map +0 -7
  1095. package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1096. package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
  1097. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1098. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1099. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +0 -102
  1100. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1101. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1102. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1103. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +0 -354
  1104. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1105. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1106. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1107. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1108. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1109. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +0 -126
  1110. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1111. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1112. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1113. package/dist/cjs/lib/v3/tests/click-count.spec.js +0 -147
  1114. package/dist/cjs/lib/v3/tests/click-count.spec.js.map +0 -7
  1115. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1116. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1117. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1118. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1119. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1120. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1121. package/dist/cjs/lib/v3/tests/downloads.spec.js +0 -80
  1122. package/dist/cjs/lib/v3/tests/downloads.spec.js.map +0 -7
  1123. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1124. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1125. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1126. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1127. package/dist/cjs/lib/v3/tests/keep-alive.child.js +0 -92
  1128. package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +0 -7
  1129. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +0 -568
  1130. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1131. package/dist/cjs/lib/v3/tests/keep-alive.spec.js +0 -15
  1132. package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1133. package/dist/cjs/lib/v3/tests/keyboard.spec.js +0 -296
  1134. package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +0 -7
  1135. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1136. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1137. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1138. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1139. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1140. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1141. package/dist/cjs/lib/v3/tests/locator-count.spec.js +0 -71
  1142. package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +0 -7
  1143. package/dist/cjs/lib/v3/tests/locator-fill.spec.js +0 -119
  1144. package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1145. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1146. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1147. package/dist/cjs/lib/v3/tests/locator-nth.spec.js +0 -157
  1148. package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1149. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +0 -243
  1150. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1151. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +0 -547
  1152. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1153. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1154. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1155. package/dist/cjs/lib/v3/tests/nested-div.spec.js +0 -23
  1156. package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +0 -7
  1157. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1158. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1159. package/dist/cjs/lib/v3/tests/page-console.spec.js +0 -56
  1160. package/dist/cjs/lib/v3/tests/page-console.spec.js.map +0 -7
  1161. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1162. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1163. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +0 -35
  1164. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1165. package/dist/cjs/lib/v3/tests/page-hover.spec.js +0 -167
  1166. package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +0 -7
  1167. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +0 -295
  1168. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1169. package/dist/cjs/lib/v3/tests/page-scroll.spec.js +0 -182
  1170. package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1171. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1172. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1173. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1174. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1175. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +0 -148
  1176. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1177. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -156
  1178. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1179. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +0 -156
  1180. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1181. package/dist/cjs/lib/v3/tests/testUtils.js +0 -54
  1182. package/dist/cjs/lib/v3/tests/testUtils.js.map +0 -7
  1183. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1184. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1185. package/dist/cjs/lib/v3/tests/timeouts.spec.js +0 -32
  1186. package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +0 -7
  1187. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +0 -65
  1188. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1189. package/dist/cjs/lib/v3/tests/v3.config.js +0 -36
  1190. package/dist/cjs/lib/v3/tests/v3.config.js.map +0 -7
  1191. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +0 -67
  1192. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1193. package/dist/cjs/lib/v3/tests/v3.playwright.config.js +0 -61
  1194. package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1195. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1196. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1197. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1198. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1199. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1200. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1201. package/dist/cjs/tests/agent-execution-model.test.js +0 -139
  1202. package/dist/cjs/tests/agent-execution-model.test.js.map +0 -7
  1203. package/dist/cjs/tests/api-multiregion.test.js +0 -73
  1204. package/dist/cjs/tests/api-multiregion.test.js.map +0 -7
  1205. package/dist/cjs/tests/browserbase-session-accessors.test.js +0 -101
  1206. package/dist/cjs/tests/browserbase-session-accessors.test.js.map +0 -7
  1207. package/dist/cjs/tests/cache-llm-resolution.test.js +0 -187
  1208. package/dist/cjs/tests/cache-llm-resolution.test.js.map +0 -7
  1209. package/dist/cjs/tests/helpers/mockCDPSession.js +0 -50
  1210. package/dist/cjs/tests/helpers/mockCDPSession.js.map +0 -7
  1211. package/dist/cjs/tests/llm-provider.test.js +0 -57
  1212. package/dist/cjs/tests/llm-provider.test.js.map +0 -7
  1213. package/dist/cjs/tests/model-deprecation.test.js +0 -132
  1214. package/dist/cjs/tests/model-deprecation.test.js.map +0 -7
  1215. package/dist/cjs/tests/model-utils.test.js +0 -43
  1216. package/dist/cjs/tests/model-utils.test.js.map +0 -7
  1217. package/dist/cjs/tests/page-snapshot.test.js +0 -58
  1218. package/dist/cjs/tests/page-snapshot.test.js.map +0 -7
  1219. package/dist/cjs/tests/public-api/export-surface.test.js +0 -77
  1220. package/dist/cjs/tests/public-api/export-surface.test.js.map +0 -7
  1221. package/dist/cjs/tests/public-api/llm-and-agents.test.js +0 -151
  1222. package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +0 -7
  1223. package/dist/cjs/tests/public-api/public-error-types.test.js +0 -106
  1224. package/dist/cjs/tests/public-api/public-error-types.test.js.map +0 -7
  1225. package/dist/cjs/tests/public-api/public-types.test.js +0 -74
  1226. package/dist/cjs/tests/public-api/public-types.test.js.map +0 -7
  1227. package/dist/cjs/tests/public-api/runtime-utils.test.js +0 -53
  1228. package/dist/cjs/tests/public-api/runtime-utils.test.js.map +0 -7
  1229. package/dist/cjs/tests/public-api/schema-utils.test.js +0 -100
  1230. package/dist/cjs/tests/public-api/schema-utils.test.js.map +0 -7
  1231. package/dist/cjs/tests/public-api/timeout-error-types.test.js +0 -103
  1232. package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +0 -7
  1233. package/dist/cjs/tests/public-api/tool-type-export.test.js +0 -47
  1234. package/dist/cjs/tests/public-api/tool-type-export.test.js.map +0 -7
  1235. package/dist/cjs/tests/public-api/v3-core.test.js +0 -105
  1236. package/dist/cjs/tests/public-api/v3-core.test.js.map +0 -7
  1237. package/dist/cjs/tests/safety-confirmation.test.js +0 -134
  1238. package/dist/cjs/tests/safety-confirmation.test.js.map +0 -7
  1239. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +0 -370
  1240. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1241. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +0 -294
  1242. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1243. package/dist/cjs/tests/snapshot-capture-orchestration.test.js +0 -405
  1244. package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1245. package/dist/cjs/tests/snapshot-cbor.test.js +0 -197
  1246. package/dist/cjs/tests/snapshot-cbor.test.js.map +0 -7
  1247. package/dist/cjs/tests/snapshot-dom-session-builders.test.js +0 -246
  1248. package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1249. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +0 -104
  1250. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1251. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +0 -45
  1252. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1253. package/dist/cjs/tests/snapshot-frame-merge.test.js +0 -388
  1254. package/dist/cjs/tests/snapshot-frame-merge.test.js.map +0 -7
  1255. package/dist/cjs/tests/snapshot-tree-format-utils.test.js +0 -106
  1256. package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1257. package/dist/cjs/tests/snapshot-xpath-utils.test.js +0 -74
  1258. package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +0 -7
  1259. package/dist/cjs/tests/timeout-handlers.test.js +0 -864
  1260. package/dist/cjs/tests/timeout-handlers.test.js.map +0 -7
  1261. package/dist/cjs/tests/understudy-command-exception.test.js +0 -52
  1262. package/dist/cjs/tests/understudy-command-exception.test.js.map +0 -7
  1263. package/dist/cjs/tests/xpath-parser.test.js +0 -314
  1264. package/dist/cjs/tests/xpath-parser.test.js.map +0 -7
  1265. package/dist/cjs/tests/xpath-resolver.test.js +0 -70
  1266. package/dist/cjs/tests/xpath-resolver.test.js.map +0 -7
  1267. package/dist/cjs/tests/zod-enum-compatibility.test.js +0 -119
  1268. package/dist/cjs/tests/zod-enum-compatibility.test.js.map +0 -7
  1269. package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1270. package/dist/esm/lib/v3/dom/build/rerender-index.js.map +0 -1
  1271. package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
  1272. package/dist/esm/lib/v3/dom/build/v3-index.js.map +0 -1
  1273. package/dist/esm/lib/v3/dom/genA11yScripts.js +0 -54
  1274. package/dist/esm/lib/v3/dom/genA11yScripts.js.map +0 -1
  1275. package/dist/esm/lib/v3/dom/genDomScripts.js +0 -38
  1276. package/dist/esm/lib/v3/dom/genDomScripts.js.map +0 -1
  1277. package/dist/esm/lib/v3/dom/genLocatorScripts.js +0 -51
  1278. package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +0 -1
  1279. package/dist/esm/lib/v3/dom/genScreenshotScripts.js +0 -37
  1280. package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +0 -1
  1281. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1282. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1283. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +0 -80
  1284. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1285. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1286. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1287. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +0 -357
  1288. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1289. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1290. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1291. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1292. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1293. package/dist/esm/lib/v3/tests/agent-streaming.spec.js +0 -126
  1294. package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1295. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1296. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1297. package/dist/esm/lib/v3/tests/click-count.spec.js +0 -147
  1298. package/dist/esm/lib/v3/tests/click-count.spec.js.map +0 -7
  1299. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1300. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1301. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1302. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1303. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1304. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1305. package/dist/esm/lib/v3/tests/downloads.spec.js +0 -58
  1306. package/dist/esm/lib/v3/tests/downloads.spec.js.map +0 -7
  1307. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1308. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1309. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1310. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1311. package/dist/esm/lib/v3/tests/keep-alive.child.js +0 -92
  1312. package/dist/esm/lib/v3/tests/keep-alive.child.js.map +0 -7
  1313. package/dist/esm/lib/v3/tests/keep-alive.helpers.js +0 -532
  1314. package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1315. package/dist/esm/lib/v3/tests/keep-alive.spec.js +0 -19
  1316. package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1317. package/dist/esm/lib/v3/tests/keyboard.spec.js +0 -296
  1318. package/dist/esm/lib/v3/tests/keyboard.spec.js.map +0 -7
  1319. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1320. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1321. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1322. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1323. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1324. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1325. package/dist/esm/lib/v3/tests/locator-count.spec.js +0 -71
  1326. package/dist/esm/lib/v3/tests/locator-count.spec.js.map +0 -7
  1327. package/dist/esm/lib/v3/tests/locator-fill.spec.js +0 -119
  1328. package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1329. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1330. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1331. package/dist/esm/lib/v3/tests/locator-nth.spec.js +0 -157
  1332. package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1333. package/dist/esm/lib/v3/tests/locator-select-option.spec.js +0 -243
  1334. package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1335. package/dist/esm/lib/v3/tests/logger-initialization.spec.js +0 -552
  1336. package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1337. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1338. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1339. package/dist/esm/lib/v3/tests/nested-div.spec.js +0 -23
  1340. package/dist/esm/lib/v3/tests/nested-div.spec.js.map +0 -7
  1341. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1342. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1343. package/dist/esm/lib/v3/tests/page-console.spec.js +0 -56
  1344. package/dist/esm/lib/v3/tests/page-console.spec.js.map +0 -7
  1345. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1346. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1347. package/dist/esm/lib/v3/tests/page-goto-response.spec.js +0 -35
  1348. package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1349. package/dist/esm/lib/v3/tests/page-hover.spec.js +0 -167
  1350. package/dist/esm/lib/v3/tests/page-hover.spec.js.map +0 -7
  1351. package/dist/esm/lib/v3/tests/page-screenshot.spec.js +0 -273
  1352. package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1353. package/dist/esm/lib/v3/tests/page-scroll.spec.js +0 -182
  1354. package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1355. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1356. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1357. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1358. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1359. package/dist/esm/lib/v3/tests/setinputfiles.spec.js +0 -126
  1360. package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1361. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -134
  1362. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1363. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +0 -134
  1364. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1365. package/dist/esm/lib/v3/tests/testUtils.js +0 -31
  1366. package/dist/esm/lib/v3/tests/testUtils.js.map +0 -7
  1367. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1368. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1369. package/dist/esm/lib/v3/tests/timeouts.spec.js +0 -32
  1370. package/dist/esm/lib/v3/tests/timeouts.spec.js.map +0 -7
  1371. package/dist/esm/lib/v3/tests/user-data-dir.spec.js +0 -43
  1372. package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1373. package/dist/esm/lib/v3/tests/v3.config.js +0 -15
  1374. package/dist/esm/lib/v3/tests/v3.config.js.map +0 -7
  1375. package/dist/esm/lib/v3/tests/v3.dynamic.config.js +0 -43
  1376. package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1377. package/dist/esm/lib/v3/tests/v3.playwright.config.js +0 -41
  1378. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1379. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1380. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1381. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1382. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1383. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1384. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1385. package/dist/esm/tests/agent-execution-model.test.js +0 -139
  1386. package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
  1387. package/dist/esm/tests/api-multiregion.test.js +0 -73
  1388. package/dist/esm/tests/api-multiregion.test.js.map +0 -7
  1389. package/dist/esm/tests/browserbase-session-accessors.test.js +0 -101
  1390. package/dist/esm/tests/browserbase-session-accessors.test.js.map +0 -7
  1391. package/dist/esm/tests/cache-llm-resolution.test.js +0 -187
  1392. package/dist/esm/tests/cache-llm-resolution.test.js.map +0 -7
  1393. package/dist/esm/tests/helpers/mockCDPSession.js +0 -27
  1394. package/dist/esm/tests/helpers/mockCDPSession.js.map +0 -7
  1395. package/dist/esm/tests/llm-provider.test.js +0 -57
  1396. package/dist/esm/tests/llm-provider.test.js.map +0 -7
  1397. package/dist/esm/tests/model-deprecation.test.js +0 -135
  1398. package/dist/esm/tests/model-deprecation.test.js.map +0 -7
  1399. package/dist/esm/tests/model-utils.test.js +0 -43
  1400. package/dist/esm/tests/model-utils.test.js.map +0 -7
  1401. package/dist/esm/tests/page-snapshot.test.js +0 -36
  1402. package/dist/esm/tests/page-snapshot.test.js.map +0 -7
  1403. package/dist/esm/tests/public-api/export-surface.test.js +0 -55
  1404. package/dist/esm/tests/public-api/export-surface.test.js.map +0 -7
  1405. package/dist/esm/tests/public-api/llm-and-agents.test.js +0 -129
  1406. package/dist/esm/tests/public-api/llm-and-agents.test.js.map +0 -7
  1407. package/dist/esm/tests/public-api/public-error-types.test.js +0 -73
  1408. package/dist/esm/tests/public-api/public-error-types.test.js.map +0 -7
  1409. package/dist/esm/tests/public-api/public-types.test.js +0 -74
  1410. package/dist/esm/tests/public-api/public-types.test.js.map +0 -7
  1411. package/dist/esm/tests/public-api/runtime-utils.test.js +0 -31
  1412. package/dist/esm/tests/public-api/runtime-utils.test.js.map +0 -7
  1413. package/dist/esm/tests/public-api/schema-utils.test.js +0 -78
  1414. package/dist/esm/tests/public-api/schema-utils.test.js.map +0 -7
  1415. package/dist/esm/tests/public-api/timeout-error-types.test.js +0 -81
  1416. package/dist/esm/tests/public-api/timeout-error-types.test.js.map +0 -7
  1417. package/dist/esm/tests/public-api/tool-type-export.test.js +0 -25
  1418. package/dist/esm/tests/public-api/tool-type-export.test.js.map +0 -7
  1419. package/dist/esm/tests/public-api/v3-core.test.js +0 -83
  1420. package/dist/esm/tests/public-api/v3-core.test.js.map +0 -7
  1421. package/dist/esm/tests/safety-confirmation.test.js +0 -134
  1422. package/dist/esm/tests/safety-confirmation.test.js.map +0 -7
  1423. package/dist/esm/tests/snapshot-a11y-resolvers.test.js +0 -348
  1424. package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1425. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +0 -300
  1426. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1427. package/dist/esm/tests/snapshot-capture-orchestration.test.js +0 -383
  1428. package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1429. package/dist/esm/tests/snapshot-cbor.test.js +0 -197
  1430. package/dist/esm/tests/snapshot-cbor.test.js.map +0 -7
  1431. package/dist/esm/tests/snapshot-dom-session-builders.test.js +0 -251
  1432. package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1433. package/dist/esm/tests/snapshot-dom-tree-utils.test.js +0 -109
  1434. package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1435. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +0 -49
  1436. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1437. package/dist/esm/tests/snapshot-frame-merge.test.js +0 -391
  1438. package/dist/esm/tests/snapshot-frame-merge.test.js.map +0 -7
  1439. package/dist/esm/tests/snapshot-tree-format-utils.test.js +0 -113
  1440. package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1441. package/dist/esm/tests/snapshot-xpath-utils.test.js +0 -79
  1442. package/dist/esm/tests/snapshot-xpath-utils.test.js.map +0 -7
  1443. package/dist/esm/tests/timeout-handlers.test.js +0 -850
  1444. package/dist/esm/tests/timeout-handlers.test.js.map +0 -7
  1445. package/dist/esm/tests/understudy-command-exception.test.js +0 -55
  1446. package/dist/esm/tests/understudy-command-exception.test.js.map +0 -7
  1447. package/dist/esm/tests/xpath-parser.test.js +0 -317
  1448. package/dist/esm/tests/xpath-parser.test.js.map +0 -7
  1449. package/dist/esm/tests/xpath-resolver.test.js +0 -73
  1450. package/dist/esm/tests/xpath-resolver.test.js.map +0 -7
  1451. package/dist/esm/tests/zod-enum-compatibility.test.js +0 -97
  1452. package/dist/esm/tests/zod-enum-compatibility.test.js.map +0 -7
  1453. /package/dist/cjs/{lib/v3/dom/genA11yScripts.d.ts → tests/cache-variables.test.d.ts} +0 -0
  1454. /package/dist/cjs/{lib/v3/dom/genDomScripts.d.ts → tests/integration/agent-abort-signal.spec.d.ts} +0 -0
  1455. /package/dist/cjs/{lib/v3/dom/genLocatorScripts.d.ts → tests/integration/agent-cache-self-heal.spec.d.ts} +0 -0
  1456. /package/dist/cjs/{lib/v3/dom/genScreenshotScripts.d.ts → tests/integration/agent-callbacks.spec.d.ts} +0 -0
  1457. /package/dist/{esm/lib/v3/dom/genA11yScripts.d.ts → cjs/tests/integration/agent-experimental-validation.spec.d.ts} +0 -0
  1458. /package/dist/{esm/lib/v3/dom/genDomScripts.d.ts → cjs/tests/integration/agent-hybrid-mode.spec.d.ts} +0 -0
  1459. /package/dist/{esm/lib/v3/dom/genLocatorScripts.d.ts → cjs/tests/integration/agent-message-continuation.spec.d.ts} +0 -0
  1460. /package/dist/{esm/lib/v3/dom/genScreenshotScripts.d.ts → cjs/tests/integration/agent-streaming.spec.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/page.ts"],"names":[],"mappings":"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","sourcesContent":["import { Protocol } from \"devtools-protocol\";\nimport { promises as fs } from \"fs\";\nimport { v3Logger } from \"../logger.js\";\nimport { logAction } from \"../flowLogger.js\";\nimport type { CDPSessionLike } from \"./cdp.js\";\nimport { CdpConnection } from \"./cdp.js\";\nimport { Frame } from \"./frame.js\";\nimport { FrameLocator } from \"./frameLocator.js\";\nimport { deepLocatorFromPage, resolveLocatorTarget } from \"./deepLocator.js\";\nimport {\n captureHybridSnapshot,\n resolveXpathForLocation,\n} from \"./a11y/snapshot/index.js\";\nimport { FrameRegistry } from \"./frameRegistry.js\";\nimport { executionContexts } from \"./executionContextRegistry.js\";\nimport {\n LoadState,\n SnapshotResult,\n PageSnapshotOptions,\n} from \"../types/public/page.js\";\nimport { NetworkManager } from \"./networkManager.js\";\nimport { LifecycleWatcher } from \"./lifecycleWatcher.js\";\nimport { NavigationResponseTracker } from \"./navigationResponseTracker.js\";\nimport { Response, isSerializableResponse } from \"./response.js\";\nimport { ConsoleMessage, ConsoleListener } from \"./consoleMessage.js\";\nimport type { StagehandAPIClient } from \"../api.js\";\nimport {\n LocalBrowserLaunchOptions,\n StagehandSetExtraHTTPHeadersError,\n StagehandSnapshotError,\n} from \"../types/public/index.js\";\nimport type { Locator } from \"./locator.js\";\nimport {\n StagehandInvalidArgumentError,\n StagehandEvalError,\n} from \"../types/public/sdkErrors.js\";\nimport { normalizeInitScriptSource } from \"./initScripts.js\";\nimport { buildLocatorInvocation } from \"./locatorInvocation.js\";\nimport type {\n ScreenshotAnimationsOption,\n ScreenshotCaretOption,\n ScreenshotOptions,\n ScreenshotScaleOption,\n} from \"../types/public/screenshotTypes.js\";\nimport {\n applyMaskOverlays,\n applyStyleToFrames,\n collectFramesForScreenshot,\n computeScreenshotScale,\n disableAnimations,\n hideCaret,\n normalizeScreenshotClip,\n runScreenshotCleanups,\n setTransparentBackground,\n type ScreenshotCleanup,\n} from \"./screenshotUtils.js\";\nimport { InitScriptSource } from \"../types/private/index.js\";\nimport { withTimeout } from \"../timeoutConfig.js\";\n\n/**\n * Page\n *\n * One instance per **top-level target**. It owns:\n * - the top-level CDP session (for the page target)\n * - all adopted OOPIF child sessions (Target.attachToTarget with flatten: true)\n * - a **FrameRegistry** that is the single source of truth for BOTH:\n * • frame topology (parent/children, root swaps, last-seen CDP Frame)\n * • frame → session ownership (which session owns which frameId)\n *\n * Page exposes convenient APIs (goto/reload/url/screenshot/locator),\n * and simple bridges that Context uses to feed Page/Target events in.\n */\n\nconst LIFECYCLE_NAME: Record<LoadState, string> = {\n load: \"load\",\n domcontentloaded: \"DOMContentLoaded\",\n networkidle: \"networkIdle\",\n};\n\nexport class Page {\n /** Every CDP child session this page owns (top-level + adopted OOPIF sessions). */\n private readonly sessions = new Map<string, CDPSessionLike>(); // sessionId -> session\n\n /** Unified truth for frame topology + ownership. */\n private readonly registry: FrameRegistry;\n\n /** A convenience wrapper bound to the current main frame id (top-level session). */\n private mainFrameWrapper: Frame;\n\n /** Compact ordinal per frameId (used by snapshot encoding). */\n private frameOrdinals = new Map<string, number>();\n private nextOrdinal = 0;\n\n /** cache Frames per frameId so everyone uses the same one */\n private readonly frameCache = new Map<string, Frame>();\n private readonly browserIsRemote: boolean;\n\n /** Stable id for Frames created by this Page (use top-level TargetId). */\n private readonly pageId: string;\n /** Cached current URL for synchronous page.url() */\n private _currentUrl: string = \"about:blank\";\n\n private navigationCommandSeq = 0;\n private latestNavigationCommandId = 0;\n\n private readonly networkManager: NetworkManager;\n /** Optional API client for routing page operations to the API */\n private readonly apiClient: StagehandAPIClient | null = null;\n private readonly consoleListeners = new Set<ConsoleListener>();\n private readonly consoleHandlers = new Map<\n string,\n (evt: Protocol.Runtime.ConsoleAPICalledEvent) => void\n >();\n /** Document-start scripts installed across every session this page owns. */\n private readonly initScripts: string[] = [];\n private extraHTTPHeaders: Record<string, string>;\n\n private constructor(\n private readonly conn: CdpConnection,\n private readonly mainSession: CDPSessionLike,\n private readonly _targetId: string,\n mainFrameId: string,\n apiClient?: StagehandAPIClient | null,\n browserIsRemote = false,\n ) {\n this.pageId = _targetId;\n this.apiClient = apiClient ?? null;\n this.browserIsRemote = browserIsRemote;\n\n // own the main session\n if (mainSession.id) this.sessions.set(mainSession.id, mainSession);\n\n // initialize registry with root/main frame id\n this.registry = new FrameRegistry(_targetId, mainFrameId);\n\n // main-frame wrapper is always bound to the **top-level** session\n this.mainFrameWrapper = new Frame(\n this.mainSession,\n mainFrameId,\n this.pageId,\n this.browserIsRemote,\n );\n\n this.networkManager = new NetworkManager();\n this.networkManager.trackSession(this.mainSession);\n }\n\n // Send a single init script to a specific CDP session.\n private async installInitScriptOnSession(\n session: CDPSessionLike,\n source: string,\n ): Promise<void> {\n await session.send(\"Page.addScriptToEvaluateOnNewDocument\", {\n source: source,\n });\n }\n\n // Replay every previously registered init script onto a newly adopted session.\n private async applyInitScriptsToSession(\n session: CDPSessionLike,\n ): Promise<void> {\n for (const source of this.initScripts) {\n await this.installInitScriptOnSession(session, source);\n }\n }\n\n // Register a new init script and fan it out to all active sessions for this page.\n public async registerInitScript(source: string): Promise<void> {\n if (this.initScripts.includes(source)) return;\n this.initScripts.push(source);\n\n const installs: Array<Promise<void>> = [];\n installs.push(this.installInitScriptOnSession(this.mainSession, source));\n for (const session of this.sessions.values()) {\n if (session === this.mainSession) continue;\n installs.push(this.installInitScriptOnSession(session, source));\n }\n await Promise.all(installs);\n }\n\n // Seed an init script without re-installing it on the current sessions.\n public seedInitScript(source: string): void {\n if (this.initScripts.includes(source)) return;\n this.initScripts.push(source);\n }\n\n // --- Optional visual cursor overlay management ---\n private cursorEnabled = false;\n private async ensureCursorScript(): Promise<void> {\n const script = `(() => {\n const ID = '__v3_cursor_overlay__';\n const state = { el: null, last: null };\n // Expose API early so move() calls before install are buffered\n try {\n if (!window.__v3Cursor || !window.__v3Cursor.__installed) {\n const api = {\n __installed: false,\n move(x, y) {\n if (state.el) {\n state.el.style.left = Math.max(0, x) + 'px';\n state.el.style.top = Math.max(0, y) + 'px';\n } else {\n state.last = [x, y];\n }\n },\n show() { if (state.el) state.el.style.display = 'block'; },\n hide() { if (state.el) state.el.style.display = 'none'; },\n };\n window.__v3Cursor = api;\n }\n } catch {}\n\n function install() {\n try {\n if (state.el) return; // already installed\n let el = document.getElementById(ID);\n if (!el) {\n const root = document.documentElement || document.body || document.head;\n if (!root) { setTimeout(install, 50); return; }\n el = document.createElement('div');\n el.id = ID;\n el.style.position = 'fixed';\n el.style.left = '0px';\n el.style.top = '0px';\n el.style.width = '16px';\n el.style.height = '24px';\n el.style.zIndex = '2147483647';\n el.style.pointerEvents = 'none';\n el.style.userSelect = 'none';\n el.style.mixBlendMode = 'normal';\n el.style.contain = 'layout style paint';\n el.style.willChange = 'transform,left,top';\n el.innerHTML = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"24\" viewBox=\"0 0 16 24\"><path d=\"M1 0 L1 22 L6 14 L15 14 Z\" fill=\"black\" stroke=\"white\" stroke-width=\"0.7\"/></svg>';\n root.appendChild(el);\n }\n state.el = el;\n try { window.__v3Cursor.__installed = true; } catch {}\n if (state.last) {\n window.__v3Cursor.move(state.last[0], state.last[1]);\n state.last = null;\n }\n } catch {}\n }\n\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n install();\n } else {\n document.addEventListener('DOMContentLoaded', install, { once: true });\n setTimeout(install, 100);\n }\n })();`;\n\n // Ensure future documents get the cursor at doc-start\n await this.mainSession\n .send(\"Page.addScriptToEvaluateOnNewDocument\", { source: script })\n .catch(() => {});\n // Inject into current document now\n await this.mainSession\n .send(\"Runtime.evaluate\", {\n expression: script,\n includeCommandLineAPI: false,\n })\n .catch(() => {});\n }\n\n public async enableCursorOverlay(): Promise<void> {\n if (this.cursorEnabled) return;\n await this.ensureCursorScript();\n this.cursorEnabled = true;\n }\n\n private async updateCursor(x: number, y: number): Promise<void> {\n if (!this.cursorEnabled) return;\n try {\n await this.mainSession.send(\"Runtime.evaluate\", {\n expression: `typeof window.__v3Cursor!==\"undefined\"&&window.__v3Cursor.move(${Math.round(x)}, ${Math.round(y)})`,\n });\n } catch {\n //\n }\n }\n\n public async addInitScript<Arg>(\n script: InitScriptSource<Arg>,\n arg?: Arg,\n ): Promise<void> {\n const source = await normalizeInitScriptSource(\n script,\n arg,\n \"page.addInitScript\",\n );\n await this.registerInitScript(source);\n }\n\n /**\n * Factory: create Page and seed registry with the shallow tree from Page.getFrameTree.\n * Assumes Page domain is already enabled on the session passed in.\n */\n static async create(\n conn: CdpConnection,\n session: CDPSessionLike,\n targetId: string,\n apiClient?: StagehandAPIClient | null,\n localBrowserLaunchOptions?: LocalBrowserLaunchOptions | null,\n browserIsRemote = false,\n ): Promise<Page> {\n // Context already issues Page.enable + lifecycle enable before resume.\n // Re-issue here only as best-effort and do not block page registration on\n // their acknowledgements; some remote CDP backends can delay these replies\n // long after the target is otherwise ready.\n void session.send(\"Page.enable\").catch(() => {});\n void session\n .send(\"Page.setLifecycleEventsEnabled\", { enabled: true })\n .catch(() => {});\n const { frameTree } = await session.send<{\n frameTree: Protocol.Page.FrameTree;\n }>(\"Page.getFrameTree\");\n const mainFrameId = frameTree.frame.id;\n\n const page = new Page(\n conn,\n session,\n targetId,\n mainFrameId,\n apiClient,\n browserIsRemote,\n );\n // Seed current URL from initial frame tree\n try {\n page._currentUrl = String(frameTree?.frame?.url ?? page._currentUrl);\n if (localBrowserLaunchOptions?.viewport) {\n await page.setViewportSize(\n localBrowserLaunchOptions.viewport.width,\n localBrowserLaunchOptions.viewport.height,\n {\n deviceScaleFactor: localBrowserLaunchOptions.deviceScaleFactor ?? 1,\n },\n );\n }\n } catch {\n // ignore\n }\n\n // Seed topology + ownership for nodes known at creation time.\n page.registry.seedFromFrameTree(session.id ?? \"root\", frameTree);\n\n return page;\n }\n\n // ---------------- Event-driven updates from Context ----------------\n\n /**\n * Parent/child session emitted a `frameAttached`.\n * Topology update + ownership stamped to **emitting session**.\n */\n public onFrameAttached(\n frameId: string,\n parentId: string | null,\n session: CDPSessionLike,\n ): void {\n this.ensureOrdinal(frameId);\n this.registry.onFrameAttached(frameId, parentId, session.id ?? \"root\");\n // Cache is keyed by frameId → invalidate to ensure future frameForId resolves with latest owner\n this.frameCache.delete(frameId);\n }\n\n /**\n * Parent/child session emitted a `frameDetached`.\n */\n public onFrameDetached(\n frameId: string,\n reason: \"remove\" | \"swap\" | string = \"remove\",\n ): void {\n this.registry.onFrameDetached(frameId, reason);\n this.frameCache.delete(frameId);\n }\n\n /**\n * Parent/child session emitted a `frameNavigated`.\n * Topology + ownership update. Handles root swaps.\n */\n public onFrameNavigated(\n frame: Protocol.Page.Frame,\n session: CDPSessionLike,\n ): void {\n const prevRoot = this.mainFrameId();\n this.registry.onFrameNavigated(frame, session.id ?? \"root\");\n\n // If the root changed, keep the convenience wrapper in sync\n const newRoot = this.mainFrameId();\n if (newRoot !== prevRoot) {\n const oldOrd = this.frameOrdinals.get(prevRoot) ?? 0;\n this.frameOrdinals.set(newRoot, oldOrd);\n this.mainFrameWrapper = new Frame(\n this.mainSession,\n newRoot,\n this.pageId,\n this.browserIsRemote,\n );\n }\n\n // Update cached URL if this navigation pertains to the current main frame\n if (frame.id === this.mainFrameId()) {\n try {\n // Prefer frame.url; fallback keeps previous value\n this._currentUrl = String(\n (frame as { url?: string })?.url ?? this._currentUrl,\n );\n } catch {\n // ignore\n }\n }\n\n // Invalidate the cached Frame for this id (session may have changed)\n this.frameCache.delete(frame.id);\n }\n\n public onNavigatedWithinDocument(\n frameId: string,\n url: string,\n session: CDPSessionLike,\n ): void {\n const normalized = String(url ?? \"\").trim();\n if (!normalized) return;\n\n this.registry.onNavigatedWithinDocument(\n frameId,\n normalized,\n session.id ?? \"root\",\n );\n\n if (frameId === this.mainFrameId()) {\n this._currentUrl = normalized;\n }\n }\n\n /**\n * An OOPIF child session whose **main** frame id equals the parent iframe’s frameId\n * has been attached; adopt the session into this Page and seed ownership for its subtree.\n */\n public adoptOopifSession(\n childSession: CDPSessionLike,\n childMainFrameId: string,\n ): void {\n if (childSession.id) this.sessions.set(childSession.id, childSession);\n\n this.networkManager.trackSession(childSession);\n if (this.extraHTTPHeaders)\n void this.applyExtraHTTPHeadersToSession(\n childSession,\n this.extraHTTPHeaders,\n ).catch(() => {});\n\n void this.applyInitScriptsToSession(childSession).catch(() => {});\n\n if (this.consoleListeners.size > 0) {\n this.installConsoleTap(childSession);\n }\n\n // session will start emitting its own page events; mark ownership seed now\n this.registry.adoptChildSession(\n childSession.id ?? \"child\",\n childMainFrameId,\n );\n this.frameCache.delete(childMainFrameId);\n\n // Bridge events from the child session to keep registry in sync\n childSession.on<Protocol.Page.FrameNavigatedEvent>(\n \"Page.frameNavigated\",\n (evt) => {\n this.onFrameNavigated(evt.frame, childSession);\n },\n );\n childSession.on<Protocol.Page.FrameAttachedEvent>(\n \"Page.frameAttached\",\n (evt) => {\n this.onFrameAttached(\n evt.frameId,\n evt.parentFrameId ?? null,\n childSession,\n );\n },\n );\n childSession.on<Protocol.Page.FrameDetachedEvent>(\n \"Page.frameDetached\",\n (evt) => {\n this.onFrameDetached(evt.frameId, evt.reason ?? \"remove\");\n },\n );\n\n // One-shot seed the child's subtree ownership from its current tree\n void (async () => {\n try {\n await childSession.send(\"Page.enable\").catch(() => {});\n let { frameTree } =\n await childSession.send<Protocol.Page.GetFrameTreeResponse>(\n \"Page.getFrameTree\",\n );\n\n // Normalize: ensure the child’s reported root id matches our known main id\n if (frameTree.frame.id !== childMainFrameId) {\n frameTree = {\n ...frameTree,\n frame: { ...frameTree.frame, id: childMainFrameId },\n };\n }\n\n this.registry.seedFromFrameTree(childSession.id ?? \"child\", frameTree);\n } catch {\n // If snapshot races, live events will still converge the registry.\n }\n })();\n }\n\n /** Detach an adopted child session and prune its subtree */\n public detachOopifSession(sessionId: string): void {\n // Find which frames were owned by this session and prune by tree starting from each root.\n for (const fid of this.registry.framesForSession(sessionId)) {\n this.registry.onFrameDetached(fid, \"remove\");\n this.frameCache.delete(fid);\n }\n this.teardownConsoleTap(sessionId);\n this.sessions.delete(sessionId);\n this.networkManager.untrackSession(sessionId);\n }\n\n // ---------------- Ownership helpers / lookups ----------------\n\n /** Return the owning CDP session for a frameId (falls back to main session) */\n public getSessionForFrame(frameId: string): CDPSessionLike {\n const sid = this.registry.getOwnerSessionId(frameId);\n if (!sid) return this.mainSession;\n return this.sessions.get(sid) ?? this.mainSession;\n }\n\n /** Always returns a Frame bound to the owning session */\n public frameForId(frameId: string): Frame {\n const hit = this.frameCache.get(frameId);\n if (hit) return hit;\n\n const sess = this.getSessionForFrame(frameId);\n const f = new Frame(sess, frameId, this.pageId, this.browserIsRemote);\n this.frameCache.set(frameId, f);\n return f;\n }\n\n /** Expose a session by id (used by snapshot to resolve session id -> session) */\n public getSessionById(id: string): CDPSessionLike | undefined {\n return this.sessions.get(id);\n }\n\n public registerSessionForNetwork(session: CDPSessionLike): void {\n this.networkManager.trackSession(session);\n }\n\n public unregisterSessionForNetwork(sessionId: string | undefined): void {\n this.networkManager.untrackSession(sessionId);\n }\n\n public on(event: \"console\", listener: ConsoleListener): Page {\n if (event !== \"console\") {\n throw new StagehandInvalidArgumentError(`Unsupported event: ${event}`);\n }\n\n const firstListener = this.consoleListeners.size === 0;\n this.consoleListeners.add(listener);\n\n if (firstListener) {\n this.ensureConsoleTaps();\n }\n\n return this;\n }\n\n public once(event: \"console\", listener: ConsoleListener): Page {\n if (event !== \"console\") {\n throw new StagehandInvalidArgumentError(`Unsupported event: ${event}`);\n }\n\n const wrapper: ConsoleListener = (message) => {\n this.off(\"console\", wrapper);\n listener(message);\n };\n\n return this.on(\"console\", wrapper);\n }\n\n public off(event: \"console\", listener: ConsoleListener): Page {\n if (event !== \"console\") {\n throw new StagehandInvalidArgumentError(`Unsupported event: ${event}`);\n }\n\n this.consoleListeners.delete(listener);\n\n if (this.consoleListeners.size === 0) {\n this.removeAllConsoleTaps();\n }\n\n return this;\n }\n\n // ---------------- MAIN APIs ----------------\n\n public targetId(): string {\n return this._targetId;\n }\n\n /**\n * Send a CDP command through the main session.\n * Allows external consumers to execute arbitrary Chrome DevTools Protocol commands.\n *\n * @param method - The CDP method name (e.g., \"Page.enable\", \"Runtime.evaluate\")\n * @param params - Optional parameters for the CDP command\n * @returns Promise resolving to the typed CDP response\n *\n * @example\n * // Enable the Runtime domain\n * await page.sendCDP(\"Runtime.enable\");\n *\n * @example\n * // Evaluate JavaScript with typed response\n * const result = await page.sendCDP<Protocol.Runtime.EvaluateResponse>(\n * \"Runtime.evaluate\",\n * { expression: \"1 + 1\" }\n * );\n */\n public sendCDP<T = unknown>(method: string, params?: object): Promise<T> {\n return this.mainSession.send<T>(method, params);\n }\n\n /** Seed the cached URL before navigation events converge. */\n public seedCurrentUrl(url: string | undefined | null): void {\n if (!url) return;\n try {\n const normalized = String(url).trim();\n if (!normalized) return;\n this._currentUrl = normalized;\n } catch {\n // ignore invalid url seeds\n }\n }\n\n public mainFrameId(): string {\n return this.registry.mainFrameId();\n }\n\n public mainFrame(): Frame {\n return this.mainFrameWrapper;\n }\n\n /**\n * Close this top-level page (tab). Best-effort via Target.closeTarget.\n */\n @logAction(\"Page.close\")\n public async close(): Promise<void> {\n try {\n await this.conn.send(\"Target.closeTarget\", { targetId: this._targetId });\n } catch {\n // ignore\n }\n const deadline = Date.now() + 2000;\n while (Date.now() < deadline) {\n try {\n const targets = await this.conn.getTargets();\n if (!targets.some((t) => t.targetId === this._targetId)) {\n this.networkManager.dispose();\n return;\n }\n } catch {\n // ignore and retry\n }\n await new Promise((r) => setTimeout(r, 25));\n }\n this.networkManager.dispose();\n this.removeAllConsoleTaps();\n this.consoleListeners.clear();\n }\n\n public getFullFrameTree(): Protocol.Page.FrameTree {\n return this.asProtocolFrameTree(this.mainFrameId());\n }\n\n public asProtocolFrameTree(rootMainFrameId: string): Protocol.Page.FrameTree {\n return this.registry.asProtocolFrameTree(rootMainFrameId);\n }\n\n private async applyExtraHTTPHeadersToSession(\n session: CDPSessionLike,\n headers: Record<string, string>,\n ): Promise<void> {\n await session.send(\"Network.enable\");\n await session.send(\"Network.setExtraHTTPHeaders\", {\n headers: headers,\n });\n }\n\n private ensureOrdinal(frameId: string): number {\n const hit = this.frameOrdinals.get(frameId);\n if (hit !== undefined) return hit;\n const ord = this.nextOrdinal++;\n this.frameOrdinals.set(frameId, ord);\n return ord;\n }\n\n /** Public getter for snapshot code / handlers. */\n public getOrdinal(frameId: string): number {\n return this.ensureOrdinal(frameId);\n }\n\n public listAllFrameIds(): string[] {\n return this.registry.listAllFrames();\n }\n\n private ensureConsoleTaps(): void {\n if (this.consoleListeners.size === 0) return;\n\n this.installConsoleTap(this.mainSession);\n for (const session of this.sessions.values()) {\n this.installConsoleTap(session);\n }\n }\n\n private installConsoleTap(session: CDPSessionLike): void {\n const key = this.sessionKey(session);\n if (this.consoleHandlers.has(key)) return;\n\n void session.send(\"Runtime.enable\").catch(() => {});\n\n const handler = (evt: Protocol.Runtime.ConsoleAPICalledEvent) => {\n this.emitConsole(evt);\n };\n\n session.on<Protocol.Runtime.ConsoleAPICalledEvent>(\n \"Runtime.consoleAPICalled\",\n handler,\n );\n\n this.consoleHandlers.set(key, handler);\n }\n\n private sessionKey(session: CDPSessionLike): string {\n return session.id ?? \"__root__\";\n }\n\n private resolveSessionByKey(key: string): CDPSessionLike | undefined {\n if (this.mainSession.id) {\n if (this.mainSession.id === key) return this.mainSession;\n } else if (key === \"__root__\") {\n return this.mainSession;\n }\n\n return this.sessions.get(key);\n }\n\n private teardownConsoleTap(key: string): void {\n const handler = this.consoleHandlers.get(key);\n if (!handler) return;\n\n const session = this.resolveSessionByKey(key);\n session?.off(\"Runtime.consoleAPICalled\", handler);\n this.consoleHandlers.delete(key);\n }\n\n private removeAllConsoleTaps(): void {\n for (const key of [...this.consoleHandlers.keys()]) {\n this.teardownConsoleTap(key);\n }\n }\n\n private emitConsole(evt: Protocol.Runtime.ConsoleAPICalledEvent): void {\n if (this.consoleListeners.size === 0) return;\n\n const message = new ConsoleMessage(evt, this);\n const listeners = [...this.consoleListeners];\n\n for (const listener of listeners) {\n try {\n listener(message);\n } catch (error) {\n v3Logger({\n category: \"page\",\n message: \"Console listener threw\",\n level: 2,\n auxiliary: {\n error: { value: String(error), type: \"string\" },\n type: { value: evt.type, type: \"string\" },\n },\n });\n }\n }\n }\n\n // -------- Convenience APIs delegated to the current main frame --------\n\n /**\n * Navigate the page; optionally wait for a lifecycle state.\n * Waits on the **current** main frame and follows root swaps during navigation.\n */\n @logAction(\"Page.goto\")\n async goto(\n url: string,\n options?: { waitUntil?: LoadState; timeoutMs?: number },\n ): Promise<Response | null> {\n const waitUntil: LoadState = options?.waitUntil ?? \"domcontentloaded\";\n const timeout = options?.timeoutMs ?? 15000;\n\n const navigationCommandId = this.beginNavigationCommand();\n const tracker = new NavigationResponseTracker({\n page: this,\n session: this.mainSession,\n navigationCommandId,\n });\n\n const watcher = new LifecycleWatcher({\n page: this,\n mainSession: this.mainSession,\n networkManager: this.networkManager,\n waitUntil,\n timeoutMs: timeout,\n navigationCommandId,\n });\n\n try {\n // Route to API if available\n if (this.apiClient) {\n const result = await this.apiClient.goto(\n url,\n { waitUntil: options?.waitUntil },\n this.mainFrameId(),\n );\n this._currentUrl = url;\n\n if (isSerializableResponse(result)) {\n return Response.fromSerializable(result, {\n page: this,\n session: this.mainSession,\n });\n }\n return result;\n }\n const response =\n await this.mainSession.send<Protocol.Page.NavigateResponse>(\n \"Page.navigate\",\n { url },\n );\n this._currentUrl = url;\n if (response?.loaderId) {\n watcher.setExpectedLoaderId(response.loaderId);\n tracker.setExpectedLoaderId(response.loaderId);\n }\n await watcher.wait();\n return await tracker.navigationCompleted();\n } finally {\n watcher.dispose();\n tracker.dispose();\n }\n }\n\n /**\n * Reload the page; optionally wait for a lifecycle state.\n */\n @logAction(\"Page.reload\")\n async reload(options?: {\n waitUntil?: LoadState;\n timeoutMs?: number;\n ignoreCache?: boolean;\n }): Promise<Response | null> {\n const waitUntil = options?.waitUntil;\n const timeout = options?.timeoutMs ?? 15000;\n\n const navigationCommandId = this.beginNavigationCommand();\n\n const tracker = new NavigationResponseTracker({\n page: this,\n session: this.mainSession,\n navigationCommandId,\n });\n tracker.expectNavigationWithoutKnownLoader();\n\n const watcher = waitUntil\n ? new LifecycleWatcher({\n page: this,\n mainSession: this.mainSession,\n networkManager: this.networkManager,\n waitUntil,\n timeoutMs: timeout,\n navigationCommandId,\n })\n : null;\n\n try {\n await this.mainSession.send(\"Page.reload\", {\n ignoreCache: options?.ignoreCache ?? false,\n });\n\n if (watcher) {\n await watcher.wait();\n }\n return await tracker.navigationCompleted();\n } finally {\n watcher?.dispose();\n tracker.dispose();\n }\n }\n\n /**\n * Navigate back in history if possible; optionally wait for a lifecycle state.\n */\n @logAction(\"Page.goBack\")\n async goBack(options?: {\n waitUntil?: LoadState;\n timeoutMs?: number;\n }): Promise<Response | null> {\n const { entries, currentIndex } =\n await this.mainSession.send<Protocol.Page.GetNavigationHistoryResponse>(\n \"Page.getNavigationHistory\",\n );\n const prev = entries[currentIndex - 1];\n if (!prev) return null; // nothing to do\n const waitUntil = options?.waitUntil;\n const timeout = options?.timeoutMs ?? 15000;\n\n const navigationCommandId = this.beginNavigationCommand();\n\n const tracker = new NavigationResponseTracker({\n page: this,\n session: this.mainSession,\n navigationCommandId,\n });\n tracker.expectNavigationWithoutKnownLoader();\n\n const watcher = waitUntil\n ? new LifecycleWatcher({\n page: this,\n mainSession: this.mainSession,\n networkManager: this.networkManager,\n waitUntil,\n timeoutMs: timeout,\n navigationCommandId,\n })\n : null;\n\n try {\n await this.mainSession.send(\"Page.navigateToHistoryEntry\", {\n entryId: prev.id,\n });\n this._currentUrl = prev.url ?? this._currentUrl;\n\n if (watcher) {\n await watcher.wait();\n }\n return await tracker.navigationCompleted();\n } finally {\n watcher?.dispose();\n tracker.dispose();\n }\n }\n\n /**\n * Navigate forward in history if possible; optionally wait for a lifecycle state.\n */\n @logAction(\"Page.goForward\")\n async goForward(options?: {\n waitUntil?: LoadState;\n timeoutMs?: number;\n }): Promise<Response | null> {\n const { entries, currentIndex } =\n await this.mainSession.send<Protocol.Page.GetNavigationHistoryResponse>(\n \"Page.getNavigationHistory\",\n );\n const next = entries[currentIndex + 1];\n if (!next) return null; // nothing to do\n const waitUntil = options?.waitUntil;\n const timeout = options?.timeoutMs ?? 15000;\n\n const navigationCommandId = this.beginNavigationCommand();\n\n const tracker = new NavigationResponseTracker({\n page: this,\n session: this.mainSession,\n navigationCommandId,\n });\n tracker.expectNavigationWithoutKnownLoader();\n\n const watcher = waitUntil\n ? new LifecycleWatcher({\n page: this,\n mainSession: this.mainSession,\n networkManager: this.networkManager,\n waitUntil,\n timeoutMs: timeout,\n navigationCommandId,\n })\n : null;\n\n try {\n await this.mainSession.send(\"Page.navigateToHistoryEntry\", {\n entryId: next.id,\n });\n this._currentUrl = next.url ?? this._currentUrl;\n\n if (watcher) {\n await watcher.wait();\n }\n return await tracker.navigationCompleted();\n } finally {\n watcher?.dispose();\n tracker.dispose();\n }\n }\n\n /**\n * Return the current page URL (synchronous, cached from navigation events).\n */\n url(): string {\n return this._currentUrl;\n }\n\n private beginNavigationCommand(): number {\n const id = ++this.navigationCommandSeq;\n this.latestNavigationCommandId = id;\n return id;\n }\n\n public isCurrentNavigationCommand(id: number): boolean {\n return this.latestNavigationCommandId === id;\n }\n\n /**\n * Return the current page title.\n * Prefers reading from the active document via Runtime.evaluate to reflect dynamic changes.\n * Falls back to navigation history title if evaluation is unavailable.\n */\n async title(): Promise<string> {\n try {\n await this.mainSession.send(\"Runtime.enable\").catch(() => {});\n const ctxId = await this.mainWorldExecutionContextId();\n const { result } =\n await this.mainSession.send<Protocol.Runtime.EvaluateResponse>(\n \"Runtime.evaluate\",\n {\n expression: \"document.title\",\n contextId: ctxId,\n returnByValue: true,\n },\n );\n return String(result?.value ?? \"\");\n } catch {\n // Fallback: use navigation history entry title\n try {\n const { entries, currentIndex } =\n await this.mainSession.send<Protocol.Page.GetNavigationHistoryResponse>(\n \"Page.getNavigationHistory\",\n );\n return entries[currentIndex]?.title ?? \"\";\n } catch {\n return \"\";\n }\n }\n }\n\n /**\n * Capture a screenshot with Playwright-style options.\n *\n * @param options Optional screenshot configuration.\n * @param options.animations Control CSS/Web animations during capture. Use\n * \"disabled\" to fast-forward finite animations and pause infinite ones.\n * @param options.caret Either hide the text caret (default) or leave it\n * visible via \"initial\".\n * @param options.clip Restrict capture to a specific rectangle (in CSS\n * pixels). Cannot be combined with `fullPage`.\n * @param options.fullPage Capture the full scrollable page instead of the\n * current viewport.\n * @param options.mask Array of locators that should be covered with an\n * overlay while the screenshot is taken.\n * @param options.maskColor CSS color used for the mask overlay (default\n * `#FF00FF`).\n * @param options.omitBackground Make the default page background transparent\n * (PNG only).\n * @param options.path File path to write the screenshot to. The file extension\n * determines the image type when `type` is not explicitly provided.\n * @param options.quality JPEG quality (0–100). Only applies when\n * `type === \"jpeg\"`.\n * @param options.scale Render scale: use \"css\" for one pixel per CSS pixel,\n * otherwise the default \"device\" leverages the current device pixel ratio.\n * @param options.style Additional CSS text injected into every frame before\n * capture (removed afterwards).\n * @param options.timeout Maximum capture duration in milliseconds before a\n * timeout error is thrown.\n * @param options.type Image format (`\"png\"` by default).\n */\n @logAction(\"Page.screenshot\")\n async screenshot(options?: ScreenshotOptions): Promise<Buffer> {\n const opts = options ?? {};\n const type = opts.type ?? \"png\";\n\n if (type !== \"png\" && type !== \"jpeg\") {\n throw new StagehandInvalidArgumentError(\n `screenshot: unsupported image type \"${type}\"`,\n );\n }\n\n if (opts.fullPage && opts.clip) {\n throw new StagehandInvalidArgumentError(\n \"screenshot: clip and fullPage cannot be used together\",\n );\n }\n\n if (type === \"png\" && typeof opts.quality === \"number\") {\n throw new StagehandInvalidArgumentError(\n 'screenshot: quality option is only valid for type=\"jpeg\"',\n );\n }\n\n const caretMode: ScreenshotCaretOption = opts.caret ?? \"hide\";\n const animationsMode: ScreenshotAnimationsOption =\n opts.animations ?? \"allow\";\n const scaleMode: ScreenshotScaleOption = opts.scale ?? \"device\";\n const frames = collectFramesForScreenshot(this);\n const clip = opts.clip ? normalizeScreenshotClip(opts.clip) : undefined;\n const captureScale = await computeScreenshotScale(this, scaleMode);\n const maskLocators = (opts.mask ?? []).filter(\n (locator): locator is Locator => Boolean(locator),\n );\n\n const cleanupTasks: ScreenshotCleanup[] = [];\n\n const exec = async (): Promise<Buffer> => {\n try {\n if (opts.omitBackground) {\n cleanupTasks.push(await setTransparentBackground(this.mainSession));\n }\n\n if (animationsMode === \"disabled\") {\n cleanupTasks.push(await disableAnimations(frames));\n }\n\n if (caretMode === \"hide\") {\n cleanupTasks.push(await hideCaret(frames));\n }\n\n if (opts.style && opts.style.trim()) {\n cleanupTasks.push(\n await applyStyleToFrames(frames, opts.style, \"custom\"),\n );\n }\n\n if (maskLocators.length > 0) {\n cleanupTasks.push(\n await applyMaskOverlays(maskLocators, opts.maskColor ?? \"#FF00FF\"),\n );\n }\n\n const buffer = await this.mainFrameWrapper.screenshot({\n fullPage: opts.fullPage,\n clip,\n type,\n quality: type === \"jpeg\" ? opts.quality : undefined,\n scale: captureScale,\n });\n\n if (opts.path) {\n await fs.writeFile(opts.path, buffer);\n }\n\n return buffer;\n } finally {\n await runScreenshotCleanups(cleanupTasks);\n }\n };\n\n return await withTimeout(exec(), opts.timeout, \"screenshot\");\n }\n\n /**\n * specifies additional HTTP headers to be included in every request sent by\n * the root CDP session of the page, and all of its child CDP sessions.\n *\n * @param headers - the headers to be set.\n * @throws {StagehandSetExtraHTTPHeadersError}\n * Thrown when one or more CDP sessions fail to enable the Network domain or fail\n * to apply the headers (i.e. `Network.enable` and/or `Network.setExtraHTTPHeaders` rejects).\n * @return void\n */\n async setExtraHTTPHeaders(headers: Record<string, string>): Promise<void> {\n const headersToSet = { ...headers };\n this.extraHTTPHeaders = headersToSet;\n\n // get the session(s) for this page:\n const sessions: CDPSessionLike[] = [this.mainSession];\n for (const session of this.sessions.values()) {\n if (session === this.mainSession) continue;\n sessions.push(session);\n }\n\n const results = await Promise.allSettled(\n sessions.map(async (session) => {\n await this.applyExtraHTTPHeadersToSession(session, headersToSet);\n }),\n );\n\n // get list of objects containing results & corresponding session IDs\n const pairs = results.map((result, index) => ({\n result,\n id: sessions[index].id,\n }));\n\n const filtered = pairs.filter(\n (pair): pair is { result: PromiseRejectedResult; id: string | null } =>\n pair.result.status === \"rejected\",\n );\n\n const errors = filtered.map((pair) => {\n const reason = pair.result.reason;\n const sessId = pair.id ?? \"root\";\n const message = reason?.message ?? String(reason);\n return `session=${sessId} error=${message}`;\n });\n\n if (errors.length > 0) {\n throw new StagehandSetExtraHTTPHeadersError(errors);\n }\n }\n\n /**\n * Create a locator bound to the current main frame.\n */\n locator(selector: string): ReturnType<Frame[\"locator\"]> {\n return this.mainFrameWrapper.locator(selector);\n }\n\n /**\n * Deep locator that supports cross-iframe traversal.\n * - Recognizes '>>' hop notation to enter iframe contexts.\n * - Supports deep XPath that includes iframe steps (e.g., '/html/body/iframe[2]//div').\n * Returns a Locator scoped to the appropriate frame.\n */\n deepLocator(selector: string) {\n return deepLocatorFromPage(this, this.mainFrameWrapper, selector);\n }\n\n /**\n * Frame locator similar to Playwright: targets iframe elements and scopes\n * subsequent locators to that frame. Supports chaining.\n */\n frameLocator(selector: string): FrameLocator {\n return new FrameLocator(this, selector);\n }\n\n /**\n * List all frames belonging to this page as Frame objects bound to their owning sessions.\n * The list is ordered by a stable ordinal assigned during the page lifetime.\n */\n frames(): Frame[] {\n const ids = this.listAllFrameIds();\n const withOrd = ids.map((id) => ({ id, ord: this.getOrdinal(id) }));\n withOrd.sort((a, b) => a.ord - b.ord);\n return withOrd.map(({ id }) => this.frameForId(id));\n }\n\n /**\n * Wait until the page reaches a lifecycle state on the current main frame.\n * Mirrors Playwright's API signatures.\n */\n @logAction(\"Page.waitForLoadState\")\n async waitForLoadState(state: LoadState, timeoutMs?: number): Promise<void> {\n await this.waitForMainLoadState(state, timeoutMs ?? 15000);\n }\n\n /**\n * Wait for a specified amount of time.\n *\n * @param ms The number of milliseconds to wait.\n */\n async waitForTimeout(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n /**\n * Wait for an element matching the selector to appear in the DOM.\n * Uses MutationObserver for efficiency\n * Pierces shadow DOM by default.\n * Supports iframe hop notation with '>>' (e.g., 'iframe#checkout >> .submit-btn').\n *\n * @param selector CSS selector to wait for (supports '>>' for iframe hops)\n * @param options\n * @param options.state Element state to wait for: 'attached' | 'detached' | 'visible' | 'hidden' (default: 'visible')\n * @param options.timeout Maximum time to wait in milliseconds (default: 30000)\n * @param options.pierceShadow Whether to search inside shadow DOM (default: true)\n * @returns True when the condition is met\n * @throws Error if timeout is reached before the condition is met\n */\n @logAction(\"Page.waitForSelector\")\n async waitForSelector(\n selector: string,\n options?: {\n state?: \"attached\" | \"detached\" | \"visible\" | \"hidden\";\n timeout?: number;\n pierceShadow?: boolean;\n },\n ): Promise<boolean> {\n const timeout = options?.timeout ?? 30000;\n const state = options?.state ?? \"visible\";\n const pierceShadow = options?.pierceShadow ?? true;\n const startTime = Date.now();\n const root = this.mainFrameWrapper;\n const { frame: targetFrame, selector: finalSelector } =\n await resolveLocatorTarget(this, root, selector);\n const elapsed = Date.now() - startTime;\n const remainingTimeout = Math.max(0, timeout - elapsed);\n\n const expression = buildLocatorInvocation(\"waitForSelector\", [\n JSON.stringify(finalSelector),\n JSON.stringify(state),\n String(remainingTimeout),\n String(pierceShadow),\n ]);\n return targetFrame.evaluate(expression);\n }\n\n /**\n * Evaluate a function or expression in the current main frame's main world.\n * - If a string is provided, it is treated as a JS expression.\n * - If a function is provided, it is stringified and invoked with the optional argument.\n * - The return value should be JSON-serializable. Non-serializable objects will\n * best-effort serialize via JSON.stringify inside the page context.\n */\n @logAction(\"Page.evaluate\")\n async evaluate<R = unknown, Arg = unknown>(\n pageFunctionOrExpression: string | ((arg: Arg) => R | Promise<R>),\n arg?: Arg,\n ): Promise<R> {\n await this.mainSession.send(\"Runtime.enable\").catch(() => {});\n const ctxId = await this.mainWorldExecutionContextId();\n\n const isString = typeof pageFunctionOrExpression === \"string\";\n let expression: string;\n\n if (isString) {\n expression = String(pageFunctionOrExpression);\n } else {\n const fnSrc = pageFunctionOrExpression.toString();\n const argJson = JSON.stringify(arg);\n expression = `(() => {\n const __fn = ${fnSrc};\n const __arg = ${argJson};\n try {\n const __res = __fn(__arg);\n return Promise.resolve(__res).then(v => {\n try { return JSON.parse(JSON.stringify(v)); } catch { return v; }\n });\n } catch (e) { throw e; }\n })()`;\n }\n\n const { result, exceptionDetails } =\n await this.mainSession.send<Protocol.Runtime.EvaluateResponse>(\n \"Runtime.evaluate\",\n {\n expression,\n contextId: ctxId,\n returnByValue: true,\n awaitPromise: true,\n },\n );\n\n if (exceptionDetails) {\n const msg =\n exceptionDetails.text ||\n exceptionDetails.exception?.description ||\n \"Evaluation failed\";\n throw new StagehandEvalError(msg);\n }\n\n return result?.value as R;\n }\n\n /**\n * Force the page viewport to an exact CSS size and device scale factor.\n * Ensures screenshots match width x height pixels when deviceScaleFactor = 1.\n */\n // @logAction(\"Page.setViewportSize\") // disabled because it's pretty noisy, can always re-enable if needed for debugging\n async setViewportSize(\n width: number,\n height: number,\n options?: { deviceScaleFactor?: number },\n ): Promise<void> {\n const dsf = Math.max(0.01, options?.deviceScaleFactor ?? 1);\n await this.mainSession\n .send(\"Emulation.setDeviceMetricsOverride\", {\n width,\n height,\n deviceScaleFactor: dsf,\n mobile: false,\n screenWidth: width,\n screenHeight: height,\n positionX: 0,\n positionY: 0,\n scale: 1,\n } as Protocol.Emulation.SetDeviceMetricsOverrideRequest)\n .catch(() => {});\n\n // Best-effort ensure visible size in headless\n await this.mainSession\n .send(\"Emulation.setVisibleSize\", { width, height })\n .catch(() => {});\n }\n\n /**\n * Click at absolute page coordinates (CSS pixels).\n * Dispatches mouseMoved → mousePressed → mouseReleased via CDP Input domain\n * on the top-level page target's session. Coordinates are relative to the\n * viewport origin (top-left). Does not scroll.\n */\n @logAction(\"Page.click\")\n async click(\n x: number,\n y: number,\n options?: {\n button?: \"left\" | \"right\" | \"middle\";\n clickCount?: number;\n returnXpath?: boolean;\n },\n ): Promise<string> {\n const button = options?.button ?? \"left\";\n const clickCount = options?.clickCount ?? 1;\n\n let xpathResult: string | undefined;\n if (options?.returnXpath) {\n // Resolve the deepest node at the given coordinates and compute absolute XPath efficiently\n try {\n const hit = await resolveXpathForLocation(this, x, y);\n if (hit) {\n v3Logger({\n category: \"page\",\n message: \"click resolved hit\",\n level: 2,\n auxiliary: {\n frameId: { value: String(hit.frameId), type: \"string\" },\n backendNodeId: {\n value: String(hit.backendNodeId),\n type: \"string\",\n },\n x: { value: String(x), type: \"integer\" },\n y: { value: String(y), type: \"integer\" },\n },\n });\n xpathResult = hit.absoluteXPath;\n v3Logger({\n category: \"page\",\n message: `click resolved xpath`,\n level: 2,\n auxiliary: {\n xpath: { value: String(xpathResult ?? \"\"), type: \"string\" },\n },\n });\n }\n } catch {\n // best-effort; fall through if any step fails\n }\n }\n\n // Synthesize a simple mouse move + press + release sequence.\n await this.updateCursor(x, y);\n // Dispatch click events in a pipelined burst to reduce inter-click delay\n // from network/CPU jitter between round trips.\n const dispatches: Array<Promise<unknown>> = [];\n dispatches.push(\n this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x,\n y,\n button: \"none\",\n } as Protocol.Input.DispatchMouseEventRequest),\n );\n\n for (let i = 1; i <= clickCount; i++) {\n dispatches.push(\n this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mousePressed\",\n x,\n y,\n button,\n clickCount: i,\n } as Protocol.Input.DispatchMouseEventRequest),\n );\n dispatches.push(\n this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseReleased\",\n x,\n y,\n button,\n clickCount: i,\n } as Protocol.Input.DispatchMouseEventRequest),\n );\n }\n await Promise.all(dispatches);\n\n return xpathResult ?? \"\";\n }\n\n /**\n * Hover at absolute page coordinates (CSS pixels).\n * Dispatches mouseMoved via CDP Input domain on the top-level page target's\n * session.\n */\n @logAction(\"Page.hover\")\n async hover(\n x: number,\n y: number,\n options?: { returnXpath?: boolean },\n ): Promise<string> {\n let xpathResult: string | undefined;\n if (options?.returnXpath) {\n try {\n const hit = await resolveXpathForLocation(this, x, y);\n if (hit) {\n v3Logger({\n category: \"page\",\n message: \"hover resolved hit\",\n level: 2,\n auxiliary: {\n frameId: { value: String(hit.frameId), type: \"string\" },\n backendNodeId: {\n value: String(hit.backendNodeId),\n type: \"string\",\n },\n x: { value: String(x), type: \"integer\" },\n y: { value: String(y), type: \"integer\" },\n },\n });\n xpathResult = hit.absoluteXPath;\n }\n } catch {\n v3Logger({\n category: \"page\",\n message: \"Failed to resolve xpath for hover\",\n level: 2,\n auxiliary: {\n x: { value: String(x), type: \"integer\" },\n y: { value: String(y), type: \"integer\" },\n },\n });\n }\n }\n\n await this.updateCursor(x, y);\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x,\n y,\n button: \"none\",\n } as Protocol.Input.DispatchMouseEventRequest);\n\n return xpathResult ?? \"\";\n }\n\n @logAction(\"Page.scroll\")\n async scroll(\n x: number,\n y: number,\n deltaX: number,\n deltaY: number,\n options?: { returnXpath?: boolean },\n ): Promise<string> {\n let xpathResult: string | undefined;\n if (options?.returnXpath) {\n try {\n const hit = await resolveXpathForLocation(this, x, y);\n if (hit) xpathResult = hit.absoluteXPath;\n } catch {\n // best-effort\n }\n }\n\n await this.updateCursor(x, y);\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x,\n y,\n button: \"none\",\n } as Protocol.Input.DispatchMouseEventRequest);\n\n // Synthesize a simple mouse move + press + release sequence\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseWheel\",\n x,\n y,\n button: \"none\",\n deltaX,\n deltaY,\n } as Protocol.Input.DispatchMouseEventRequest);\n\n return xpathResult ?? \"\";\n }\n\n /**\n * Drag from (fromX, fromY) to (toX, toY) using mouse events.\n * Sends mouseMoved → mousePressed → mouseMoved (steps) → mouseReleased.\n */\n @logAction(\"Page.dragAndDrop\")\n async dragAndDrop(\n fromX: number,\n fromY: number,\n toX: number,\n toY: number,\n options?: {\n button?: \"left\" | \"right\" | \"middle\";\n steps?: number;\n delay?: number;\n returnXpath?: boolean;\n },\n ): Promise<[string, string]> {\n const button = options?.button ?? \"left\";\n const steps = Math.max(1, Math.floor(options?.steps ?? 1));\n const delay = Math.max(0, options?.delay ?? 0);\n\n const sleep = (ms: number) =>\n new Promise<void>((r) => (ms > 0 ? setTimeout(r, ms) : r()));\n\n const buttonMask = (b: typeof button): number => {\n switch (b) {\n case \"left\":\n return 1;\n case \"right\":\n return 2;\n case \"middle\":\n return 4;\n default:\n return 1;\n }\n };\n\n let fromXpath: string | undefined;\n let toXpath: string | undefined;\n if (options?.returnXpath) {\n try {\n const start = await resolveXpathForLocation(this, fromX, fromY);\n if (start) fromXpath = start.absoluteXPath;\n } catch {\n //\n }\n try {\n const end = await resolveXpathForLocation(this, toX, toY);\n if (end) toXpath = end.absoluteXPath;\n } catch {\n //\n }\n }\n\n // Move to start\n await this.updateCursor(fromX, fromY);\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x: fromX,\n y: fromY,\n button: \"none\",\n } as Protocol.Input.DispatchMouseEventRequest);\n\n // Press\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mousePressed\",\n x: fromX,\n y: fromY,\n button,\n buttons: buttonMask(button),\n clickCount: 1,\n } as Protocol.Input.DispatchMouseEventRequest);\n\n // Intermediate moves\n for (let i = 1; i <= steps; i++) {\n const t = i / steps;\n const x = fromX + (toX - fromX) * t;\n const y = fromY + (toY - fromY) * t;\n await this.updateCursor(x, y);\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x,\n y,\n button,\n buttons: buttonMask(button),\n } as Protocol.Input.DispatchMouseEventRequest);\n if (delay) await sleep(delay);\n }\n\n // Release at end\n await this.updateCursor(toX, toY);\n await this.mainSession.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseReleased\",\n x: toX,\n y: toY,\n button,\n buttons: buttonMask(button),\n clickCount: 1,\n } as Protocol.Input.DispatchMouseEventRequest);\n\n return [fromXpath ?? \"\", toXpath ?? \"\"];\n }\n\n /**\n * Type a string by dispatching keyDown/keyUp events per character.\n * Focus must already be on the desired element. Uses CDP Input.dispatchKeyEvent\n * and never falls back to Input.insertText. Optional delay applies between\n * successive characters.\n */\n @logAction(\"Page.type\")\n async type(\n text: string,\n options?: { delay?: number; withMistakes?: boolean },\n ): Promise<void> {\n const delay = Math.max(0, options?.delay ?? 0);\n const withMistakes = !!options?.withMistakes;\n\n const sleep = (ms: number) =>\n new Promise<void>((r) => (ms > 0 ? setTimeout(r, ms) : r()));\n\n const keyStroke = async (\n ch: string,\n override?: {\n key?: string;\n code?: string;\n windowsVirtualKeyCode?: number;\n },\n ) => {\n if (override) {\n const base: Protocol.Input.DispatchKeyEventRequest = {\n type: \"keyDown\",\n key: override.key,\n code: override.code,\n windowsVirtualKeyCode: override.windowsVirtualKeyCode,\n } as Protocol.Input.DispatchKeyEventRequest;\n await this.mainSession.send(\"Input.dispatchKeyEvent\", base);\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n ...base,\n type: \"keyUp\",\n } as Protocol.Input.DispatchKeyEventRequest);\n return;\n }\n\n // Printable character: include key, code, and text for maximum compatibility\n // Some sites (like Wordle) check event.key rather than relying on text input\n const isLetter = /^[a-zA-Z]$/.test(ch);\n const isDigit = /^[0-9]$/.test(ch);\n\n let key = ch;\n let code = \"\";\n let windowsVirtualKeyCode: number | undefined;\n\n if (isLetter) {\n // For letters, key is the character, code is KeyX where X is uppercase\n key = ch;\n code = `Key${ch.toUpperCase()}`;\n windowsVirtualKeyCode = ch.toUpperCase().charCodeAt(0);\n } else if (isDigit) {\n key = ch;\n code = `Digit${ch}`;\n windowsVirtualKeyCode = ch.charCodeAt(0);\n } else if (ch === \" \") {\n key = \" \";\n code = \"Space\";\n windowsVirtualKeyCode = 32;\n }\n\n const down: Protocol.Input.DispatchKeyEventRequest = {\n type: \"keyDown\",\n key,\n code: code || undefined,\n text: ch,\n unmodifiedText: ch,\n windowsVirtualKeyCode,\n };\n await this.mainSession.send(\"Input.dispatchKeyEvent\", down);\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key,\n code: code || undefined,\n windowsVirtualKeyCode,\n } as Protocol.Input.DispatchKeyEventRequest);\n };\n\n const pressBackspace = async () =>\n keyStroke(\"\\b\", {\n key: \"Backspace\",\n code: \"Backspace\",\n windowsVirtualKeyCode: 8,\n });\n\n const randomPrintable = (avoid: string): string => {\n const pool =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 .,;:'\\\"!?@#$%^&*()-_=+[]{}<>/\\\\|`~\";\n let c = avoid;\n while (c === avoid) {\n c = pool[Math.floor(Math.random() * pool.length)];\n }\n return c;\n };\n\n for (const ch of text) {\n // Control keys that we explicitly map\n if (ch === \"\\n\" || ch === \"\\r\") {\n await keyStroke(ch, {\n key: \"Enter\",\n code: \"Enter\",\n windowsVirtualKeyCode: 13,\n });\n } else if (ch === \"\\t\") {\n await keyStroke(ch, {\n key: \"Tab\",\n code: \"Tab\",\n windowsVirtualKeyCode: 9,\n });\n } else {\n if (withMistakes && Math.random() < 0.12) {\n // Type a wrong character, then backspace to correct\n const wrong = randomPrintable(ch);\n await keyStroke(wrong);\n if (delay) await sleep(delay);\n await pressBackspace();\n if (delay) await sleep(delay);\n }\n await keyStroke(ch);\n }\n\n if (delay) await sleep(delay);\n }\n }\n\n /**\n * Press a single key or key combination (keyDown then keyUp).\n * For printable characters, uses the text path on keyDown; for named keys, sets key/code/VK.\n * Supports key combinations with modifiers like \"Cmd+A\", \"Ctrl+C\", \"Shift+Tab\", etc.\n */\n @logAction(\"Page.keyPress\")\n async keyPress(key: string, options?: { delay?: number }): Promise<void> {\n const delay = Math.max(0, options?.delay ?? 0);\n const sleep = (ms: number) =>\n new Promise<void>((r) => (ms > 0 ? setTimeout(r, ms) : r()));\n\n // Split key combination by + but handle the special case of \"+\" key itself\n function split(keyString: string): string[] {\n // Special case: if the entire string is just \"+\", return it as-is\n if (keyString === \"+\") {\n return [\"+\"];\n }\n\n const keys: string[] = [];\n let building = \"\";\n for (const char of keyString) {\n if (char === \"+\" && building) {\n keys.push(building);\n building = \"\";\n } else {\n building += char;\n }\n }\n if (building) {\n keys.push(building);\n }\n return keys;\n }\n\n const tokens = split(key);\n const mainKey = tokens[tokens.length - 1];\n const modifierKeys = tokens.slice(0, -1);\n\n try {\n for (const modKey of modifierKeys) {\n await this.keyDown(modKey);\n }\n\n await this.keyDown(mainKey);\n if (delay) await sleep(delay);\n await this.keyUp(mainKey);\n\n for (let i = modifierKeys.length - 1; i >= 0; i--) {\n await this.keyUp(modifierKeys[i]);\n }\n } catch (error) {\n // Clear stuck modifiers on error to prevent affecting subsequent keyPress calls\n this._pressedModifiers.clear();\n throw error;\n }\n }\n\n @logAction(\"Page.snapshot\")\n async snapshot(options?: PageSnapshotOptions): Promise<SnapshotResult> {\n try {\n const { combinedTree, combinedXpathMap, combinedUrlMap } =\n await captureHybridSnapshot(this, {\n pierceShadow: true,\n includeIframes: options?.includeIframes,\n });\n\n return {\n formattedTree: combinedTree,\n xpathMap: combinedXpathMap,\n urlMap: combinedUrlMap,\n };\n } catch (err) {\n throw new StagehandSnapshotError(err);\n }\n }\n\n // Track pressed modifier keys\n private _pressedModifiers = new Set<string>();\n\n /** Press a key down without releasing it */\n private async keyDown(key: string): Promise<void> {\n const normalizedKey = this.normalizeModifierKey(key);\n\n const modifierKeys = [\"Alt\", \"Control\", \"Meta\", \"Shift\"];\n if (modifierKeys.includes(normalizedKey)) {\n this._pressedModifiers.add(normalizedKey);\n }\n\n let modifiers = 0;\n if (this._pressedModifiers.has(\"Alt\")) modifiers |= 1;\n if (this._pressedModifiers.has(\"Control\")) modifiers |= 2;\n if (this._pressedModifiers.has(\"Meta\")) modifiers |= 4;\n if (this._pressedModifiers.has(\"Shift\")) modifiers |= 8;\n\n const named = this.getNamedKeys();\n\n if (normalizedKey.length === 1) {\n const hasNonShiftModifier =\n this._pressedModifiers.has(\"Alt\") ||\n this._pressedModifiers.has(\"Control\") ||\n this._pressedModifiers.has(\"Meta\");\n if (hasNonShiftModifier) {\n // For accelerators (e.g., Cmd/Ctrl/Alt + key), do not send text. Use rawKeyDown with key/code/VK.\n const desc = this.describePrintableKey(normalizedKey);\n const macCommands = this.isMacOS()\n ? this.macCommandsFor(desc.code ?? \"\")\n : [];\n const req: Protocol.Input.DispatchKeyEventRequest = {\n type: \"rawKeyDown\",\n modifiers,\n key: desc.key,\n ...(desc.code ? { code: desc.code } : {}),\n ...(typeof desc.vk === \"number\"\n ? { windowsVirtualKeyCode: desc.vk }\n : {}),\n ...(macCommands.length ? { commands: macCommands } : {}),\n } as Protocol.Input.DispatchKeyEventRequest;\n await this.mainSession.send(\"Input.dispatchKeyEvent\", req);\n } else {\n // Typing path (no non-Shift modifiers): send text to generate input\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n text: normalizedKey,\n unmodifiedText: normalizedKey,\n modifiers,\n } as Protocol.Input.DispatchKeyEventRequest);\n }\n return;\n }\n\n const entry = named[normalizedKey] ?? null;\n if (entry) {\n const macCommands = this.isMacOS() ? this.macCommandsFor(entry.code) : [];\n const includeText = !!entry.text && modifiers === 0;\n const keyDown: Protocol.Input.DispatchKeyEventRequest = {\n type: includeText ? \"keyDown\" : \"rawKeyDown\",\n key: entry.key,\n code: entry.code,\n windowsVirtualKeyCode: entry.vk,\n modifiers,\n ...(includeText\n ? {\n text: entry.text,\n unmodifiedText: entry.unmodifiedText ?? entry.text,\n }\n : {}),\n ...(macCommands.length ? { commands: macCommands } : {}),\n } as Protocol.Input.DispatchKeyEventRequest;\n await this.mainSession.send(\"Input.dispatchKeyEvent\", keyDown);\n return;\n }\n\n // Fallback: send with key property only\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n key: normalizedKey,\n modifiers,\n } as Protocol.Input.DispatchKeyEventRequest);\n }\n\n /** Release a pressed key */\n private async keyUp(key: string): Promise<void> {\n const normalizedKey = this.normalizeModifierKey(key);\n\n let modifiers = 0;\n if (this._pressedModifiers.has(\"Alt\")) modifiers |= 1;\n if (this._pressedModifiers.has(\"Control\")) modifiers |= 2;\n if (this._pressedModifiers.has(\"Meta\")) modifiers |= 4;\n if (this._pressedModifiers.has(\"Shift\")) modifiers |= 8;\n\n const modifierKeys = [\"Alt\", \"Control\", \"Meta\", \"Shift\"];\n if (modifierKeys.includes(normalizedKey)) {\n this._pressedModifiers.delete(normalizedKey);\n }\n\n const named = this.getNamedKeys();\n\n if (normalizedKey.length === 1) {\n const desc = this.describePrintableKey(normalizedKey);\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: desc.key,\n code: desc.code,\n windowsVirtualKeyCode:\n typeof desc.vk === \"number\" ? desc.vk : undefined,\n modifiers,\n } as Protocol.Input.DispatchKeyEventRequest);\n return;\n }\n\n const entry = named[normalizedKey] ?? null;\n if (entry) {\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: entry.key,\n code: entry.code,\n windowsVirtualKeyCode: entry.vk,\n modifiers,\n } as Protocol.Input.DispatchKeyEventRequest);\n return;\n }\n\n // Fallback: send with key property only\n await this.mainSession.send(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: normalizedKey,\n modifiers,\n } as Protocol.Input.DispatchKeyEventRequest);\n }\n\n /** Normalize key names to match CDP expectations */\n private normalizeModifierKey(key: string): string {\n const lower = key.toLowerCase();\n switch (lower) {\n // Modifier keys\n case \"cmd\":\n case \"command\":\n case \"controlormeta\":\n // On Mac, Cmd is Meta; elsewhere map to Control for common shortcuts\n return this.isMacOS() ? \"Meta\" : \"Control\";\n case \"win\":\n case \"windows\":\n return \"Meta\";\n case \"ctrl\":\n case \"control\":\n return \"Control\";\n case \"option\":\n case \"alt\":\n return \"Alt\";\n case \"shift\":\n return \"Shift\";\n case \"meta\":\n return \"Meta\";\n // Action keys\n case \"enter\":\n case \"return\":\n return \"Enter\";\n case \"esc\":\n case \"escape\":\n return \"Escape\";\n case \"backspace\":\n return \"Backspace\";\n case \"tab\":\n return \"Tab\";\n case \"space\":\n case \"spacebar\":\n return \" \";\n case \"delete\":\n case \"del\":\n return \"Delete\";\n // Arrow keys\n case \"left\":\n case \"arrowleft\":\n return \"ArrowLeft\";\n case \"right\":\n case \"arrowright\":\n return \"ArrowRight\";\n case \"up\":\n case \"arrowup\":\n return \"ArrowUp\";\n case \"down\":\n case \"arrowdown\":\n return \"ArrowDown\";\n // Navigation keys\n case \"home\":\n return \"Home\";\n case \"end\":\n return \"End\";\n case \"pageup\":\n case \"pgup\":\n return \"PageUp\";\n case \"pagedown\":\n case \"pgdn\":\n return \"PageDown\";\n default:\n return key;\n }\n }\n\n /**\n * Get the map of named keys with their properties\n */\n private getNamedKeys(): Record<\n string,\n {\n key: string;\n code: string;\n vk: number;\n text?: string;\n unmodifiedText?: string;\n }\n > {\n return {\n Enter: {\n key: \"Enter\",\n code: \"Enter\",\n vk: 13,\n text: \"\\r\",\n unmodifiedText: \"\\r\",\n },\n Tab: { key: \"Tab\", code: \"Tab\", vk: 9 },\n Backspace: { key: \"Backspace\", code: \"Backspace\", vk: 8 },\n Escape: { key: \"Escape\", code: \"Escape\", vk: 27 },\n Delete: { key: \"Delete\", code: \"Delete\", vk: 46 },\n ArrowLeft: { key: \"ArrowLeft\", code: \"ArrowLeft\", vk: 37 },\n ArrowUp: { key: \"ArrowUp\", code: \"ArrowUp\", vk: 38 },\n ArrowRight: { key: \"ArrowRight\", code: \"ArrowRight\", vk: 39 },\n ArrowDown: { key: \"ArrowDown\", code: \"ArrowDown\", vk: 40 },\n Home: { key: \"Home\", code: \"Home\", vk: 36 },\n End: { key: \"End\", code: \"End\", vk: 35 },\n PageUp: { key: \"PageUp\", code: \"PageUp\", vk: 33 },\n PageDown: { key: \"PageDown\", code: \"PageDown\", vk: 34 },\n // Modifier keys\n Alt: { key: \"Alt\", code: \"AltLeft\", vk: 18 },\n Control: { key: \"Control\", code: \"ControlLeft\", vk: 17 },\n Meta: { key: \"Meta\", code: \"MetaLeft\", vk: 91 },\n Shift: { key: \"Shift\", code: \"ShiftLeft\", vk: 16 },\n };\n }\n\n /**\n * Minimal description for printable keys (letters/digits/space) to provide code and VK.\n * Used when non-Shift modifiers are pressed to avoid sending text while keeping accelerator info.\n */\n private describePrintableKey(ch: string): {\n key: string;\n code?: string;\n vk?: number;\n } {\n const shiftDown = this._pressedModifiers.has(\"Shift\");\n const isLetter = /^[a-zA-Z]$/.test(ch);\n const isDigit = /^[0-9]$/.test(ch);\n\n if (isLetter) {\n const upper = ch.toUpperCase();\n return {\n key: shiftDown ? upper : upper.toLowerCase(),\n code: `Key${upper}`,\n vk: upper.charCodeAt(0), // 'A'..'Z' => 65..90\n };\n }\n\n if (isDigit) {\n return {\n key: ch,\n code: `Digit${ch}`,\n vk: ch.charCodeAt(0), // '0'..'9' => 48..57\n };\n }\n\n if (ch === \" \") {\n return { key: \" \", code: \"Space\", vk: 32 };\n }\n\n // Fallback: just return the character as-is; VK best-effort from ASCII\n return {\n key: shiftDown ? ch.toUpperCase() : ch,\n vk: ch.toUpperCase().charCodeAt(0),\n };\n }\n\n private isMacOS(): boolean {\n try {\n return process.platform === \"darwin\";\n } catch {\n return false;\n }\n }\n\n /**\n * Return Chromium mac editing commands (without trailing ':') for a given code like 'KeyA'\n * Only used on macOS to trigger system editing shortcuts (e.g., selectAll, copy, paste...).\n */\n private macCommandsFor(code: string): string[] {\n if (!this.isMacOS()) return [];\n const parts: string[] = [];\n if (this._pressedModifiers.has(\"Shift\")) parts.push(\"Shift\");\n if (this._pressedModifiers.has(\"Control\")) parts.push(\"Control\");\n if (this._pressedModifiers.has(\"Alt\")) parts.push(\"Alt\");\n if (this._pressedModifiers.has(\"Meta\")) parts.push(\"Meta\");\n parts.push(code);\n const shortcut = parts.join(\"+\");\n const table: Record<string, string | string[]> = {\n \"Meta+KeyA\": \"selectAll:\",\n \"Meta+KeyC\": \"copy:\",\n \"Meta+KeyX\": \"cut:\",\n \"Meta+KeyV\": \"paste:\",\n \"Meta+KeyZ\": \"undo:\",\n };\n const value = table[shortcut];\n if (!value) return [];\n const list = Array.isArray(value) ? value : [value];\n return list\n .filter((c) => !c.startsWith(\"insert\"))\n .map((c) => c.substring(0, c.length - 1));\n }\n\n // ---- Page-level lifecycle waiter that follows main frame id swaps ----\n\n /** Resolve the main-world execution context for the current main frame. */\n private async mainWorldExecutionContextId(): Promise<number> {\n return executionContexts.waitForMainWorld(\n this.mainSession,\n this.mainFrameId(),\n 1000,\n );\n }\n\n private async isMainLoadStateReady(\n state: \"domcontentloaded\" | \"load\",\n ): Promise<boolean> {\n try {\n const ctxId = await this.mainWorldExecutionContextId();\n const { result } =\n await this.mainSession.send<Protocol.Runtime.EvaluateResponse>(\n \"Runtime.evaluate\",\n {\n expression: \"document.readyState\",\n contextId: ctxId,\n returnByValue: true,\n },\n );\n const readyState = String(result?.value ?? \"\");\n if (state === \"domcontentloaded\") {\n return readyState === \"interactive\" || readyState === \"complete\";\n }\n return readyState === \"complete\";\n } catch {\n return false;\n }\n }\n\n /**\n * Wait until the **current** main frame reaches a lifecycle state.\n * - Fast path via `document.readyState`.\n * - Event path listens at the session level and compares incoming `frameId`\n * to `mainFrameId()` **at event time** to follow root swaps.\n */\n async waitForMainLoadState(\n state: LoadState,\n timeoutMs = 15000,\n ): Promise<void> {\n await this.mainSession\n .send(\"Page.setLifecycleEventsEnabled\", { enabled: true })\n .catch(() => {});\n\n // Fast path: check the *current* main frame's readyState.\n if (\n (state === \"domcontentloaded\" || state === \"load\") &&\n (await this.isMainLoadStateReady(state))\n ) {\n return;\n }\n\n const wanted = LIFECYCLE_NAME[state];\n return new Promise<void>((resolve, reject) => {\n let done = false;\n let timer: ReturnType<typeof setTimeout> | null = null;\n let pollTimer: ReturnType<typeof setTimeout> | null = null;\n let pollInFlight = false;\n\n const off = () => {\n this.mainSession.off(\"Page.lifecycleEvent\", onLifecycle);\n this.mainSession.off(\"Page.domContentEventFired\", onDomContent);\n this.mainSession.off(\"Page.loadEventFired\", onLoad);\n };\n const clearPollTimer = () => {\n if (pollTimer) {\n clearTimeout(pollTimer);\n pollTimer = null;\n }\n };\n\n const finish = () => {\n if (done) return;\n done = true;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n clearPollTimer();\n off();\n resolve();\n };\n\n const onLifecycle = (evt: Protocol.Page.LifecycleEventEvent) => {\n if (evt.name !== wanted) return;\n // Compare against the *current* main frame id when the event arrives.\n if (evt.frameId === this.mainFrameId()) finish();\n };\n\n const onDomContent = () => {\n if (state === \"domcontentloaded\") finish();\n };\n\n const onLoad = () => {\n if (state === \"load\") finish();\n };\n\n this.mainSession.on(\"Page.lifecycleEvent\", onLifecycle);\n // Backups for sites that don't emit lifecycle consistently\n this.mainSession.on(\"Page.domContentEventFired\", onDomContent);\n this.mainSession.on(\"Page.loadEventFired\", onLoad);\n\n // Fallback polling closes lifecycle-event races in remote environments\n // where readyState has advanced but the corresponding event was missed.\n const pollReadyState = async () => {\n if (done || pollInFlight) return;\n pollInFlight = true;\n try {\n if (done) return;\n if (\n (state === \"domcontentloaded\" || state === \"load\") &&\n (await this.isMainLoadStateReady(state))\n ) {\n finish();\n return;\n }\n } finally {\n pollInFlight = false;\n }\n if (!done) {\n clearPollTimer();\n pollTimer = setTimeout(() => {\n void pollReadyState();\n }, 100);\n }\n };\n void pollReadyState();\n\n timer = setTimeout(() => {\n if (done) return;\n done = true;\n clearPollTimer();\n off();\n reject(\n new Error(\n `waitForMainLoadState(${state}) timed out after ${timeoutMs}ms`,\n ),\n );\n }, timeoutMs);\n });\n }\n}\n"]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installV3PiercerIntoSession = installV3PiercerIntoSession;
4
+ exports.tapPiercerConsole = tapPiercerConsole;
5
+ const logger_js_1 = require("../logger.js");
6
+ const scriptV3Content_js_1 = require("../dom/build/scriptV3Content.js");
7
+ const reRenderScriptContent_js_1 = require("../dom/build/reRenderScriptContent.js");
8
+ async function installV3PiercerIntoSession(session) {
9
+ const pageEnabled = await session
10
+ .send("Page.enable")
11
+ .then(() => true)
12
+ .catch(() => false);
13
+ if (!pageEnabled)
14
+ return false;
15
+ await session.send("Runtime.enable").catch(() => { });
16
+ try {
17
+ await session.send("Page.addScriptToEvaluateOnNewDocument", { source: scriptV3Content_js_1.v3ScriptContent, runImmediately: true });
18
+ }
19
+ catch (e) {
20
+ const msg = String(e?.message ?? e ?? "");
21
+ // If the session vanished during attach (common with short-lived OOPIFs),
22
+ // swallow and report failure so callers can early-return.
23
+ if (msg.includes("Session with given id not found"))
24
+ return false;
25
+ // For other errors, keep going but don't throw — the next evaluate is idempotent.
26
+ }
27
+ await session
28
+ .send("Runtime.evaluate", {
29
+ expression: scriptV3Content_js_1.v3ScriptContent,
30
+ returnByValue: true,
31
+ awaitPromise: true,
32
+ })
33
+ .catch(() => { });
34
+ // After the piercer is in place, re-render any custom elements whose
35
+ // shadow roots were created before we patched attachShadow so their
36
+ // closed roots are recreated under the hook.
37
+ await session
38
+ .send("Runtime.evaluate", {
39
+ expression: reRenderScriptContent_js_1.reRenderScriptContent,
40
+ returnByValue: true,
41
+ awaitPromise: false,
42
+ })
43
+ .catch(() => { });
44
+ return true;
45
+ }
46
+ /** (Optional) stream patch logs in your node console during bring-up */
47
+ function tapPiercerConsole(session, label) {
48
+ session.on("Runtime.consoleAPICalled", (evt) => {
49
+ const head = evt.args?.[0]?.value;
50
+ if (head?.startsWith?.("[v3-piercer]")) {
51
+ (0, logger_js_1.v3Logger)({
52
+ category: "piercer",
53
+ message: `[${label}] ${head}`,
54
+ level: 2,
55
+ auxiliary: {
56
+ value: {
57
+ value: String(evt.args?.[1]?.value ?? ""),
58
+ type: "string",
59
+ },
60
+ },
61
+ });
62
+ }
63
+ });
64
+ }
65
+ //# sourceMappingURL=piercer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"piercer.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/piercer.ts"],"names":[],"mappings":";;AAMA,kEAyCC;AAGD,8CAuBC;AAxED,4CAAwC;AAExC,wEAAkE;AAClE,oFAA8E;AAEvE,KAAK,UAAU,2BAA2B,CAC/C,OAAuB;IAEvB,MAAM,WAAW,GAAG,MAAM,OAAO;SAC9B,IAAI,CAAC,aAAa,CAAC;SACnB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAChB,uCAAuC,EACvC,EAAE,MAAM,EAAE,oCAAe,EAAE,cAAc,EAAE,IAAI,EAAE,CAClD,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,MAAM,CAAE,CAAW,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAAE,OAAO,KAAK,CAAC;QAClE,kFAAkF;IACpF,CAAC;IACD,MAAM,OAAO;SACV,IAAI,CAAoC,kBAAkB,EAAE;QAC3D,UAAU,EAAE,oCAAe;QAC3B,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEnB,qEAAqE;IACrE,oEAAoE;IACpE,6CAA6C;IAC7C,MAAM,OAAO;SACV,IAAI,CAAoC,kBAAkB,EAAE;QAC3D,UAAU,EAAE,gDAAqB;QACjC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,KAAK;KACpB,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wEAAwE;AACxE,SAAgB,iBAAiB,CAC/B,OAAuB,EACvB,KAAa;IAEb,OAAO,CAAC,EAAE,CACR,0BAA0B,EAC1B,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAA2B,CAAC;QACxD,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,IAAA,oBAAQ,EAAC;gBACP,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;gBAC7B,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;wBACzC,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type { Protocol } from \"devtools-protocol\";\nimport { v3Logger } from \"../logger.js\";\nimport type { CDPSessionLike } from \"./cdp.js\";\nimport { v3ScriptContent } from \"../dom/build/scriptV3Content.js\";\nimport { reRenderScriptContent } from \"../dom/build/reRenderScriptContent.js\";\n\nexport async function installV3PiercerIntoSession(\n session: CDPSessionLike,\n): Promise<boolean> {\n const pageEnabled = await session\n .send(\"Page.enable\")\n .then(() => true)\n .catch(() => false);\n if (!pageEnabled) return false;\n\n await session.send(\"Runtime.enable\").catch(() => {});\n try {\n await session.send<Protocol.Page.AddScriptToEvaluateOnNewDocumentResponse>(\n \"Page.addScriptToEvaluateOnNewDocument\",\n { source: v3ScriptContent, runImmediately: true },\n );\n } catch (e) {\n const msg = String((e as Error)?.message ?? e ?? \"\");\n // If the session vanished during attach (common with short-lived OOPIFs),\n // swallow and report failure so callers can early-return.\n if (msg.includes(\"Session with given id not found\")) return false;\n // For other errors, keep going but don't throw — the next evaluate is idempotent.\n }\n await session\n .send<Protocol.Runtime.EvaluateResponse>(\"Runtime.evaluate\", {\n expression: v3ScriptContent,\n returnByValue: true,\n awaitPromise: true,\n })\n .catch(() => {});\n\n // After the piercer is in place, re-render any custom elements whose\n // shadow roots were created before we patched attachShadow so their\n // closed roots are recreated under the hook.\n await session\n .send<Protocol.Runtime.EvaluateResponse>(\"Runtime.evaluate\", {\n expression: reRenderScriptContent,\n returnByValue: true,\n awaitPromise: false,\n })\n .catch(() => {});\n return true;\n}\n\n/** (Optional) stream patch logs in your node console during bring-up */\nexport function tapPiercerConsole(\n session: CDPSessionLike,\n label: string,\n): void {\n session.on<Protocol.Runtime.ConsoleAPICalledEvent>(\n \"Runtime.consoleAPICalled\",\n (evt) => {\n const head = evt.args?.[0]?.value as string | undefined;\n if (head?.startsWith?.(\"[v3-piercer]\")) {\n v3Logger({\n category: \"piercer\",\n message: `[${label}] ${head}`,\n level: 2,\n auxiliary: {\n value: {\n value: String(evt.args?.[1]?.value ?? \"\"),\n type: \"string\",\n },\n },\n });\n }\n },\n );\n}\n"]}