@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":"keep-alive.child.js","sourceRoot":"","sources":["../../../../tests/integration/keep-alive.child.ts"],"names":[],"mappings":"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","sourcesContent":["import { V3 } from \"../../lib/v3/v3.js\";\n\nasync function main(): Promise<void> {\n const encoded = process.argv.find((arg) => arg.startsWith(\"cfg:\"));\n if (!encoded) {\n throw new Error(\"Missing child config payload.\");\n }\n const raw = Buffer.from(encoded.slice(4), \"base64\").toString(\"utf8\");\n const cfg = JSON.parse(raw) as {\n env: \"LOCAL\" | \"BROWSERBASE\";\n keepAlive: boolean;\n disableAPI: boolean;\n scenario: string;\n apiKey?: string;\n projectId?: string;\n debug?: boolean;\n viewMs?: number;\n };\n const {\n env,\n keepAlive,\n disableAPI,\n scenario,\n apiKey,\n projectId,\n debug = false,\n viewMs = 0,\n } = cfg;\n\n const log = (message: string): void => {\n if (debug) {\n console.log(message);\n }\n };\n\n if (env !== \"LOCAL\" && env !== \"BROWSERBASE\") {\n throw new Error(\"KEEP_ALIVE_ENV must be LOCAL or BROWSERBASE\");\n }\n if (!scenario) {\n throw new Error(\"KEEP_ALIVE_SCENARIO is required\");\n }\n\n log(\n `[keep-alive-child] env=${env} keepAlive=${keepAlive} disableAPI=${disableAPI} ` +\n `scenario=${scenario} apiKey=${apiKey ? \"set\" : \"missing\"} ` +\n `projectId=${projectId ? \"set\" : \"missing\"}`,\n );\n\n const showBrowser = viewMs > 0;\n const v3 = new V3({\n env,\n keepAlive,\n disableAPI,\n apiKey,\n projectId,\n browserbaseSessionCreateParams: undefined,\n localBrowserLaunchOptions:\n env === \"LOCAL\"\n ? {\n executablePath: process.env.CHROME_PATH,\n args: process.env.CI ? [\"--no-sandbox\"] : undefined,\n headless: !showBrowser,\n viewport: { width: 1288, height: 711 },\n }\n : undefined,\n verbose: debug ? 2 : 0,\n disablePino: true,\n logger: debug ? (line) => console.log(line) : undefined,\n });\n\n await v3.init();\n\n const info = {\n connectURL: v3.connectURL(),\n sessionId: v3.browserbaseSessionId ?? null,\n };\n await new Promise<void>((resolve, reject) => {\n process.stdout.write(`__KEEPALIVE__${JSON.stringify(info)}\\n`, (error) => {\n if (error) {\n reject(error);\n return;\n }\n resolve();\n });\n });\n\n if (env === \"LOCAL\" && viewMs > 0) {\n await new Promise((r) => setTimeout(r, viewMs));\n }\n\n if (scenario === \"close\") {\n await v3.close().catch(() => {});\n process.exit(0);\n }\n\n if (scenario === \"sigterm\") {\n return;\n }\n\n if (scenario === \"sigint\") {\n return;\n }\n\n if (scenario === \"unhandled\") {\n setTimeout(() => {\n void Promise.reject(new Error(\"keepAlive unhandled rejection\"));\n }, 0);\n return;\n }\n\n throw new Error(`Unknown scenario: ${scenario}`);\n}\n\nmain().catch((err) => {\n console.error(err);\n process.exit(1);\n});\n"]}
@@ -0,0 +1,22 @@
1
+ export type EnvKind = "LOCAL" | "BROWSERBASE";
2
+ export type ScenarioKind = "unhandled" | "close" | "sigterm" | "sigint";
3
+ export type KeepAliveCase = {
4
+ title: string;
5
+ env: EnvKind;
6
+ envLabel: string;
7
+ keepAlive: boolean;
8
+ disableAPI: boolean;
9
+ kind: ScenarioKind;
10
+ requiresBrowserbase: boolean;
11
+ };
12
+ export declare function getKeepAliveEnvConfig(): {
13
+ testEnv: EnvKind;
14
+ apiKey?: string;
15
+ projectId?: string;
16
+ hasBrowserbaseCreds: boolean;
17
+ };
18
+ export declare function buildKeepAliveCases(testEnv: EnvKind): KeepAliveCase[];
19
+ export declare function runKeepAliveCase(testCase: KeepAliveCase, envConfig: {
20
+ apiKey?: string;
21
+ projectId?: string;
22
+ }): Promise<void>;
@@ -0,0 +1,490 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getKeepAliveEnvConfig = getKeepAliveEnvConfig;
7
+ exports.buildKeepAliveCases = buildKeepAliveCases;
8
+ exports.runKeepAliveCase = runKeepAliveCase;
9
+ const test_1 = require("@playwright/test");
10
+ const node_child_process_1 = require("node:child_process");
11
+ const node_fs_1 = __importDefault(require("node:fs"));
12
+ const sdk_1 = __importDefault(require("@browserbasehq/sdk"));
13
+ const ws_1 = __importDefault(require("ws"));
14
+ const v3_dynamic_config_js_1 = require("./v3.dynamic.config.js");
15
+ const runtimePaths_js_1 = require("../../lib/v3/runtimePaths.js");
16
+ const coreDir = (0, runtimePaths_js_1.getPackageRootDir)();
17
+ const resolveChildRunner = () => {
18
+ const distJsPath = `${coreDir}/dist/esm/tests/integration/keep-alive.child.js`;
19
+ if (node_fs_1.default.existsSync(distJsPath)) {
20
+ return { command: process.execPath, args: [distJsPath] };
21
+ }
22
+ return null;
23
+ };
24
+ const childRunner = resolveChildRunner();
25
+ const DEBUG = process.env.KEEP_ALIVE_DEBUG === "1";
26
+ const VIEW_MS = Number(process.env.KEEP_ALIVE_VIEW_MS ?? "0");
27
+ const LOCAL_TIMEOUT_MS = Number(process.env.KEEP_ALIVE_LOCAL_TIMEOUT_MS ?? "8000");
28
+ const BB_TIMEOUT_MS = Number(process.env.KEEP_ALIVE_BB_TIMEOUT_MS ?? "30000");
29
+ const STAY_OPEN_MS = Number(process.env.KEEP_ALIVE_STAY_OPEN_MS ?? "6000");
30
+ const ACTION_EXIT_TIMEOUT_MS = Number(process.env.KEEP_ALIVE_ACTION_EXIT_TIMEOUT_MS ?? "3000");
31
+ const LOCAL_INFO_TIMEOUT_MS = Number(process.env.KEEP_ALIVE_LOCAL_INFO_TIMEOUT_MS ?? "15000");
32
+ const BB_INFO_TIMEOUT_MS = Number(process.env.KEEP_ALIVE_BB_INFO_TIMEOUT_MS ??
33
+ (process.env.CI ? "45000" : "30000"));
34
+ const getInfoTimeoutMs = (env) => env === "BROWSERBASE" ? BB_INFO_TIMEOUT_MS : LOCAL_INFO_TIMEOUT_MS;
35
+ function debugLog(message) {
36
+ if (DEBUG) {
37
+ console.log(message);
38
+ }
39
+ }
40
+ function parseChildInfo(line) {
41
+ const prefix = "__KEEPALIVE__";
42
+ if (!line.startsWith(prefix))
43
+ return null;
44
+ try {
45
+ return JSON.parse(line.slice(prefix.length));
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ async function runScenario(config) {
52
+ const payload = {
53
+ env: config.env,
54
+ keepAlive: config.keepAlive,
55
+ disableAPI: config.disableAPI,
56
+ scenario: config.kind,
57
+ apiKey: config.apiKey,
58
+ projectId: config.projectId,
59
+ debug: config.debug,
60
+ viewMs: config.viewMs,
61
+ };
62
+ const encoded = `cfg:${Buffer.from(JSON.stringify(payload)).toString("base64")}`;
63
+ if (!childRunner) {
64
+ throw new Error("keep-alive child script not found at dist/esm/tests/integration/keep-alive.child.js");
65
+ }
66
+ const child = (0, node_child_process_1.spawn)(childRunner.command, [...childRunner.args, encoded], {
67
+ cwd: coreDir,
68
+ env: { ...process.env },
69
+ stdio: ["ignore", "pipe", "pipe"],
70
+ });
71
+ const logs = { stdout: [], stderr: [] };
72
+ let buffer = "";
73
+ let stderr = "";
74
+ let resolved = false;
75
+ const infoTimeoutMs = getInfoTimeoutMs(config.env);
76
+ const infoPromise = new Promise((resolve, reject) => {
77
+ const timeout = setTimeout(() => {
78
+ child.kill("SIGKILL");
79
+ const stdoutDetails = logs.stdout.length > 0
80
+ ? `\nChild stdout:\n${logs.stdout.join("\n")}`
81
+ : "";
82
+ const details = stderr.trim();
83
+ const suffix = details
84
+ ? `\nChild stderr:\n${details}`
85
+ : "\nChild did not emit keepAlive info.";
86
+ reject(new Error(`Child timed out waiting for info after ${infoTimeoutMs}ms (env=${config.env}, keepAlive=${config.keepAlive}, disableAPI=${config.disableAPI}, scenario=${config.kind}).${suffix}${stdoutDetails}`));
87
+ }, infoTimeoutMs);
88
+ child.stdout.on("data", (chunk) => {
89
+ buffer += chunk.toString();
90
+ let idx = buffer.indexOf("\n");
91
+ while (idx !== -1) {
92
+ const line = buffer.slice(0, idx).trim();
93
+ buffer = buffer.slice(idx + 1);
94
+ const parsed = parseChildInfo(line);
95
+ if (parsed && !resolved) {
96
+ resolved = true;
97
+ clearTimeout(timeout);
98
+ resolve(parsed);
99
+ }
100
+ else if (line.length > 0) {
101
+ logs.stdout.push(line);
102
+ debugLog(`[keep-alive-child] ${line}`);
103
+ }
104
+ idx = buffer.indexOf("\n");
105
+ }
106
+ });
107
+ child.on("exit", (code, signal) => {
108
+ if (resolved)
109
+ return;
110
+ clearTimeout(timeout);
111
+ const stdoutDetails = logs.stdout.length > 0
112
+ ? `\nChild stdout:\n${logs.stdout.join("\n")}`
113
+ : "";
114
+ const details = stderr.trim();
115
+ const suffix = details
116
+ ? `\nChild stderr:\n${details}`
117
+ : "\nChild exited without emitting keepAlive info.";
118
+ reject(new Error(`Child exited (code=${code ?? "null"}, signal=${signal ?? "null"}) before emitting keepAlive info (env=${config.env}, keepAlive=${config.keepAlive}, disableAPI=${config.disableAPI}, scenario=${config.kind}).${suffix}${stdoutDetails}`));
119
+ });
120
+ child.on("error", (error) => {
121
+ if (resolved)
122
+ return;
123
+ clearTimeout(timeout);
124
+ reject(error);
125
+ });
126
+ });
127
+ child.stderr.on("data", (chunk) => {
128
+ const text = chunk.toString();
129
+ stderr += text;
130
+ const trimmed = text.trim();
131
+ if (trimmed.length > 0) {
132
+ logs.stderr.push(trimmed);
133
+ debugLog(`[keep-alive-child] ${trimmed}`);
134
+ }
135
+ });
136
+ const info = await infoPromise;
137
+ return { info, child, logs };
138
+ }
139
+ async function stopChild(child) {
140
+ if (child.exitCode !== null)
141
+ return;
142
+ try {
143
+ child.kill("SIGKILL");
144
+ }
145
+ catch {
146
+ return;
147
+ }
148
+ await new Promise((resolve) => {
149
+ const timer = setTimeout(() => resolve(), 2000);
150
+ child.once("exit", () => {
151
+ clearTimeout(timer);
152
+ resolve();
153
+ });
154
+ });
155
+ }
156
+ async function waitForChildExit(child, timeoutMs) {
157
+ if (child.exitCode !== null)
158
+ return;
159
+ await new Promise((resolve) => {
160
+ const timer = setTimeout(() => resolve(), timeoutMs);
161
+ child.once("exit", () => {
162
+ clearTimeout(timer);
163
+ resolve();
164
+ });
165
+ });
166
+ }
167
+ async function checkLocalAlive(connectURL) {
168
+ let port;
169
+ try {
170
+ port = new URL(connectURL).port;
171
+ }
172
+ catch {
173
+ return { alive: false, status: "INVALID_URL" };
174
+ }
175
+ if (!port)
176
+ return { alive: false, status: "MISSING_PORT" };
177
+ const controller = new AbortController();
178
+ const timer = setTimeout(() => controller.abort(), 1500);
179
+ try {
180
+ const resp = await fetch(`http://127.0.0.1:${port}/json/version`, {
181
+ signal: controller.signal,
182
+ });
183
+ if (!resp.ok) {
184
+ return { alive: false, status: `HTTP_${resp.status}` };
185
+ }
186
+ const json = (await resp.json());
187
+ const ws = json?.webSocketDebuggerUrl;
188
+ if (!ws) {
189
+ return { alive: false, status: "MISSING_WS" };
190
+ }
191
+ if (ws !== connectURL) {
192
+ return { alive: false, status: "WS_MISMATCH" };
193
+ }
194
+ return { alive: true, status: "MATCH" };
195
+ }
196
+ catch {
197
+ return { alive: false, status: "FETCH_ERROR" };
198
+ }
199
+ finally {
200
+ clearTimeout(timer);
201
+ }
202
+ }
203
+ async function closeLocalBrowser(connectURL) {
204
+ await new Promise((resolve) => {
205
+ const ws = new ws_1.default(connectURL);
206
+ const timer = setTimeout(() => {
207
+ ws.terminate();
208
+ resolve();
209
+ }, 2000);
210
+ ws.on("open", () => {
211
+ ws.send(JSON.stringify({ id: 1, method: "Browser.close" }));
212
+ });
213
+ ws.on("error", () => {
214
+ clearTimeout(timer);
215
+ resolve();
216
+ });
217
+ ws.on("close", () => {
218
+ clearTimeout(timer);
219
+ resolve();
220
+ });
221
+ });
222
+ }
223
+ async function checkBrowserbaseAlive(sessionId, apiKey) {
224
+ if (!apiKey)
225
+ return { alive: false, status: "NO_API_KEY" };
226
+ const bb = new sdk_1.default({ apiKey });
227
+ try {
228
+ const snapshot = (await bb.sessions.retrieve(sessionId));
229
+ if (DEBUG) {
230
+ const status = snapshot?.status ?? "<missing>";
231
+ debugLog(`[keep-alive] session ${sessionId} status=${status}`);
232
+ }
233
+ const status = snapshot?.status;
234
+ return { alive: status === "RUNNING", status };
235
+ }
236
+ catch (error) {
237
+ debugLog(`[keep-alive] session ${sessionId} retrieve failed: ${String(error)}`);
238
+ return { alive: false, status: "RETRIEVE_FAILED" };
239
+ }
240
+ }
241
+ async function endBrowserbaseSession(sessionId, apiKey, projectId) {
242
+ if (!apiKey || !projectId)
243
+ return;
244
+ const bb = new sdk_1.default({ apiKey });
245
+ try {
246
+ await bb.sessions.update(sessionId, {
247
+ status: "REQUEST_RELEASE",
248
+ projectId,
249
+ });
250
+ }
251
+ catch {
252
+ // best-effort cleanup
253
+ }
254
+ }
255
+ async function assertStaysOpen(check, durationMs, intervalMs = 500) {
256
+ const start = Date.now();
257
+ const deadline = start + durationMs;
258
+ let lastStatus;
259
+ while (Date.now() < deadline) {
260
+ const result = await check();
261
+ lastStatus = result.status ?? lastStatus;
262
+ if (!result.alive) {
263
+ const elapsed = Date.now() - start;
264
+ const status = lastStatus ? ` (last status ${lastStatus})` : "";
265
+ throw new Error(`Browser closed after ${elapsed}ms (expected ${durationMs}ms)${status}.`);
266
+ }
267
+ await new Promise((r) => setTimeout(r, intervalMs));
268
+ }
269
+ return { durationMs: Date.now() - start, lastStatus };
270
+ }
271
+ async function waitForClosed(check, timeoutMs, intervalMs = 500) {
272
+ const start = Date.now();
273
+ let lastStatus;
274
+ while (Date.now() - start < timeoutMs) {
275
+ const result = await check();
276
+ lastStatus = result.status ?? lastStatus;
277
+ if (!result.alive) {
278
+ return { durationMs: Date.now() - start, lastStatus };
279
+ }
280
+ await new Promise((r) => setTimeout(r, intervalMs));
281
+ }
282
+ const status = lastStatus ? ` (last status ${lastStatus})` : "";
283
+ throw new Error(`Browser still alive after ${timeoutMs}ms${status}.`);
284
+ }
285
+ async function assertBrowserState(env, info, shouldStayOpen, apiKey, projectId) {
286
+ const expected = shouldStayOpen ? "open" : "closed";
287
+ if (env === "LOCAL") {
288
+ if (shouldStayOpen) {
289
+ const result = await assertStaysOpen(() => checkLocalAlive(info.connectURL), STAY_OPEN_MS);
290
+ const outcome = {
291
+ expected,
292
+ actual: "open",
293
+ durationMs: result.durationMs,
294
+ lastStatus: result.lastStatus,
295
+ };
296
+ await closeLocalBrowser(info.connectURL);
297
+ return outcome;
298
+ }
299
+ const result = await waitForClosed(() => checkLocalAlive(info.connectURL), LOCAL_TIMEOUT_MS);
300
+ return {
301
+ expected,
302
+ actual: "closed",
303
+ durationMs: result.durationMs,
304
+ lastStatus: result.lastStatus,
305
+ };
306
+ }
307
+ if (!info.sessionId) {
308
+ throw new Error("Browserbase sessionId missing");
309
+ }
310
+ if (shouldStayOpen) {
311
+ const result = await assertStaysOpen(() => checkBrowserbaseAlive(info.sessionId, apiKey), STAY_OPEN_MS, 1000);
312
+ const outcome = {
313
+ expected,
314
+ actual: "open",
315
+ durationMs: result.durationMs,
316
+ lastStatus: result.lastStatus,
317
+ };
318
+ await endBrowserbaseSession(info.sessionId, apiKey, projectId);
319
+ return outcome;
320
+ }
321
+ const result = await waitForClosed(() => checkBrowserbaseAlive(info.sessionId, apiKey), BB_TIMEOUT_MS, 1000);
322
+ return {
323
+ expected,
324
+ actual: "closed",
325
+ durationMs: result.durationMs,
326
+ lastStatus: result.lastStatus,
327
+ };
328
+ }
329
+ function dumpLogs(logs) {
330
+ if (logs.stdout.length > 0) {
331
+ console.log("[keep-alive] child stdout:");
332
+ for (const line of logs.stdout) {
333
+ console.log(` ${line}`);
334
+ }
335
+ }
336
+ if (logs.stderr.length > 0) {
337
+ console.log("[keep-alive] child stderr:");
338
+ for (const line of logs.stderr) {
339
+ console.log(` ${line}`);
340
+ }
341
+ }
342
+ }
343
+ function logCaseResult(label, envLabel, keepAlive, outcome, error) {
344
+ const prefix = `[keep-alive] ${envLabel} keepAlive=${keepAlive} ${label}`;
345
+ if (error) {
346
+ console.log(`${prefix} FAIL: ${error.message}`);
347
+ return;
348
+ }
349
+ if (!outcome) {
350
+ console.log(`${prefix} FAIL: missing outcome`);
351
+ return;
352
+ }
353
+ const status = outcome.lastStatus !== undefined
354
+ ? ` (last status ${outcome.lastStatus})`
355
+ : "";
356
+ if (outcome.actual === "open") {
357
+ console.log(`${prefix} PASS: stayed open for ${outcome.durationMs}ms${status}`);
358
+ }
359
+ else {
360
+ console.log(`${prefix} PASS: closed after ${outcome.durationMs}ms${status}`);
361
+ }
362
+ }
363
+ function getKeepAliveEnvConfig() {
364
+ const testEnv = v3_dynamic_config_js_1.v3DynamicTestConfig.env;
365
+ const apiKey = testEnv === "BROWSERBASE"
366
+ ? v3_dynamic_config_js_1.v3DynamicTestConfig.apiKey
367
+ : undefined;
368
+ const projectId = testEnv === "BROWSERBASE"
369
+ ? v3_dynamic_config_js_1.v3DynamicTestConfig.projectId
370
+ : undefined;
371
+ const hasBrowserbaseCreds = Boolean(apiKey && projectId);
372
+ return { testEnv, apiKey, projectId, hasBrowserbaseCreds };
373
+ }
374
+ function buildKeepAliveCases(testEnv) {
375
+ const scenarios = [
376
+ { kind: "unhandled", label: "unhandled rejection" },
377
+ { kind: "close", label: "stagehand.close()" },
378
+ { kind: "sigterm", label: "SIGTERM" },
379
+ { kind: "sigint", label: "SIGINT" },
380
+ ];
381
+ const environments = testEnv === "BROWSERBASE"
382
+ ? [
383
+ {
384
+ env: "BROWSERBASE",
385
+ label: "bb direct ws",
386
+ disableAPI: true,
387
+ requiresBrowserbase: true,
388
+ },
389
+ {
390
+ env: "BROWSERBASE",
391
+ label: "bb via api",
392
+ disableAPI: false,
393
+ requiresBrowserbase: true,
394
+ },
395
+ ]
396
+ : [
397
+ {
398
+ env: "LOCAL",
399
+ label: "local",
400
+ disableAPI: false,
401
+ requiresBrowserbase: false,
402
+ },
403
+ ];
404
+ const cases = [];
405
+ for (const keepAlive of [true, false]) {
406
+ for (const envConfig of environments) {
407
+ for (const scenario of scenarios) {
408
+ const expectation = keepAlive ? "expect open" : "expect closed";
409
+ cases.push({
410
+ title: `${envConfig.label} keepAlive=${keepAlive} ${scenario.label} (${expectation})`,
411
+ env: envConfig.env,
412
+ envLabel: envConfig.label,
413
+ keepAlive,
414
+ disableAPI: envConfig.disableAPI,
415
+ kind: scenario.kind,
416
+ requiresBrowserbase: envConfig.requiresBrowserbase,
417
+ });
418
+ }
419
+ }
420
+ }
421
+ return cases;
422
+ }
423
+ async function runKeepAliveCase(testCase, envConfig) {
424
+ let info;
425
+ let child;
426
+ let logs;
427
+ try {
428
+ ({ info, child, logs } = await runScenario({
429
+ env: testCase.env,
430
+ keepAlive: testCase.keepAlive,
431
+ disableAPI: testCase.disableAPI,
432
+ kind: testCase.kind,
433
+ debug: DEBUG,
434
+ viewMs: VIEW_MS,
435
+ apiKey: envConfig.apiKey,
436
+ projectId: envConfig.projectId,
437
+ }));
438
+ }
439
+ catch (error) {
440
+ logCaseResult(testCase.title, testCase.envLabel, testCase.keepAlive, undefined, error);
441
+ throw error;
442
+ }
443
+ if (testCase.kind === "sigterm") {
444
+ child.kill("SIGTERM");
445
+ }
446
+ else if (testCase.kind === "sigint") {
447
+ child.kill("SIGINT");
448
+ }
449
+ let outcome;
450
+ let failure;
451
+ try {
452
+ if (testCase.kind === "close" ||
453
+ testCase.kind === "unhandled" ||
454
+ testCase.kind === "sigterm" ||
455
+ testCase.kind === "sigint") {
456
+ await waitForChildExit(child, ACTION_EXIT_TIMEOUT_MS);
457
+ }
458
+ outcome = await assertBrowserState(testCase.env, info, testCase.keepAlive, envConfig.apiKey, envConfig.projectId);
459
+ }
460
+ catch (error) {
461
+ failure = error;
462
+ if (logs) {
463
+ dumpLogs(logs);
464
+ }
465
+ throw error;
466
+ }
467
+ finally {
468
+ logCaseResult(testCase.title, testCase.envLabel, testCase.keepAlive, outcome, failure);
469
+ await stopChild(child);
470
+ if (testCase.env === "LOCAL" && info.connectURL) {
471
+ await closeLocalBrowser(info.connectURL);
472
+ }
473
+ if (testCase.env === "BROWSERBASE" && info.sessionId) {
474
+ await endBrowserbaseSession(info.sessionId, envConfig.apiKey, envConfig.projectId);
475
+ }
476
+ }
477
+ }
478
+ test_1.test.describe.parallel("keepAlive behavior", () => {
479
+ const { testEnv, apiKey, projectId, hasBrowserbaseCreds } = getKeepAliveEnvConfig();
480
+ const cases = buildKeepAliveCases(testEnv);
481
+ for (const testCase of cases) {
482
+ (0, test_1.test)(testCase.title, async () => {
483
+ if (testCase.requiresBrowserbase) {
484
+ test_1.test.skip(!hasBrowserbaseCreds, "Browserbase credentials required");
485
+ }
486
+ await runKeepAliveCase(testCase, { apiKey, projectId });
487
+ });
488
+ }
489
+ });
490
+ //# sourceMappingURL=keep-alive.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keep-alive.spec.js","sourceRoot":"","sources":["../../../../tests/integration/keep-alive.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test } from \"@playwright/test\";\nimport { spawn } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport Browserbase from \"@browserbasehq/sdk\";\nimport WebSocket from \"ws\";\nimport { v3DynamicTestConfig } from \"./v3.dynamic.config.js\";\nimport { getPackageRootDir } from \"../../lib/v3/runtimePaths.js\";\n\nexport type EnvKind = \"LOCAL\" | \"BROWSERBASE\";\nexport type ScenarioKind = \"unhandled\" | \"close\" | \"sigterm\" | \"sigint\";\n\nexport type KeepAliveCase = {\n title: string;\n env: EnvKind;\n envLabel: string;\n keepAlive: boolean;\n disableAPI: boolean;\n kind: ScenarioKind;\n requiresBrowserbase: boolean;\n};\n\ntype ScenarioConfig = {\n env: EnvKind;\n keepAlive: boolean;\n disableAPI: boolean;\n kind: ScenarioKind;\n debug: boolean;\n viewMs: number;\n apiKey?: string;\n projectId?: string;\n};\n\ntype ChildInfo = {\n connectURL: string;\n sessionId: string | null;\n};\n\ntype ChildLogs = {\n stdout: string[];\n stderr: string[];\n};\n\ntype CheckResult = {\n alive: boolean;\n status?: string;\n};\n\ntype Outcome = {\n expected: \"open\" | \"closed\";\n actual: \"open\" | \"closed\";\n durationMs: number;\n lastStatus?: string;\n};\n\nconst coreDir = getPackageRootDir();\n\nconst resolveChildRunner = (): { command: string; args: string[] } | null => {\n const distJsPath = `${coreDir}/dist/esm/tests/integration/keep-alive.child.js`;\n if (fs.existsSync(distJsPath)) {\n return { command: process.execPath, args: [distJsPath] };\n }\n\n return null;\n};\n\nconst childRunner = resolveChildRunner();\n\nconst DEBUG = process.env.KEEP_ALIVE_DEBUG === \"1\";\nconst VIEW_MS = Number(process.env.KEEP_ALIVE_VIEW_MS ?? \"0\");\nconst LOCAL_TIMEOUT_MS = Number(\n process.env.KEEP_ALIVE_LOCAL_TIMEOUT_MS ?? \"8000\",\n);\nconst BB_TIMEOUT_MS = Number(process.env.KEEP_ALIVE_BB_TIMEOUT_MS ?? \"30000\");\nconst STAY_OPEN_MS = Number(process.env.KEEP_ALIVE_STAY_OPEN_MS ?? \"6000\");\nconst ACTION_EXIT_TIMEOUT_MS = Number(\n process.env.KEEP_ALIVE_ACTION_EXIT_TIMEOUT_MS ?? \"3000\",\n);\nconst LOCAL_INFO_TIMEOUT_MS = Number(\n process.env.KEEP_ALIVE_LOCAL_INFO_TIMEOUT_MS ?? \"15000\",\n);\nconst BB_INFO_TIMEOUT_MS = Number(\n process.env.KEEP_ALIVE_BB_INFO_TIMEOUT_MS ??\n (process.env.CI ? \"45000\" : \"30000\"),\n);\n\nconst getInfoTimeoutMs = (env: EnvKind): number =>\n env === \"BROWSERBASE\" ? BB_INFO_TIMEOUT_MS : LOCAL_INFO_TIMEOUT_MS;\n\nfunction debugLog(message: string): void {\n if (DEBUG) {\n console.log(message);\n }\n}\n\nfunction parseChildInfo(line: string): ChildInfo | null {\n const prefix = \"__KEEPALIVE__\";\n if (!line.startsWith(prefix)) return null;\n try {\n return JSON.parse(line.slice(prefix.length)) as ChildInfo;\n } catch {\n return null;\n }\n}\n\nasync function runScenario(config: ScenarioConfig): Promise<{\n info: ChildInfo;\n child: ReturnType<typeof spawn>;\n logs: ChildLogs;\n}> {\n const payload = {\n env: config.env,\n keepAlive: config.keepAlive,\n disableAPI: config.disableAPI,\n scenario: config.kind,\n apiKey: config.apiKey,\n projectId: config.projectId,\n debug: config.debug,\n viewMs: config.viewMs,\n };\n const encoded = `cfg:${Buffer.from(JSON.stringify(payload)).toString(\"base64\")}`;\n\n if (!childRunner) {\n throw new Error(\n \"keep-alive child script not found at dist/esm/tests/integration/keep-alive.child.js\",\n );\n }\n\n const child = spawn(childRunner.command, [...childRunner.args, encoded], {\n cwd: coreDir,\n env: { ...process.env },\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n\n const logs: ChildLogs = { stdout: [], stderr: [] };\n let buffer = \"\";\n let stderr = \"\";\n let resolved = false;\n const infoTimeoutMs = getInfoTimeoutMs(config.env);\n\n const infoPromise = new Promise<ChildInfo>((resolve, reject) => {\n const timeout = setTimeout(() => {\n child.kill(\"SIGKILL\");\n const stdoutDetails =\n logs.stdout.length > 0\n ? `\\nChild stdout:\\n${logs.stdout.join(\"\\n\")}`\n : \"\";\n const details = stderr.trim();\n const suffix = details\n ? `\\nChild stderr:\\n${details}`\n : \"\\nChild did not emit keepAlive info.\";\n reject(\n new Error(\n `Child timed out waiting for info after ${infoTimeoutMs}ms (env=${config.env}, keepAlive=${config.keepAlive}, disableAPI=${config.disableAPI}, scenario=${config.kind}).${suffix}${stdoutDetails}`,\n ),\n );\n }, infoTimeoutMs);\n\n child.stdout.on(\"data\", (chunk) => {\n buffer += chunk.toString();\n let idx = buffer.indexOf(\"\\n\");\n while (idx !== -1) {\n const line = buffer.slice(0, idx).trim();\n buffer = buffer.slice(idx + 1);\n const parsed = parseChildInfo(line);\n if (parsed && !resolved) {\n resolved = true;\n clearTimeout(timeout);\n resolve(parsed);\n } else if (line.length > 0) {\n logs.stdout.push(line);\n debugLog(`[keep-alive-child] ${line}`);\n }\n idx = buffer.indexOf(\"\\n\");\n }\n });\n\n child.on(\"exit\", (code, signal) => {\n if (resolved) return;\n clearTimeout(timeout);\n const stdoutDetails =\n logs.stdout.length > 0\n ? `\\nChild stdout:\\n${logs.stdout.join(\"\\n\")}`\n : \"\";\n const details = stderr.trim();\n const suffix = details\n ? `\\nChild stderr:\\n${details}`\n : \"\\nChild exited without emitting keepAlive info.\";\n reject(\n new Error(\n `Child exited (code=${code ?? \"null\"}, signal=${signal ?? \"null\"}) before emitting keepAlive info (env=${config.env}, keepAlive=${config.keepAlive}, disableAPI=${config.disableAPI}, scenario=${config.kind}).${suffix}${stdoutDetails}`,\n ),\n );\n });\n\n child.on(\"error\", (error) => {\n if (resolved) return;\n clearTimeout(timeout);\n reject(error);\n });\n });\n\n child.stderr.on(\"data\", (chunk) => {\n const text = chunk.toString();\n stderr += text;\n const trimmed = text.trim();\n if (trimmed.length > 0) {\n logs.stderr.push(trimmed);\n debugLog(`[keep-alive-child] ${trimmed}`);\n }\n });\n\n const info = await infoPromise;\n return { info, child, logs };\n}\n\nasync function stopChild(child: ReturnType<typeof spawn>): Promise<void> {\n if (child.exitCode !== null) return;\n try {\n child.kill(\"SIGKILL\");\n } catch {\n return;\n }\n await new Promise<void>((resolve) => {\n const timer = setTimeout(() => resolve(), 2000);\n child.once(\"exit\", () => {\n clearTimeout(timer);\n resolve();\n });\n });\n}\n\nasync function waitForChildExit(\n child: ReturnType<typeof spawn>,\n timeoutMs: number,\n): Promise<void> {\n if (child.exitCode !== null) return;\n await new Promise<void>((resolve) => {\n const timer = setTimeout(() => resolve(), timeoutMs);\n child.once(\"exit\", () => {\n clearTimeout(timer);\n resolve();\n });\n });\n}\n\nasync function checkLocalAlive(connectURL: string): Promise<CheckResult> {\n let port: string;\n try {\n port = new URL(connectURL).port;\n } catch {\n return { alive: false, status: \"INVALID_URL\" };\n }\n if (!port) return { alive: false, status: \"MISSING_PORT\" };\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 1500);\n try {\n const resp = await fetch(`http://127.0.0.1:${port}/json/version`, {\n signal: controller.signal,\n });\n if (!resp.ok) {\n return { alive: false, status: `HTTP_${resp.status}` };\n }\n const json = (await resp.json()) as { webSocketDebuggerUrl?: string };\n const ws = json?.webSocketDebuggerUrl;\n if (!ws) {\n return { alive: false, status: \"MISSING_WS\" };\n }\n if (ws !== connectURL) {\n return { alive: false, status: \"WS_MISMATCH\" };\n }\n return { alive: true, status: \"MATCH\" };\n } catch {\n return { alive: false, status: \"FETCH_ERROR\" };\n } finally {\n clearTimeout(timer);\n }\n}\n\nasync function closeLocalBrowser(connectURL: string): Promise<void> {\n await new Promise<void>((resolve) => {\n const ws = new WebSocket(connectURL);\n const timer = setTimeout(() => {\n ws.terminate();\n resolve();\n }, 2000);\n ws.on(\"open\", () => {\n ws.send(JSON.stringify({ id: 1, method: \"Browser.close\" }));\n });\n ws.on(\"error\", () => {\n clearTimeout(timer);\n resolve();\n });\n ws.on(\"close\", () => {\n clearTimeout(timer);\n resolve();\n });\n });\n}\n\nasync function checkBrowserbaseAlive(\n sessionId: string,\n apiKey?: string,\n): Promise<CheckResult> {\n if (!apiKey) return { alive: false, status: \"NO_API_KEY\" };\n\n const bb = new Browserbase({ apiKey });\n try {\n const snapshot = (await bb.sessions.retrieve(sessionId)) as {\n status?: string;\n };\n if (DEBUG) {\n const status = snapshot?.status ?? \"<missing>\";\n debugLog(`[keep-alive] session ${sessionId} status=${status}`);\n }\n const status = snapshot?.status;\n return { alive: status === \"RUNNING\", status };\n } catch (error) {\n debugLog(\n `[keep-alive] session ${sessionId} retrieve failed: ${String(error)}`,\n );\n return { alive: false, status: \"RETRIEVE_FAILED\" };\n }\n}\n\nasync function endBrowserbaseSession(\n sessionId: string,\n apiKey?: string,\n projectId?: string,\n): Promise<void> {\n if (!apiKey || !projectId) return;\n const bb = new Browserbase({ apiKey });\n try {\n await bb.sessions.update(sessionId, {\n status: \"REQUEST_RELEASE\",\n projectId,\n });\n } catch {\n // best-effort cleanup\n }\n}\n\nasync function assertStaysOpen(\n check: () => Promise<CheckResult>,\n durationMs: number,\n intervalMs = 500,\n): Promise<{ durationMs: number; lastStatus?: string }> {\n const start = Date.now();\n const deadline = start + durationMs;\n let lastStatus: string | undefined;\n while (Date.now() < deadline) {\n const result = await check();\n lastStatus = result.status ?? lastStatus;\n if (!result.alive) {\n const elapsed = Date.now() - start;\n const status = lastStatus ? ` (last status ${lastStatus})` : \"\";\n throw new Error(\n `Browser closed after ${elapsed}ms (expected ${durationMs}ms)${status}.`,\n );\n }\n await new Promise((r) => setTimeout(r, intervalMs));\n }\n return { durationMs: Date.now() - start, lastStatus };\n}\n\nasync function waitForClosed(\n check: () => Promise<CheckResult>,\n timeoutMs: number,\n intervalMs = 500,\n): Promise<{ durationMs: number; lastStatus?: string }> {\n const start = Date.now();\n let lastStatus: string | undefined;\n while (Date.now() - start < timeoutMs) {\n const result = await check();\n lastStatus = result.status ?? lastStatus;\n if (!result.alive) {\n return { durationMs: Date.now() - start, lastStatus };\n }\n await new Promise((r) => setTimeout(r, intervalMs));\n }\n const status = lastStatus ? ` (last status ${lastStatus})` : \"\";\n throw new Error(`Browser still alive after ${timeoutMs}ms${status}.`);\n}\n\nasync function assertBrowserState(\n env: EnvKind,\n info: ChildInfo,\n shouldStayOpen: boolean,\n apiKey?: string,\n projectId?: string,\n): Promise<Outcome> {\n const expected: Outcome[\"expected\"] = shouldStayOpen ? \"open\" : \"closed\";\n if (env === \"LOCAL\") {\n if (shouldStayOpen) {\n const result = await assertStaysOpen(\n () => checkLocalAlive(info.connectURL),\n STAY_OPEN_MS,\n );\n const outcome: Outcome = {\n expected,\n actual: \"open\",\n durationMs: result.durationMs,\n lastStatus: result.lastStatus,\n };\n await closeLocalBrowser(info.connectURL);\n return outcome;\n }\n\n const result = await waitForClosed(\n () => checkLocalAlive(info.connectURL),\n LOCAL_TIMEOUT_MS,\n );\n return {\n expected,\n actual: \"closed\",\n durationMs: result.durationMs,\n lastStatus: result.lastStatus,\n };\n }\n\n if (!info.sessionId) {\n throw new Error(\"Browserbase sessionId missing\");\n }\n\n if (shouldStayOpen) {\n const result = await assertStaysOpen(\n () => checkBrowserbaseAlive(info.sessionId!, apiKey),\n STAY_OPEN_MS,\n 1000,\n );\n const outcome: Outcome = {\n expected,\n actual: \"open\",\n durationMs: result.durationMs,\n lastStatus: result.lastStatus,\n };\n await endBrowserbaseSession(info.sessionId, apiKey, projectId);\n return outcome;\n }\n\n const result = await waitForClosed(\n () => checkBrowserbaseAlive(info.sessionId!, apiKey),\n BB_TIMEOUT_MS,\n 1000,\n );\n return {\n expected,\n actual: \"closed\",\n durationMs: result.durationMs,\n lastStatus: result.lastStatus,\n };\n}\n\nfunction dumpLogs(logs: ChildLogs): void {\n if (logs.stdout.length > 0) {\n console.log(\"[keep-alive] child stdout:\");\n for (const line of logs.stdout) {\n console.log(` ${line}`);\n }\n }\n if (logs.stderr.length > 0) {\n console.log(\"[keep-alive] child stderr:\");\n for (const line of logs.stderr) {\n console.log(` ${line}`);\n }\n }\n}\n\nfunction logCaseResult(\n label: string,\n envLabel: string,\n keepAlive: boolean,\n outcome?: Outcome,\n error?: Error,\n): void {\n const prefix = `[keep-alive] ${envLabel} keepAlive=${keepAlive} ${label}`;\n if (error) {\n console.log(`${prefix} FAIL: ${error.message}`);\n return;\n }\n if (!outcome) {\n console.log(`${prefix} FAIL: missing outcome`);\n return;\n }\n const status =\n outcome.lastStatus !== undefined\n ? ` (last status ${outcome.lastStatus})`\n : \"\";\n if (outcome.actual === \"open\") {\n console.log(\n `${prefix} PASS: stayed open for ${outcome.durationMs}ms${status}`,\n );\n } else {\n console.log(\n `${prefix} PASS: closed after ${outcome.durationMs}ms${status}`,\n );\n }\n}\n\nexport function getKeepAliveEnvConfig(): {\n testEnv: EnvKind;\n apiKey?: string;\n projectId?: string;\n hasBrowserbaseCreds: boolean;\n} {\n const testEnv = v3DynamicTestConfig.env;\n const apiKey =\n testEnv === \"BROWSERBASE\"\n ? (v3DynamicTestConfig.apiKey as string | undefined)\n : undefined;\n const projectId =\n testEnv === \"BROWSERBASE\"\n ? (v3DynamicTestConfig.projectId as string | undefined)\n : undefined;\n const hasBrowserbaseCreds = Boolean(apiKey && projectId);\n return { testEnv, apiKey, projectId, hasBrowserbaseCreds };\n}\n\nexport function buildKeepAliveCases(testEnv: EnvKind): KeepAliveCase[] {\n const scenarios: Array<{ kind: ScenarioKind; label: string }> = [\n { kind: \"unhandled\", label: \"unhandled rejection\" },\n { kind: \"close\", label: \"stagehand.close()\" },\n { kind: \"sigterm\", label: \"SIGTERM\" },\n { kind: \"sigint\", label: \"SIGINT\" },\n ];\n\n const environments: Array<{\n env: EnvKind;\n label: string;\n disableAPI: boolean;\n requiresBrowserbase: boolean;\n }> =\n testEnv === \"BROWSERBASE\"\n ? [\n {\n env: \"BROWSERBASE\",\n label: \"bb direct ws\",\n disableAPI: true,\n requiresBrowserbase: true,\n },\n {\n env: \"BROWSERBASE\",\n label: \"bb via api\",\n disableAPI: false,\n requiresBrowserbase: true,\n },\n ]\n : [\n {\n env: \"LOCAL\",\n label: \"local\",\n disableAPI: false,\n requiresBrowserbase: false,\n },\n ];\n\n const cases: KeepAliveCase[] = [];\n for (const keepAlive of [true, false]) {\n for (const envConfig of environments) {\n for (const scenario of scenarios) {\n const expectation = keepAlive ? \"expect open\" : \"expect closed\";\n cases.push({\n title: `${envConfig.label} keepAlive=${keepAlive} ${scenario.label} (${expectation})`,\n env: envConfig.env,\n envLabel: envConfig.label,\n keepAlive,\n disableAPI: envConfig.disableAPI,\n kind: scenario.kind,\n requiresBrowserbase: envConfig.requiresBrowserbase,\n });\n }\n }\n }\n return cases;\n}\n\nexport async function runKeepAliveCase(\n testCase: KeepAliveCase,\n envConfig: {\n apiKey?: string;\n projectId?: string;\n },\n): Promise<void> {\n let info: ChildInfo | undefined;\n let child: ReturnType<typeof spawn> | undefined;\n let logs: ChildLogs | undefined;\n try {\n ({ info, child, logs } = await runScenario({\n env: testCase.env,\n keepAlive: testCase.keepAlive,\n disableAPI: testCase.disableAPI,\n kind: testCase.kind,\n debug: DEBUG,\n viewMs: VIEW_MS,\n apiKey: envConfig.apiKey,\n projectId: envConfig.projectId,\n }));\n } catch (error) {\n logCaseResult(\n testCase.title,\n testCase.envLabel,\n testCase.keepAlive,\n undefined,\n error as Error,\n );\n throw error;\n }\n\n if (testCase.kind === \"sigterm\") {\n child.kill(\"SIGTERM\");\n } else if (testCase.kind === \"sigint\") {\n child.kill(\"SIGINT\");\n }\n\n let outcome: Outcome | undefined;\n let failure: Error | undefined;\n try {\n if (\n testCase.kind === \"close\" ||\n testCase.kind === \"unhandled\" ||\n testCase.kind === \"sigterm\" ||\n testCase.kind === \"sigint\"\n ) {\n await waitForChildExit(child, ACTION_EXIT_TIMEOUT_MS);\n }\n outcome = await assertBrowserState(\n testCase.env,\n info,\n testCase.keepAlive,\n envConfig.apiKey,\n envConfig.projectId,\n );\n } catch (error) {\n failure = error as Error;\n if (logs) {\n dumpLogs(logs);\n }\n throw error;\n } finally {\n logCaseResult(\n testCase.title,\n testCase.envLabel,\n testCase.keepAlive,\n outcome,\n failure,\n );\n await stopChild(child);\n if (testCase.env === \"LOCAL\" && info.connectURL) {\n await closeLocalBrowser(info.connectURL);\n }\n if (testCase.env === \"BROWSERBASE\" && info.sessionId) {\n await endBrowserbaseSession(\n info.sessionId,\n envConfig.apiKey,\n envConfig.projectId,\n );\n }\n }\n}\n\ntest.describe.parallel(\"keepAlive behavior\", () => {\n const { testEnv, apiKey, projectId, hasBrowserbaseCreds } =\n getKeepAliveEnvConfig();\n const cases = buildKeepAliveCases(testEnv);\n\n for (const testCase of cases) {\n test(testCase.title, async () => {\n if (testCase.requiresBrowserbase) {\n test.skip(!hasBrowserbaseCreds, \"Browserbase credentials required\");\n }\n\n await runKeepAliveCase(testCase, { apiKey, projectId });\n });\n }\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};