@browserbasehq/orca 3.1.0-patch.3 → 3.2.0-middleware.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 (1588) 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.d.ts +1 -0
  17. package/dist/cjs/lib/utils.js +674 -0
  18. package/dist/cjs/lib/utils.js.map +1 -0
  19. package/dist/cjs/lib/v3/agent/AgentClient.d.ts +8 -0
  20. package/dist/cjs/lib/v3/agent/AgentClient.js +34 -0
  21. package/dist/cjs/lib/v3/agent/AgentClient.js.map +1 -0
  22. package/dist/cjs/lib/v3/agent/AgentProvider.js +81 -0
  23. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -0
  24. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +843 -0
  25. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
  26. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +802 -0
  27. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -0
  28. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +778 -0
  29. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
  30. package/dist/cjs/lib/v3/agent/OpenAICUAClient.d.ts +4 -4
  31. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +681 -0
  32. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -0
  33. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +7 -3
  34. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js +212 -0
  35. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
  36. package/dist/cjs/lib/v3/agent/tools/act.d.ts +2 -2
  37. package/dist/cjs/lib/v3/agent/tools/act.js +66 -0
  38. package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -0
  39. package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  40. package/dist/cjs/lib/v3/agent/tools/ariaTree.js +62 -0
  41. package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -0
  42. package/dist/cjs/lib/v3/agent/tools/braveSearch.js +77 -0
  43. package/dist/cjs/lib/v3/agent/tools/braveSearch.js.map +1 -0
  44. package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.d.ts +13 -0
  45. package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.js +70 -0
  46. package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.js.map +1 -0
  47. package/dist/cjs/lib/v3/agent/tools/click.js +100 -0
  48. package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -0
  49. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js +72 -0
  50. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -0
  51. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +101 -0
  52. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
  53. package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
  54. package/dist/cjs/lib/v3/agent/tools/extract.js +101 -0
  55. package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -0
  56. package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  57. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +158 -0
  58. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -0
  59. package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +8 -3
  60. package/dist/cjs/lib/v3/agent/tools/fillform.js +78 -0
  61. package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -0
  62. package/dist/cjs/lib/v3/agent/tools/goto.js +35 -0
  63. package/dist/cjs/lib/v3/agent/tools/goto.js.map +1 -0
  64. package/dist/cjs/lib/v3/agent/tools/index.d.ts +25 -4
  65. package/dist/cjs/lib/v3/agent/tools/index.js +130 -0
  66. package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -0
  67. package/dist/cjs/lib/v3/agent/tools/keys.d.ts +1 -1
  68. package/dist/cjs/lib/v3/agent/tools/keys.js +64 -0
  69. package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -0
  70. package/dist/cjs/lib/v3/agent/tools/navback.js +27 -0
  71. package/dist/cjs/lib/v3/agent/tools/navback.js.map +1 -0
  72. package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
  73. package/dist/cjs/lib/v3/agent/tools/screenshot.js +47 -0
  74. package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -0
  75. package/dist/cjs/lib/v3/agent/tools/scroll.js +159 -0
  76. package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -0
  77. package/dist/cjs/lib/v3/agent/tools/think.js +28 -0
  78. package/dist/cjs/lib/v3/agent/tools/think.js.map +1 -0
  79. package/dist/cjs/lib/v3/agent/tools/type.d.ts +2 -2
  80. package/dist/cjs/lib/v3/agent/tools/type.js +111 -0
  81. package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -0
  82. package/dist/cjs/lib/v3/agent/tools/wait.js +63 -0
  83. package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -0
  84. package/dist/cjs/lib/v3/agent/utils/actionMapping.js +103 -0
  85. package/dist/cjs/lib/v3/agent/utils/actionMapping.js.map +1 -0
  86. package/dist/cjs/lib/v3/agent/utils/captchaSolver.d.ts +76 -0
  87. package/dist/cjs/lib/v3/agent/utils/captchaSolver.js +175 -0
  88. package/dist/cjs/lib/v3/agent/utils/captchaSolver.js.map +1 -0
  89. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js +33 -0
  90. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
  91. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js +65 -0
  92. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
  93. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js +150 -0
  94. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
  95. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +108 -0
  96. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
  97. package/dist/cjs/lib/v3/agent/utils/imageCompression.js +212 -0
  98. package/dist/cjs/lib/v3/agent/utils/imageCompression.js.map +1 -0
  99. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js +167 -0
  100. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js.map +1 -0
  101. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js +29 -0
  102. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
  103. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js +90 -0
  104. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
  105. package/dist/cjs/lib/v3/agent/utils/variables.d.ts +21 -0
  106. package/dist/cjs/lib/v3/agent/utils/variables.js +54 -0
  107. package/dist/cjs/lib/v3/agent/utils/variables.js.map +1 -0
  108. package/dist/cjs/lib/v3/agent/utils/xpath.js +22 -0
  109. package/dist/cjs/lib/v3/agent/utils/xpath.js.map +1 -0
  110. package/dist/cjs/lib/v3/api.d.ts +23 -5
  111. package/dist/cjs/lib/v3/api.js +589 -0
  112. package/dist/cjs/lib/v3/api.js.map +1 -0
  113. package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
  114. package/dist/cjs/lib/v3/cache/ActCache.js +280 -0
  115. package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -0
  116. package/dist/cjs/lib/v3/cache/AgentCache.d.ts +1 -0
  117. package/dist/cjs/lib/v3/cache/AgentCache.js +651 -0
  118. package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -0
  119. package/dist/cjs/lib/v3/cache/CacheStorage.js +105 -0
  120. package/dist/cjs/lib/v3/cache/CacheStorage.js.map +1 -0
  121. package/dist/cjs/lib/v3/cache/serverAgentCache.js +52 -0
  122. package/dist/cjs/lib/v3/cache/serverAgentCache.js.map +1 -0
  123. package/dist/cjs/lib/v3/cache/utils.js +44 -0
  124. package/dist/cjs/lib/v3/cache/utils.js.map +1 -0
  125. package/dist/cjs/lib/v3/cli.js +15 -0
  126. package/dist/cjs/lib/v3/cli.js.map +1 -0
  127. package/dist/cjs/lib/v3/dom/a11yScripts/index.js +124 -0
  128. package/dist/cjs/lib/v3/dom/a11yScripts/index.js.map +1 -0
  129. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js +23 -0
  130. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
  131. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js +59 -0
  132. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
  133. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js +5 -0
  134. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
  135. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js +11 -0
  136. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
  137. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js +5 -0
  138. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js.map +1 -0
  139. package/dist/cjs/lib/v3/dom/index.js +18 -0
  140. package/dist/cjs/lib/v3/dom/index.js.map +1 -0
  141. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js +278 -0
  142. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js.map +1 -0
  143. package/dist/cjs/lib/v3/dom/locatorScripts/index.js +21 -0
  144. package/dist/cjs/lib/v3/dom/locatorScripts/index.js.map +1 -0
  145. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js +474 -0
  146. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
  147. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js +289 -0
  148. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
  149. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js +286 -0
  150. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
  151. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js +381 -0
  152. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
  153. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js +202 -0
  154. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
  155. package/dist/cjs/lib/v3/dom/piercer.entry.js +5 -0
  156. package/dist/cjs/lib/v3/dom/piercer.entry.js.map +1 -0
  157. package/dist/cjs/lib/v3/dom/piercer.runtime.js +93 -0
  158. package/dist/cjs/lib/v3/dom/piercer.runtime.js.map +1 -0
  159. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js +5 -0
  160. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
  161. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js +43 -0
  162. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
  163. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js +6 -0
  164. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js.map +1 -0
  165. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js +85 -0
  166. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
  167. package/dist/cjs/lib/v3/external_clients/aisdk.js +107 -0
  168. package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -0
  169. package/dist/cjs/lib/v3/external_clients/customOpenAI.js +224 -0
  170. package/dist/cjs/lib/v3/external_clients/customOpenAI.js.map +1 -0
  171. package/dist/cjs/lib/v3/flowlogger/EventEmitter.d.ts +7 -0
  172. package/dist/cjs/lib/v3/flowlogger/EventEmitter.js +30 -0
  173. package/dist/cjs/lib/v3/flowlogger/EventEmitter.js.map +1 -0
  174. package/dist/cjs/lib/v3/flowlogger/EventSink.d.ts +44 -0
  175. package/dist/cjs/lib/v3/flowlogger/EventSink.js +217 -0
  176. package/dist/cjs/lib/v3/flowlogger/EventSink.js.map +1 -0
  177. package/dist/cjs/lib/v3/flowlogger/EventStore.d.ts +26 -0
  178. package/dist/cjs/lib/v3/flowlogger/EventStore.js +135 -0
  179. package/dist/cjs/lib/v3/flowlogger/EventStore.js.map +1 -0
  180. package/dist/cjs/lib/v3/flowlogger/FlowLogger.d.ts +99 -0
  181. package/dist/cjs/lib/v3/flowlogger/FlowLogger.js +591 -0
  182. package/dist/cjs/lib/v3/flowlogger/FlowLogger.js.map +1 -0
  183. package/dist/cjs/lib/v3/flowlogger/prettify.d.ts +6 -0
  184. package/dist/cjs/lib/v3/flowlogger/prettify.js +395 -0
  185. package/dist/cjs/lib/v3/flowlogger/prettify.js.map +1 -0
  186. package/dist/cjs/lib/v3/handlers/actHandler.d.ts +2 -1
  187. package/dist/cjs/lib/v3/handlers/actHandler.js +344 -0
  188. package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -0
  189. package/dist/cjs/lib/v3/handlers/extractHandler.js +144 -0
  190. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -0
  191. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +590 -0
  192. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
  193. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js +17 -0
  194. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
  195. package/dist/cjs/lib/v3/handlers/observeHandler.js +159 -0
  196. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -0
  197. package/dist/cjs/lib/v3/handlers/v3AgentHandler.d.ts +2 -5
  198. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +506 -0
  199. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -0
  200. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.d.ts +5 -0
  201. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +652 -0
  202. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
  203. package/dist/cjs/lib/v3/index.d.ts +143 -0
  204. package/dist/cjs/lib/v3/index.js +119 -0
  205. package/dist/cjs/lib/v3/index.js.map +1 -0
  206. package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
  207. package/dist/cjs/lib/v3/launch/browserbase.js +47 -0
  208. package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -0
  209. package/dist/cjs/lib/v3/launch/local.js +104 -0
  210. package/dist/cjs/lib/v3/launch/local.js.map +1 -0
  211. package/dist/cjs/lib/v3/llm/AnthropicClient.js +246 -0
  212. package/dist/cjs/lib/v3/llm/AnthropicClient.js.map +1 -0
  213. package/dist/cjs/lib/v3/llm/CerebrasClient.js +242 -0
  214. package/dist/cjs/lib/v3/llm/CerebrasClient.js.map +1 -0
  215. package/dist/cjs/lib/v3/llm/GoogleClient.js +373 -0
  216. package/dist/cjs/lib/v3/llm/GoogleClient.js.map +1 -0
  217. package/dist/cjs/lib/v3/llm/GroqClient.js +243 -0
  218. package/dist/cjs/lib/v3/llm/GroqClient.js.map +1 -0
  219. package/dist/cjs/lib/v3/llm/LLMClient.js +27 -0
  220. package/dist/cjs/lib/v3/llm/LLMClient.js.map +1 -0
  221. package/dist/cjs/lib/v3/llm/LLMProvider.d.ts +5 -2
  222. package/dist/cjs/lib/v3/llm/LLMProvider.js +201 -0
  223. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -0
  224. package/dist/cjs/lib/v3/llm/OpenAIClient.js +336 -0
  225. package/dist/cjs/lib/v3/llm/OpenAIClient.js.map +1 -0
  226. package/dist/cjs/lib/v3/llm/aisdk.js +349 -0
  227. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -0
  228. package/dist/cjs/lib/v3/logger.js +102 -0
  229. package/dist/cjs/lib/v3/logger.js.map +1 -0
  230. package/dist/cjs/lib/v3/mcp/connection.d.ts +2 -0
  231. package/dist/cjs/lib/v3/mcp/connection.js +56 -0
  232. package/dist/cjs/lib/v3/mcp/connection.js.map +1 -0
  233. package/dist/cjs/lib/v3/mcp/utils.js +40 -0
  234. package/dist/cjs/lib/v3/mcp/utils.js.map +1 -0
  235. package/dist/cjs/lib/v3/runtimePaths.d.ts +6 -0
  236. package/dist/cjs/lib/v3/runtimePaths.js +119 -0
  237. package/dist/cjs/lib/v3/runtimePaths.js.map +1 -0
  238. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js +36 -0
  239. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js.map +1 -0
  240. package/dist/cjs/lib/v3/shutdown/supervisor.js +193 -0
  241. package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -0
  242. package/dist/cjs/lib/v3/shutdown/supervisorClient.js +95 -0
  243. package/dist/cjs/lib/v3/shutdown/supervisorClient.js.map +1 -0
  244. package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
  245. package/dist/cjs/lib/v3/timeoutConfig.js +36 -0
  246. package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -0
  247. package/dist/cjs/lib/v3/types/private/agent.js +3 -0
  248. package/dist/cjs/lib/v3/types/private/agent.js.map +1 -0
  249. package/dist/cjs/lib/v3/types/private/api.js +3 -0
  250. package/dist/cjs/lib/v3/types/private/api.js.map +1 -0
  251. package/dist/cjs/lib/v3/types/private/cache.d.ts +3 -1
  252. package/dist/cjs/lib/v3/types/private/cache.js +3 -0
  253. package/dist/cjs/lib/v3/types/private/cache.js.map +1 -0
  254. package/dist/cjs/lib/v3/types/private/evaluator.js +3 -0
  255. package/dist/cjs/lib/v3/types/private/evaluator.js.map +1 -0
  256. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -1
  257. package/dist/cjs/lib/v3/types/private/handlers.js +19 -0
  258. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -0
  259. package/dist/cjs/lib/v3/types/private/index.js +24 -0
  260. package/dist/cjs/lib/v3/types/private/index.js.map +1 -0
  261. package/dist/cjs/lib/v3/types/private/internal.js +3 -0
  262. package/dist/cjs/lib/v3/types/private/internal.js.map +1 -0
  263. package/dist/cjs/lib/v3/types/private/locator.js +3 -0
  264. package/dist/cjs/lib/v3/types/private/locator.js.map +1 -0
  265. package/dist/cjs/lib/v3/types/private/network.js +6 -0
  266. package/dist/cjs/lib/v3/types/private/network.js.map +1 -0
  267. package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
  268. package/dist/cjs/lib/v3/types/private/shutdown.js +6 -0
  269. package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -0
  270. package/dist/cjs/lib/v3/types/private/shutdownErrors.js +28 -0
  271. package/dist/cjs/lib/v3/types/private/shutdownErrors.js.map +1 -0
  272. package/dist/cjs/lib/v3/types/private/snapshot.js +3 -0
  273. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -0
  274. package/dist/cjs/lib/v3/types/public/agent.d.ts +76 -4
  275. package/dist/cjs/lib/v3/types/public/agent.js +18 -0
  276. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -0
  277. package/dist/cjs/lib/v3/types/public/api.d.ts +21 -0
  278. package/dist/cjs/lib/v3/types/public/api.js +930 -0
  279. package/dist/cjs/lib/v3/types/public/api.js.map +1 -0
  280. package/dist/cjs/lib/v3/types/public/apiErrors.js +41 -0
  281. package/dist/cjs/lib/v3/types/public/apiErrors.js.map +1 -0
  282. package/dist/cjs/lib/v3/types/public/context.d.ts +32 -0
  283. package/dist/cjs/lib/v3/types/public/context.js +3 -0
  284. package/dist/cjs/lib/v3/types/public/context.js.map +1 -0
  285. package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
  286. package/dist/cjs/lib/v3/types/public/index.js +56 -0
  287. package/dist/cjs/lib/v3/types/public/index.js.map +1 -0
  288. package/dist/cjs/lib/v3/types/public/locator.js +3 -0
  289. package/dist/cjs/lib/v3/types/public/locator.js.map +1 -0
  290. package/dist/cjs/lib/v3/types/public/logs.js +16 -0
  291. package/dist/cjs/lib/v3/types/public/logs.js.map +1 -0
  292. package/dist/cjs/lib/v3/types/public/methods.d.ts +33 -2
  293. package/dist/cjs/lib/v3/types/public/methods.js +18 -0
  294. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -0
  295. package/dist/cjs/lib/v3/types/public/metrics.js +3 -0
  296. package/dist/cjs/lib/v3/types/public/metrics.js.map +1 -0
  297. package/dist/cjs/lib/v3/types/public/model.d.ts +12 -3
  298. package/dist/cjs/lib/v3/types/public/model.js +3 -0
  299. package/dist/cjs/lib/v3/types/public/model.js.map +1 -0
  300. package/dist/cjs/lib/v3/types/public/options.d.ts +15 -0
  301. package/dist/cjs/lib/v3/types/public/options.js +7 -0
  302. package/dist/cjs/lib/v3/types/public/options.js.map +1 -0
  303. package/dist/cjs/lib/v3/types/public/page.js +8 -0
  304. package/dist/cjs/lib/v3/types/public/page.js.map +1 -0
  305. package/dist/cjs/lib/v3/types/public/screenshotTypes.js +3 -0
  306. package/dist/cjs/lib/v3/types/public/screenshotTypes.js.map +1 -0
  307. package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +13 -0
  308. package/dist/cjs/lib/v3/types/public/sdkErrors.js +390 -0
  309. package/dist/cjs/lib/v3/types/public/sdkErrors.js.map +1 -0
  310. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +204 -0
  311. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
  312. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js +124 -0
  313. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
  314. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +345 -0
  315. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
  316. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +132 -0
  317. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
  318. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js +285 -0
  319. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
  320. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  321. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js +226 -0
  322. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
  323. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js +12 -0
  324. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
  325. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js +26 -0
  326. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
  327. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +143 -0
  328. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
  329. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js +110 -0
  330. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
  331. package/dist/cjs/lib/v3/understudy/a11yInvocation.js +15 -0
  332. package/dist/cjs/lib/v3/understudy/a11yInvocation.js.map +1 -0
  333. package/dist/cjs/lib/v3/understudy/cdp.d.ts +9 -13
  334. package/dist/cjs/lib/v3/understudy/cdp.js +430 -0
  335. package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -0
  336. package/dist/cjs/lib/v3/understudy/consoleMessage.js +70 -0
  337. package/dist/cjs/lib/v3/understudy/consoleMessage.js.map +1 -0
  338. package/dist/cjs/lib/v3/understudy/context.d.ts +34 -0
  339. package/dist/cjs/lib/v3/understudy/context.js +960 -0
  340. package/dist/cjs/lib/v3/understudy/context.js.map +1 -0
  341. package/dist/cjs/lib/v3/understudy/cookies.d.ts +32 -0
  342. package/dist/cjs/lib/v3/understudy/cookies.js +142 -0
  343. package/dist/cjs/lib/v3/understudy/cookies.js.map +1 -0
  344. package/dist/cjs/lib/v3/understudy/deepLocator.js +204 -0
  345. package/dist/cjs/lib/v3/understudy/deepLocator.js.map +1 -0
  346. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js +87 -0
  347. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js.map +1 -0
  348. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js +88 -0
  349. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js.map +1 -0
  350. package/dist/cjs/lib/v3/understudy/frame.js +232 -0
  351. package/dist/cjs/lib/v3/understudy/frame.js.map +1 -0
  352. package/dist/cjs/lib/v3/understudy/frameLocator.js +260 -0
  353. package/dist/cjs/lib/v3/understudy/frameLocator.js.map +1 -0
  354. package/dist/cjs/lib/v3/understudy/frameRegistry.js +302 -0
  355. package/dist/cjs/lib/v3/understudy/frameRegistry.js.map +1 -0
  356. package/dist/cjs/lib/v3/understudy/initScripts.js +36 -0
  357. package/dist/cjs/lib/v3/understudy/initScripts.js.map +1 -0
  358. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js +249 -0
  359. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
  360. package/dist/cjs/lib/v3/understudy/locator.js +790 -0
  361. package/dist/cjs/lib/v3/understudy/locator.js.map +1 -0
  362. package/dist/cjs/lib/v3/understudy/locatorInvocation.js +15 -0
  363. package/dist/cjs/lib/v3/understudy/locatorInvocation.js.map +1 -0
  364. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js +228 -0
  365. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
  366. package/dist/cjs/lib/v3/understudy/networkManager.js +310 -0
  367. package/dist/cjs/lib/v3/understudy/networkManager.js.map +1 -0
  368. package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
  369. package/dist/cjs/lib/v3/understudy/page.js +2008 -0
  370. package/dist/cjs/lib/v3/understudy/page.js.map +1 -0
  371. package/dist/cjs/lib/v3/understudy/piercer.js +65 -0
  372. package/dist/cjs/lib/v3/understudy/piercer.js.map +1 -0
  373. package/dist/cjs/lib/v3/understudy/response.js +335 -0
  374. package/dist/cjs/lib/v3/understudy/response.js.map +1 -0
  375. package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  376. package/dist/cjs/lib/v3/understudy/screenshotUtils.js +345 -0
  377. package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -0
  378. package/dist/cjs/lib/v3/understudy/selectorResolver.js +300 -0
  379. package/dist/cjs/lib/v3/understudy/selectorResolver.js.map +1 -0
  380. package/dist/cjs/lib/v3/v3.d.ts +26 -3
  381. package/dist/cjs/lib/v3/v3.js +1679 -0
  382. package/dist/cjs/lib/v3/v3.js.map +1 -0
  383. package/dist/cjs/lib/v3/zodCompat.js +26 -0
  384. package/dist/cjs/lib/v3/zodCompat.js.map +1 -0
  385. package/dist/cjs/lib/v3Evaluator.js +214 -0
  386. package/dist/cjs/lib/v3Evaluator.js.map +1 -0
  387. package/dist/cjs/lib/version.d.ts +1 -1
  388. package/dist/cjs/lib/version.js +9 -0
  389. package/dist/cjs/lib/version.js.map +1 -0
  390. package/dist/cjs/tests/cache-variables.test.js +221 -0
  391. package/dist/cjs/tests/cache-variables.test.js.map +1 -0
  392. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +123 -0
  393. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +1 -0
  394. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +83 -0
  395. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  396. package/dist/cjs/tests/integration/agent-callbacks.spec.js +385 -0
  397. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +1 -0
  398. package/dist/cjs/tests/integration/agent-captcha-autosolve.spec.js +56 -0
  399. package/dist/cjs/tests/integration/agent-captcha-autosolve.spec.js.map +1 -0
  400. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +362 -0
  401. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  402. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +262 -0
  403. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  404. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +112 -0
  405. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +1 -0
  406. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +1 -0
  407. package/dist/cjs/tests/integration/agent-streaming.spec.js +140 -0
  408. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +1 -0
  409. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  410. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +41 -0
  411. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  412. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  413. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +76 -0
  414. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +1 -0
  415. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  416. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +45 -0
  417. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -0
  418. package/dist/cjs/tests/integration/click-count.spec.d.ts +1 -0
  419. package/dist/cjs/tests/integration/click-count.spec.js +163 -0
  420. package/dist/cjs/tests/integration/click-count.spec.js.map +1 -0
  421. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  422. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +99 -0
  423. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  424. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +1 -0
  425. package/dist/cjs/tests/integration/context-addInitScript.spec.js +285 -0
  426. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -0
  427. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  428. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +49 -0
  429. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  430. package/dist/cjs/tests/integration/cookies.spec.d.ts +1 -0
  431. package/dist/cjs/tests/integration/cookies.spec.js +187 -0
  432. package/dist/cjs/tests/integration/cookies.spec.js.map +1 -0
  433. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +1 -0
  434. package/dist/cjs/tests/integration/default-page-tracking.spec.js +52 -0
  435. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +1 -0
  436. package/dist/cjs/tests/integration/downloads.spec.d.ts +1 -0
  437. package/dist/cjs/tests/integration/downloads.spec.js +52 -0
  438. package/dist/cjs/tests/integration/downloads.spec.js.map +1 -0
  439. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +1 -0
  440. package/dist/cjs/tests/integration/flowLogger.spec.js +714 -0
  441. package/dist/cjs/tests/integration/flowLogger.spec.js.map +1 -0
  442. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  443. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +57 -0
  444. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  445. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  446. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
  447. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  448. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  449. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +474 -0
  450. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  451. package/dist/cjs/tests/integration/keep-alive.child.d.ts +1 -0
  452. package/dist/cjs/tests/integration/keep-alive.child.js +85 -0
  453. package/dist/cjs/tests/integration/keep-alive.child.js.map +1 -0
  454. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +22 -0
  455. package/dist/cjs/tests/integration/keep-alive.spec.js +490 -0
  456. package/dist/cjs/tests/integration/keep-alive.spec.js.map +1 -0
  457. package/dist/cjs/tests/integration/keyboard.spec.d.ts +1 -0
  458. package/dist/cjs/tests/integration/keyboard.spec.js +259 -0
  459. package/dist/cjs/tests/integration/keyboard.spec.js.map +1 -0
  460. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  461. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +150 -0
  462. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  463. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +1 -0
  464. package/dist/cjs/tests/integration/locator-content-methods.spec.js +180 -0
  465. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +1 -0
  466. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  467. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +129 -0
  468. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +1 -0
  469. package/dist/cjs/tests/integration/locator-count.spec.d.ts +1 -0
  470. package/dist/cjs/tests/integration/locator-count.spec.js +68 -0
  471. package/dist/cjs/tests/integration/locator-count.spec.js.map +1 -0
  472. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +1 -0
  473. package/dist/cjs/tests/integration/locator-fill.spec.js +117 -0
  474. package/dist/cjs/tests/integration/locator-fill.spec.js.map +1 -0
  475. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +1 -0
  476. package/dist/cjs/tests/integration/locator-input-methods.spec.js +127 -0
  477. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +1 -0
  478. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +1 -0
  479. package/dist/cjs/tests/integration/locator-nth.spec.js +175 -0
  480. package/dist/cjs/tests/integration/locator-nth.spec.js.map +1 -0
  481. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +1 -0
  482. package/dist/cjs/tests/integration/locator-select-option.spec.js +216 -0
  483. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +1 -0
  484. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +1 -0
  485. package/dist/cjs/tests/integration/logger-initialization.spec.js +597 -0
  486. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +1 -0
  487. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  488. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +293 -0
  489. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +1 -0
  490. package/dist/cjs/tests/integration/nested-div.spec.d.ts +1 -0
  491. package/dist/cjs/tests/integration/nested-div.spec.js +22 -0
  492. package/dist/cjs/tests/integration/nested-div.spec.js.map +1 -0
  493. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +1 -0
  494. package/dist/cjs/tests/integration/page-addInitScript.spec.js +94 -0
  495. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +1 -0
  496. package/dist/cjs/tests/integration/page-console.spec.d.ts +1 -0
  497. package/dist/cjs/tests/integration/page-console.spec.js +47 -0
  498. package/dist/cjs/tests/integration/page-console.spec.js.map +1 -0
  499. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  500. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +437 -0
  501. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  502. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  503. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
  504. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  505. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +1 -0
  506. package/dist/cjs/tests/integration/page-goto-response.spec.js +34 -0
  507. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +1 -0
  508. package/dist/cjs/tests/integration/page-hover.spec.d.ts +1 -0
  509. package/dist/cjs/tests/integration/page-hover.spec.js +165 -0
  510. package/dist/cjs/tests/integration/page-hover.spec.js.map +1 -0
  511. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +1 -0
  512. package/dist/cjs/tests/integration/page-screenshot.spec.js +292 -0
  513. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -0
  514. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +1 -0
  515. package/dist/cjs/tests/integration/page-scroll.spec.js +183 -0
  516. package/dist/cjs/tests/integration/page-scroll.spec.js.map +1 -0
  517. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +1 -0
  518. package/dist/cjs/tests/integration/page-send-cdp.spec.js +47 -0
  519. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +1 -0
  520. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  521. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +63 -0
  522. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +1 -0
  523. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +1 -0
  524. package/dist/cjs/tests/integration/setinputfiles.spec.js +133 -0
  525. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +1 -0
  526. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  527. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +161 -0
  528. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  529. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  530. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +160 -0
  531. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  532. package/dist/cjs/tests/integration/testUtils.d.ts +40 -0
  533. package/dist/cjs/tests/integration/testUtils.js +188 -0
  534. package/dist/cjs/tests/integration/testUtils.js.map +1 -0
  535. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  536. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +105 -0
  537. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +1 -0
  538. package/dist/cjs/tests/integration/timeouts.spec.d.ts +1 -0
  539. package/dist/cjs/tests/integration/timeouts.spec.js +307 -0
  540. package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -0
  541. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +1 -0
  542. package/dist/cjs/tests/integration/user-data-dir.spec.js +77 -0
  543. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +1 -0
  544. package/dist/cjs/tests/integration/v3.config.d.ts +4 -0
  545. package/dist/cjs/tests/integration/v3.config.js +11 -0
  546. package/dist/cjs/tests/integration/v3.config.js.map +1 -0
  547. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +4 -0
  548. package/dist/cjs/tests/integration/v3.dynamic.config.js +48 -0
  549. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +1 -0
  550. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +2 -0
  551. package/dist/cjs/tests/integration/v3.playwright.config.js +48 -0
  552. package/dist/cjs/tests/integration/v3.playwright.config.js.map +1 -0
  553. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +1 -0
  554. package/dist/cjs/tests/integration/wait-for-selector.spec.js +683 -0
  555. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +1 -0
  556. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  557. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +118 -0
  558. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +1 -0
  559. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  560. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +87 -0
  561. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  562. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +1 -0
  563. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +285 -0
  564. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +1 -0
  565. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +1 -0
  566. package/dist/cjs/tests/unit/agent-execution-model.test.js +128 -0
  567. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +1 -0
  568. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +1 -0
  569. package/dist/cjs/tests/unit/api-multiregion.test.js +58 -0
  570. package/dist/cjs/tests/unit/api-multiregion.test.js.map +1 -0
  571. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  572. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +122 -0
  573. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  574. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  575. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +186 -0
  576. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +1 -0
  577. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +1 -0
  578. package/dist/cjs/tests/unit/captcha-solver.test.js +154 -0
  579. package/dist/cjs/tests/unit/captcha-solver.test.js.map +1 -0
  580. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +1 -0
  581. package/dist/cjs/tests/unit/cdp-connection-close.test.js +74 -0
  582. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +1 -0
  583. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  584. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +58 -0
  585. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +1 -0
  586. package/dist/cjs/tests/unit/cookies.test.d.ts +1 -0
  587. package/dist/cjs/tests/unit/cookies.test.js +944 -0
  588. package/dist/cjs/tests/unit/cookies.test.js.map +1 -0
  589. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +1 -0
  590. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +95 -0
  591. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +1 -0
  592. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +1 -0
  593. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +43 -0
  594. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +1 -0
  595. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +1 -0
  596. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +250 -0
  597. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +1 -0
  598. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  599. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +29 -0
  600. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +1 -0
  601. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +1 -0
  602. package/dist/cjs/tests/unit/llm-middleware.test.js +495 -0
  603. package/dist/cjs/tests/unit/llm-middleware.test.js.map +1 -0
  604. package/dist/cjs/tests/unit/llm-provider.test.d.ts +1 -0
  605. package/dist/cjs/tests/unit/llm-provider.test.js +64 -0
  606. package/dist/cjs/tests/unit/llm-provider.test.js.map +1 -0
  607. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +1 -0
  608. package/dist/cjs/tests/unit/model-deprecation.test.js +142 -0
  609. package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -0
  610. package/dist/cjs/tests/unit/model-utils.test.d.ts +1 -0
  611. package/dist/cjs/tests/unit/model-utils.test.js +42 -0
  612. package/dist/cjs/tests/unit/model-utils.test.js.map +1 -0
  613. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +1 -0
  614. package/dist/cjs/tests/unit/openai-cua-client.test.js +71 -0
  615. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +1 -0
  616. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  617. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
  618. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
  619. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +1 -0
  620. package/dist/cjs/tests/unit/page-snapshot.test.js +75 -0
  621. package/dist/cjs/tests/unit/page-snapshot.test.js.map +1 -0
  622. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +1 -0
  623. package/dist/cjs/tests/unit/public-api/export-surface.test.js +107 -0
  624. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +1 -0
  625. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  626. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +175 -0
  627. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  628. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  629. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +110 -0
  630. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +1 -0
  631. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +1 -0
  632. package/dist/cjs/tests/unit/public-api/public-types.test.js +99 -0
  633. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -0
  634. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  635. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +60 -0
  636. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  637. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  638. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +95 -0
  639. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +1 -0
  640. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  641. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +121 -0
  642. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  643. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  644. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +65 -0
  645. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  646. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +1 -0
  647. package/dist/cjs/tests/unit/public-api/v3-core.test.js +108 -0
  648. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +1 -0
  649. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +1 -0
  650. package/dist/cjs/tests/unit/safety-confirmation.test.js +110 -0
  651. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +1 -0
  652. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  653. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +330 -0
  654. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  655. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  656. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +286 -0
  657. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  658. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  659. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +394 -0
  660. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  661. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +1 -0
  662. package/dist/cjs/tests/unit/snapshot-cbor.test.js +204 -0
  663. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +1 -0
  664. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  665. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +220 -0
  666. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  667. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  668. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +107 -0
  669. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  670. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  671. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +89 -0
  672. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  673. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  674. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +335 -0
  675. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  676. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  677. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +84 -0
  678. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  679. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  680. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +74 -0
  681. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  682. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +1 -0
  683. package/dist/cjs/tests/unit/timeout-handlers.test.js +847 -0
  684. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +1 -0
  685. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +1 -0
  686. package/dist/cjs/tests/unit/understudy-command-exception.test.js +57 -0
  687. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +1 -0
  688. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +1 -0
  689. package/dist/cjs/tests/unit/xpath-parser.test.js +311 -0
  690. package/dist/cjs/tests/unit/xpath-parser.test.js.map +1 -0
  691. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +1 -0
  692. package/dist/cjs/tests/unit/xpath-resolver.test.js +80 -0
  693. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +1 -0
  694. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  695. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +149 -0
  696. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  697. package/dist/esm/index.d.ts +1 -2
  698. package/dist/esm/index.js +1 -2
  699. package/dist/esm/lib/inference.js +5 -8
  700. package/dist/esm/lib/inference.js.map +1 -1
  701. package/dist/esm/lib/modelUtils.d.ts +1 -0
  702. package/dist/esm/lib/modelUtils.js.map +1 -1
  703. package/dist/esm/lib/prompt.d.ts +3 -2
  704. package/dist/esm/lib/prompt.js.map +1 -1
  705. package/dist/esm/lib/utils.d.ts +1 -0
  706. package/dist/esm/lib/utils.js +3 -0
  707. package/dist/esm/lib/utils.js.map +1 -1
  708. package/dist/esm/lib/v3/agent/AgentClient.d.ts +8 -0
  709. package/dist/esm/lib/v3/agent/AgentClient.js +13 -0
  710. package/dist/esm/lib/v3/agent/AgentClient.js.map +1 -1
  711. package/dist/esm/lib/v3/agent/AgentProvider.js +1 -1
  712. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  713. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +23 -9
  714. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  715. package/dist/esm/lib/v3/agent/GoogleCUAClient.js +6 -7
  716. package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -1
  717. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +5 -4
  718. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
  719. package/dist/esm/lib/v3/agent/OpenAICUAClient.d.ts +4 -4
  720. package/dist/esm/lib/v3/agent/OpenAICUAClient.js +67 -8
  721. package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -1
  722. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +7 -3
  723. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +29 -6
  724. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -1
  725. package/dist/esm/lib/v3/agent/tools/act.d.ts +2 -2
  726. package/dist/esm/lib/v3/agent/tools/act.js +57 -44
  727. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
  728. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  729. package/dist/esm/lib/v3/agent/tools/ariaTree.js +49 -22
  730. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
  731. package/dist/esm/lib/v3/agent/tools/braveSearch.js +73 -0
  732. package/dist/esm/lib/v3/agent/tools/braveSearch.js.map +1 -0
  733. package/dist/esm/lib/v3/agent/tools/browserbaseSearch.d.ts +13 -0
  734. package/dist/esm/lib/v3/agent/tools/browserbaseSearch.js +66 -0
  735. package/dist/esm/lib/v3/agent/tools/browserbaseSearch.js.map +1 -0
  736. package/dist/esm/lib/v3/agent/tools/click.js +23 -31
  737. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
  738. package/dist/esm/lib/v3/agent/tools/clickAndHold.js.map +1 -1
  739. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
  740. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
  741. package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
  742. package/dist/esm/lib/v3/agent/tools/extract.js +7 -3
  743. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
  744. package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  745. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +109 -98
  746. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
  747. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +8 -3
  748. package/dist/esm/lib/v3/agent/tools/fillform.js +70 -52
  749. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
  750. package/dist/esm/lib/v3/agent/tools/index.d.ts +25 -4
  751. package/dist/esm/lib/v3/agent/tools/index.js +65 -12
  752. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
  753. package/dist/esm/lib/v3/agent/tools/keys.d.ts +1 -1
  754. package/dist/esm/lib/v3/agent/tools/keys.js.map +1 -1
  755. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
  756. package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
  757. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
  758. package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
  759. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
  760. package/dist/esm/lib/v3/agent/tools/type.d.ts +2 -2
  761. package/dist/esm/lib/v3/agent/tools/type.js +80 -79
  762. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
  763. package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
  764. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
  765. package/dist/esm/lib/v3/agent/utils/captchaSolver.d.ts +76 -0
  766. package/dist/esm/lib/v3/agent/utils/captchaSolver.js +171 -0
  767. package/dist/esm/lib/v3/agent/utils/captchaSolver.js.map +1 -0
  768. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
  769. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
  770. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +8 -0
  771. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -1
  772. package/dist/esm/lib/v3/agent/utils/variables.d.ts +21 -0
  773. package/dist/esm/lib/v3/agent/utils/variables.js +48 -0
  774. package/dist/esm/lib/v3/agent/utils/variables.js.map +1 -0
  775. package/dist/esm/lib/v3/api.d.ts +23 -5
  776. package/dist/esm/lib/v3/api.js +74 -13
  777. package/dist/esm/lib/v3/api.js.map +1 -1
  778. package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
  779. package/dist/esm/lib/v3/cache/ActCache.js +2 -18
  780. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
  781. package/dist/esm/lib/v3/cache/AgentCache.d.ts +1 -0
  782. package/dist/esm/lib/v3/cache/AgentCache.js +18 -11
  783. package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
  784. package/dist/esm/lib/v3/flowlogger/EventEmitter.d.ts +7 -0
  785. package/dist/esm/lib/v3/flowlogger/EventEmitter.js +26 -0
  786. package/dist/esm/lib/v3/flowlogger/EventEmitter.js.map +1 -0
  787. package/dist/esm/lib/v3/flowlogger/EventSink.d.ts +44 -0
  788. package/dist/esm/lib/v3/flowlogger/EventSink.js +206 -0
  789. package/dist/esm/lib/v3/flowlogger/EventSink.js.map +1 -0
  790. package/dist/esm/lib/v3/flowlogger/EventStore.d.ts +26 -0
  791. package/dist/esm/lib/v3/flowlogger/EventStore.js +127 -0
  792. package/dist/esm/lib/v3/flowlogger/EventStore.js.map +1 -0
  793. package/dist/esm/lib/v3/flowlogger/FlowLogger.d.ts +99 -0
  794. package/dist/esm/lib/v3/flowlogger/FlowLogger.js +583 -0
  795. package/dist/esm/lib/v3/flowlogger/FlowLogger.js.map +1 -0
  796. package/dist/esm/lib/v3/flowlogger/prettify.d.ts +6 -0
  797. package/dist/esm/lib/v3/flowlogger/prettify.js +389 -0
  798. package/dist/esm/lib/v3/flowlogger/prettify.js.map +1 -0
  799. package/dist/esm/lib/v3/handlers/actHandler.d.ts +2 -1
  800. package/dist/esm/lib/v3/handlers/actHandler.js +4 -4
  801. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
  802. package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
  803. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  804. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +43 -84
  805. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
  806. package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
  807. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  808. package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +2 -5
  809. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +133 -92
  810. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  811. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +5 -0
  812. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +134 -14
  813. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  814. package/dist/esm/lib/v3/index.d.ts +143 -0
  815. package/dist/esm/lib/v3/index.js +41 -0
  816. package/dist/esm/lib/v3/index.js.map +1 -1
  817. package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
  818. package/dist/esm/lib/v3/launch/browserbase.js +4 -9
  819. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
  820. package/dist/esm/lib/v3/llm/LLMProvider.d.ts +5 -2
  821. package/dist/esm/lib/v3/llm/LLMProvider.js +14 -12
  822. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  823. package/dist/esm/lib/v3/llm/OpenAIClient.js +2 -2
  824. package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -1
  825. package/dist/esm/lib/v3/llm/aisdk.js +11 -17
  826. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  827. package/dist/esm/lib/v3/mcp/connection.d.ts +2 -0
  828. package/dist/esm/lib/v3/mcp/connection.js +5 -2
  829. package/dist/esm/lib/v3/mcp/connection.js.map +1 -1
  830. package/dist/esm/lib/v3/runtimePaths.d.ts +6 -0
  831. package/dist/esm/lib/v3/runtimePaths.js +107 -0
  832. package/dist/esm/lib/v3/runtimePaths.js.map +1 -0
  833. package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
  834. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
  835. package/dist/esm/lib/v3/shutdown/supervisorClient.js +9 -14
  836. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
  837. package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
  838. package/dist/esm/lib/v3/timeoutConfig.js +5 -0
  839. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
  840. package/dist/esm/lib/v3/types/private/cache.d.ts +3 -1
  841. package/dist/esm/lib/v3/types/private/cache.js.map +1 -1
  842. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -1
  843. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  844. package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
  845. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
  846. package/dist/esm/lib/v3/types/public/agent.d.ts +76 -4
  847. package/dist/esm/lib/v3/types/public/agent.js +1 -1
  848. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  849. package/dist/esm/lib/v3/types/public/api.d.ts +21 -0
  850. package/dist/esm/lib/v3/types/public/api.js +11 -2
  851. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  852. package/dist/esm/lib/v3/types/public/context.d.ts +32 -0
  853. package/dist/esm/lib/v3/types/public/context.js +2 -0
  854. package/dist/esm/lib/v3/types/public/context.js.map +1 -0
  855. package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
  856. package/dist/esm/lib/v3/types/public/index.js +1 -0
  857. package/dist/esm/lib/v3/types/public/index.js.map +1 -1
  858. package/dist/esm/lib/v3/types/public/methods.d.ts +33 -2
  859. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  860. package/dist/esm/lib/v3/types/public/model.d.ts +12 -3
  861. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  862. package/dist/esm/lib/v3/types/public/options.d.ts +15 -0
  863. package/dist/esm/lib/v3/types/public/options.js.map +1 -1
  864. package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +13 -0
  865. package/dist/esm/lib/v3/types/public/sdkErrors.js +22 -0
  866. package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -1
  867. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  868. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +1 -1
  869. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -1
  870. package/dist/esm/lib/v3/understudy/cdp.d.ts +9 -13
  871. package/dist/esm/lib/v3/understudy/cdp.js +191 -20
  872. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
  873. package/dist/esm/lib/v3/understudy/context.d.ts +34 -0
  874. package/dist/esm/lib/v3/understudy/context.js +327 -67
  875. package/dist/esm/lib/v3/understudy/context.js.map +1 -1
  876. package/dist/esm/lib/v3/understudy/cookies.d.ts +32 -0
  877. package/dist/esm/lib/v3/understudy/cookies.js +136 -0
  878. package/dist/esm/lib/v3/understudy/cookies.js.map +1 -0
  879. package/dist/esm/lib/v3/understudy/deepLocator.js +1 -23
  880. package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -1
  881. package/dist/esm/lib/v3/understudy/frame.js +24 -7
  882. package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
  883. package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
  884. package/dist/esm/lib/v3/understudy/page.js +86 -23
  885. package/dist/esm/lib/v3/understudy/page.js.map +1 -1
  886. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  887. package/dist/esm/lib/v3/understudy/screenshotUtils.js +1 -19
  888. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
  889. package/dist/esm/lib/v3/understudy/selectorResolver.js +1 -1
  890. package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -1
  891. package/dist/esm/lib/v3/v3.d.ts +26 -3
  892. package/dist/esm/lib/v3/v3.js +261 -190
  893. package/dist/esm/lib/v3/v3.js.map +1 -1
  894. package/dist/esm/lib/version.d.ts +1 -1
  895. package/dist/esm/lib/version.js +1 -1
  896. package/dist/esm/lib/version.js.map +1 -1
  897. package/dist/esm/tests/cache-variables.test.d.ts +1 -0
  898. package/dist/esm/tests/cache-variables.test.js +219 -0
  899. package/dist/esm/tests/cache-variables.test.js.map +1 -0
  900. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +1 -0
  901. package/dist/esm/tests/integration/agent-abort-signal.spec.js +121 -0
  902. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +1 -0
  903. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +1 -0
  904. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +78 -0
  905. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  906. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +1 -0
  907. package/dist/esm/tests/integration/agent-callbacks.spec.js +383 -0
  908. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +1 -0
  909. package/dist/esm/tests/integration/agent-captcha-autosolve.spec.d.ts +1 -0
  910. package/dist/esm/tests/integration/agent-captcha-autosolve.spec.js +54 -0
  911. package/dist/esm/tests/integration/agent-captcha-autosolve.spec.js.map +1 -0
  912. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +1 -0
  913. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +360 -0
  914. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  915. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +1 -0
  916. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +260 -0
  917. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  918. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +1 -0
  919. package/dist/esm/tests/integration/agent-message-continuation.spec.js +110 -0
  920. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +1 -0
  921. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +1 -0
  922. package/dist/esm/tests/integration/agent-streaming.spec.js +138 -0
  923. package/dist/esm/tests/integration/agent-streaming.spec.js.map +1 -0
  924. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  925. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +39 -0
  926. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  927. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  928. package/dist/esm/tests/integration/cdp-connection-close.spec.js +74 -0
  929. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +1 -0
  930. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  931. package/dist/esm/tests/integration/cdp-session-detached.spec.js +43 -0
  932. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -0
  933. package/dist/esm/tests/integration/click-count.spec.d.ts +1 -0
  934. package/dist/esm/tests/integration/click-count.spec.js +161 -0
  935. package/dist/esm/tests/integration/click-count.spec.js.map +1 -0
  936. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  937. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +97 -0
  938. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  939. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +1 -0
  940. package/dist/esm/tests/integration/context-addInitScript.spec.js +283 -0
  941. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -0
  942. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  943. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +47 -0
  944. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  945. package/dist/esm/tests/integration/cookies.spec.d.ts +1 -0
  946. package/dist/esm/tests/integration/cookies.spec.js +185 -0
  947. package/dist/esm/tests/integration/cookies.spec.js.map +1 -0
  948. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +1 -0
  949. package/dist/esm/tests/integration/default-page-tracking.spec.js +50 -0
  950. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +1 -0
  951. package/dist/esm/tests/integration/downloads.spec.d.ts +1 -0
  952. package/dist/esm/tests/integration/downloads.spec.js +47 -0
  953. package/dist/esm/tests/integration/downloads.spec.js.map +1 -0
  954. package/dist/esm/tests/integration/flowLogger.spec.d.ts +1 -0
  955. package/dist/esm/tests/integration/flowLogger.spec.js +712 -0
  956. package/dist/esm/tests/integration/flowLogger.spec.js.map +1 -0
  957. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  958. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +55 -0
  959. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  960. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  961. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
  962. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  963. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  964. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +472 -0
  965. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  966. package/dist/esm/tests/integration/keep-alive.child.d.ts +1 -0
  967. package/dist/esm/tests/integration/keep-alive.child.js +83 -0
  968. package/dist/esm/tests/integration/keep-alive.child.js.map +1 -0
  969. package/dist/esm/tests/integration/keep-alive.spec.d.ts +22 -0
  970. package/dist/esm/tests/integration/keep-alive.spec.js +482 -0
  971. package/dist/esm/tests/integration/keep-alive.spec.js.map +1 -0
  972. package/dist/esm/tests/integration/keyboard.spec.d.ts +1 -0
  973. package/dist/esm/tests/integration/keyboard.spec.js +257 -0
  974. package/dist/esm/tests/integration/keyboard.spec.js.map +1 -0
  975. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  976. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +148 -0
  977. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  978. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +1 -0
  979. package/dist/esm/tests/integration/locator-content-methods.spec.js +178 -0
  980. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +1 -0
  981. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  982. package/dist/esm/tests/integration/locator-count-iframe.spec.js +127 -0
  983. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +1 -0
  984. package/dist/esm/tests/integration/locator-count.spec.d.ts +1 -0
  985. package/dist/esm/tests/integration/locator-count.spec.js +66 -0
  986. package/dist/esm/tests/integration/locator-count.spec.js.map +1 -0
  987. package/dist/esm/tests/integration/locator-fill.spec.d.ts +1 -0
  988. package/dist/esm/tests/integration/locator-fill.spec.js +115 -0
  989. package/dist/esm/tests/integration/locator-fill.spec.js.map +1 -0
  990. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +1 -0
  991. package/dist/esm/tests/integration/locator-input-methods.spec.js +125 -0
  992. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +1 -0
  993. package/dist/esm/tests/integration/locator-nth.spec.d.ts +1 -0
  994. package/dist/esm/tests/integration/locator-nth.spec.js +173 -0
  995. package/dist/esm/tests/integration/locator-nth.spec.js.map +1 -0
  996. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +1 -0
  997. package/dist/esm/tests/integration/locator-select-option.spec.js +214 -0
  998. package/dist/esm/tests/integration/locator-select-option.spec.js.map +1 -0
  999. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +1 -0
  1000. package/dist/esm/tests/integration/logger-initialization.spec.js +595 -0
  1001. package/dist/esm/tests/integration/logger-initialization.spec.js.map +1 -0
  1002. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  1003. package/dist/esm/tests/integration/multi-instance-logger.spec.js +291 -0
  1004. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +1 -0
  1005. package/dist/esm/tests/integration/nested-div.spec.d.ts +1 -0
  1006. package/dist/esm/tests/integration/nested-div.spec.js +20 -0
  1007. package/dist/esm/tests/integration/nested-div.spec.js.map +1 -0
  1008. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +1 -0
  1009. package/dist/esm/tests/integration/page-addInitScript.spec.js +92 -0
  1010. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +1 -0
  1011. package/dist/esm/tests/integration/page-console.spec.d.ts +1 -0
  1012. package/dist/esm/tests/integration/page-console.spec.js +45 -0
  1013. package/dist/esm/tests/integration/page-console.spec.js.map +1 -0
  1014. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  1015. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +435 -0
  1016. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  1017. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  1018. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
  1019. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  1020. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +1 -0
  1021. package/dist/esm/tests/integration/page-goto-response.spec.js +32 -0
  1022. package/dist/esm/tests/integration/page-goto-response.spec.js.map +1 -0
  1023. package/dist/esm/tests/integration/page-hover.spec.d.ts +1 -0
  1024. package/dist/esm/tests/integration/page-hover.spec.js +163 -0
  1025. package/dist/esm/tests/integration/page-hover.spec.js.map +1 -0
  1026. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +1 -0
  1027. package/dist/esm/tests/integration/page-screenshot.spec.js +257 -0
  1028. package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -0
  1029. package/dist/esm/tests/integration/page-scroll.spec.d.ts +1 -0
  1030. package/dist/esm/tests/integration/page-scroll.spec.js +181 -0
  1031. package/dist/esm/tests/integration/page-scroll.spec.js.map +1 -0
  1032. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +1 -0
  1033. package/dist/esm/tests/integration/page-send-cdp.spec.js +45 -0
  1034. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +1 -0
  1035. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  1036. package/dist/esm/tests/integration/perform-understudy-method.spec.js +61 -0
  1037. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +1 -0
  1038. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +1 -0
  1039. package/dist/esm/tests/integration/setinputfiles.spec.js +128 -0
  1040. package/dist/esm/tests/integration/setinputfiles.spec.js.map +1 -0
  1041. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  1042. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +156 -0
  1043. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  1044. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  1045. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +155 -0
  1046. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  1047. package/dist/esm/tests/integration/testUtils.d.ts +40 -0
  1048. package/dist/esm/tests/integration/testUtils.js +178 -0
  1049. package/dist/esm/tests/integration/testUtils.js.map +1 -0
  1050. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  1051. package/dist/esm/tests/integration/text-selector-innermost.spec.js +103 -0
  1052. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +1 -0
  1053. package/dist/esm/tests/integration/timeouts.spec.d.ts +1 -0
  1054. package/dist/esm/tests/integration/timeouts.spec.js +305 -0
  1055. package/dist/esm/tests/integration/timeouts.spec.js.map +1 -0
  1056. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +1 -0
  1057. package/dist/esm/tests/integration/user-data-dir.spec.js +42 -0
  1058. package/dist/esm/tests/integration/user-data-dir.spec.js.map +1 -0
  1059. package/dist/esm/tests/integration/v3.config.d.ts +4 -0
  1060. package/dist/esm/tests/integration/v3.config.js +7 -0
  1061. package/dist/esm/tests/integration/v3.config.js.map +1 -0
  1062. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +4 -0
  1063. package/dist/esm/tests/integration/v3.dynamic.config.js +44 -0
  1064. package/dist/esm/tests/integration/v3.dynamic.config.js.map +1 -0
  1065. package/dist/esm/tests/integration/v3.playwright.config.d.ts +2 -0
  1066. package/dist/esm/tests/integration/v3.playwright.config.js +46 -0
  1067. package/dist/esm/tests/integration/v3.playwright.config.js.map +1 -0
  1068. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +1 -0
  1069. package/dist/esm/tests/integration/wait-for-selector.spec.js +681 -0
  1070. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +1 -0
  1071. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  1072. package/dist/esm/tests/integration/wait-for-timeout.spec.js +116 -0
  1073. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +1 -0
  1074. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  1075. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +85 -0
  1076. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  1077. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +1 -0
  1078. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +283 -0
  1079. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +1 -0
  1080. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +1 -0
  1081. package/dist/esm/tests/unit/agent-execution-model.test.js +126 -0
  1082. package/dist/esm/tests/unit/agent-execution-model.test.js.map +1 -0
  1083. package/dist/esm/tests/unit/api-multiregion.test.d.ts +1 -0
  1084. package/dist/esm/tests/unit/api-multiregion.test.js +56 -0
  1085. package/dist/esm/tests/unit/api-multiregion.test.js.map +1 -0
  1086. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  1087. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +120 -0
  1088. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  1089. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  1090. package/dist/esm/tests/unit/cache-llm-resolution.test.js +184 -0
  1091. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +1 -0
  1092. package/dist/esm/tests/unit/captcha-solver.test.d.ts +1 -0
  1093. package/dist/esm/tests/unit/captcha-solver.test.js +152 -0
  1094. package/dist/esm/tests/unit/captcha-solver.test.js.map +1 -0
  1095. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +1 -0
  1096. package/dist/esm/tests/unit/cdp-connection-close.test.js +72 -0
  1097. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +1 -0
  1098. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  1099. package/dist/esm/tests/unit/context-extra-http-headers.test.js +56 -0
  1100. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +1 -0
  1101. package/dist/esm/tests/unit/cookies.test.d.ts +1 -0
  1102. package/dist/esm/tests/unit/cookies.test.js +909 -0
  1103. package/dist/esm/tests/unit/cookies.test.js.map +1 -0
  1104. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +1 -0
  1105. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +93 -0
  1106. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +1 -0
  1107. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +1 -0
  1108. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +41 -0
  1109. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +1 -0
  1110. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +1 -0
  1111. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +248 -0
  1112. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +1 -0
  1113. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  1114. package/dist/esm/tests/unit/helpers/mockCDPSession.js +25 -0
  1115. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +1 -0
  1116. package/dist/esm/tests/unit/llm-middleware.test.d.ts +1 -0
  1117. package/dist/esm/tests/unit/llm-middleware.test.js +460 -0
  1118. package/dist/esm/tests/unit/llm-middleware.test.js.map +1 -0
  1119. package/dist/esm/tests/unit/llm-provider.test.d.ts +1 -0
  1120. package/dist/esm/tests/unit/llm-provider.test.js +62 -0
  1121. package/dist/esm/tests/unit/llm-provider.test.js.map +1 -0
  1122. package/dist/esm/tests/unit/model-deprecation.test.d.ts +1 -0
  1123. package/dist/esm/tests/unit/model-deprecation.test.js +140 -0
  1124. package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -0
  1125. package/dist/esm/tests/unit/model-utils.test.d.ts +1 -0
  1126. package/dist/esm/tests/unit/model-utils.test.js +40 -0
  1127. package/dist/esm/tests/unit/model-utils.test.js.map +1 -0
  1128. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +1 -0
  1129. package/dist/esm/tests/unit/openai-cua-client.test.js +69 -0
  1130. package/dist/esm/tests/unit/openai-cua-client.test.js.map +1 -0
  1131. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  1132. package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
  1133. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
  1134. package/dist/esm/tests/unit/page-snapshot.test.d.ts +1 -0
  1135. package/dist/esm/tests/unit/page-snapshot.test.js +40 -0
  1136. package/dist/esm/tests/unit/page-snapshot.test.js.map +1 -0
  1137. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +1 -0
  1138. package/dist/esm/tests/unit/public-api/export-surface.test.js +72 -0
  1139. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +1 -0
  1140. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  1141. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +140 -0
  1142. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  1143. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  1144. package/dist/esm/tests/unit/public-api/public-error-types.test.js +74 -0
  1145. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +1 -0
  1146. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +1 -0
  1147. package/dist/esm/tests/unit/public-api/public-types.test.js +97 -0
  1148. package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -0
  1149. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  1150. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +25 -0
  1151. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  1152. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  1153. package/dist/esm/tests/unit/public-api/schema-utils.test.js +60 -0
  1154. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +1 -0
  1155. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  1156. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +86 -0
  1157. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  1158. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  1159. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +30 -0
  1160. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  1161. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +1 -0
  1162. package/dist/esm/tests/unit/public-api/v3-core.test.js +73 -0
  1163. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +1 -0
  1164. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +1 -0
  1165. package/dist/esm/tests/unit/safety-confirmation.test.js +108 -0
  1166. package/dist/esm/tests/unit/safety-confirmation.test.js.map +1 -0
  1167. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  1168. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +295 -0
  1169. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  1170. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  1171. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +284 -0
  1172. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  1173. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  1174. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +359 -0
  1175. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  1176. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +1 -0
  1177. package/dist/esm/tests/unit/snapshot-cbor.test.js +202 -0
  1178. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +1 -0
  1179. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  1180. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +218 -0
  1181. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  1182. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  1183. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +105 -0
  1184. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  1185. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  1186. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +87 -0
  1187. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  1188. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  1189. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +333 -0
  1190. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  1191. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  1192. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +82 -0
  1193. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  1194. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  1195. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +72 -0
  1196. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  1197. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +1 -0
  1198. package/dist/esm/tests/unit/timeout-handlers.test.js +812 -0
  1199. package/dist/esm/tests/unit/timeout-handlers.test.js.map +1 -0
  1200. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +1 -0
  1201. package/dist/esm/tests/unit/understudy-command-exception.test.js +55 -0
  1202. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +1 -0
  1203. package/dist/esm/tests/unit/xpath-parser.test.d.ts +1 -0
  1204. package/dist/esm/tests/unit/xpath-parser.test.js +309 -0
  1205. package/dist/esm/tests/unit/xpath-parser.test.js.map +1 -0
  1206. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +1 -0
  1207. package/dist/esm/tests/unit/xpath-resolver.test.js +78 -0
  1208. package/dist/esm/tests/unit/xpath-resolver.test.js.map +1 -0
  1209. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  1210. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +114 -0
  1211. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  1212. package/package.json +19 -8
  1213. package/dist/cjs/cli.js.map +0 -7
  1214. package/dist/cjs/index.js.map +0 -7
  1215. package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1216. package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
  1217. package/dist/cjs/lib/v3/flowLogger.d.ts +0 -139
  1218. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1219. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1220. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +0 -102
  1221. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1222. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1223. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1224. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +0 -354
  1225. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1226. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1227. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1228. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1229. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1230. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +0 -126
  1231. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1232. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1233. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1234. package/dist/cjs/lib/v3/tests/click-count.spec.js +0 -147
  1235. package/dist/cjs/lib/v3/tests/click-count.spec.js.map +0 -7
  1236. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1237. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1238. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1239. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1240. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1241. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1242. package/dist/cjs/lib/v3/tests/downloads.spec.js +0 -80
  1243. package/dist/cjs/lib/v3/tests/downloads.spec.js.map +0 -7
  1244. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1245. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1246. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1247. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1248. package/dist/cjs/lib/v3/tests/keep-alive.child.js +0 -92
  1249. package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +0 -7
  1250. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +0 -568
  1251. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1252. package/dist/cjs/lib/v3/tests/keep-alive.spec.js +0 -15
  1253. package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1254. package/dist/cjs/lib/v3/tests/keyboard.spec.js +0 -296
  1255. package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +0 -7
  1256. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1257. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1258. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1259. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1260. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1261. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1262. package/dist/cjs/lib/v3/tests/locator-count.spec.js +0 -71
  1263. package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +0 -7
  1264. package/dist/cjs/lib/v3/tests/locator-fill.spec.js +0 -119
  1265. package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1266. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1267. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1268. package/dist/cjs/lib/v3/tests/locator-nth.spec.js +0 -157
  1269. package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1270. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +0 -243
  1271. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1272. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +0 -547
  1273. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1274. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1275. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1276. package/dist/cjs/lib/v3/tests/nested-div.spec.js +0 -23
  1277. package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +0 -7
  1278. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1279. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1280. package/dist/cjs/lib/v3/tests/page-console.spec.js +0 -56
  1281. package/dist/cjs/lib/v3/tests/page-console.spec.js.map +0 -7
  1282. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1283. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1284. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +0 -35
  1285. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1286. package/dist/cjs/lib/v3/tests/page-hover.spec.js +0 -167
  1287. package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +0 -7
  1288. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +0 -295
  1289. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1290. package/dist/cjs/lib/v3/tests/page-scroll.spec.js +0 -182
  1291. package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1292. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1293. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1294. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1295. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1296. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +0 -148
  1297. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1298. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -156
  1299. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1300. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +0 -156
  1301. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1302. package/dist/cjs/lib/v3/tests/testUtils.js +0 -54
  1303. package/dist/cjs/lib/v3/tests/testUtils.js.map +0 -7
  1304. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1305. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1306. package/dist/cjs/lib/v3/tests/timeouts.spec.js +0 -32
  1307. package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +0 -7
  1308. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +0 -65
  1309. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1310. package/dist/cjs/lib/v3/tests/v3.config.js +0 -36
  1311. package/dist/cjs/lib/v3/tests/v3.config.js.map +0 -7
  1312. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +0 -67
  1313. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1314. package/dist/cjs/lib/v3/tests/v3.playwright.config.js +0 -61
  1315. package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1316. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1317. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1318. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1319. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1320. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1321. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1322. package/dist/cjs/tests/agent-execution-model.test.js +0 -139
  1323. package/dist/cjs/tests/agent-execution-model.test.js.map +0 -7
  1324. package/dist/cjs/tests/api-multiregion.test.js +0 -73
  1325. package/dist/cjs/tests/api-multiregion.test.js.map +0 -7
  1326. package/dist/cjs/tests/browserbase-session-accessors.test.js +0 -101
  1327. package/dist/cjs/tests/browserbase-session-accessors.test.js.map +0 -7
  1328. package/dist/cjs/tests/cache-llm-resolution.test.js +0 -187
  1329. package/dist/cjs/tests/cache-llm-resolution.test.js.map +0 -7
  1330. package/dist/cjs/tests/helpers/mockCDPSession.js +0 -50
  1331. package/dist/cjs/tests/helpers/mockCDPSession.js.map +0 -7
  1332. package/dist/cjs/tests/llm-provider.test.js +0 -57
  1333. package/dist/cjs/tests/llm-provider.test.js.map +0 -7
  1334. package/dist/cjs/tests/model-deprecation.test.js +0 -132
  1335. package/dist/cjs/tests/model-deprecation.test.js.map +0 -7
  1336. package/dist/cjs/tests/model-utils.test.js +0 -43
  1337. package/dist/cjs/tests/model-utils.test.js.map +0 -7
  1338. package/dist/cjs/tests/page-snapshot.test.js +0 -58
  1339. package/dist/cjs/tests/page-snapshot.test.js.map +0 -7
  1340. package/dist/cjs/tests/public-api/export-surface.test.js +0 -77
  1341. package/dist/cjs/tests/public-api/export-surface.test.js.map +0 -7
  1342. package/dist/cjs/tests/public-api/llm-and-agents.test.js +0 -151
  1343. package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +0 -7
  1344. package/dist/cjs/tests/public-api/public-error-types.test.js +0 -106
  1345. package/dist/cjs/tests/public-api/public-error-types.test.js.map +0 -7
  1346. package/dist/cjs/tests/public-api/public-types.test.js +0 -74
  1347. package/dist/cjs/tests/public-api/public-types.test.js.map +0 -7
  1348. package/dist/cjs/tests/public-api/runtime-utils.test.js +0 -53
  1349. package/dist/cjs/tests/public-api/runtime-utils.test.js.map +0 -7
  1350. package/dist/cjs/tests/public-api/schema-utils.test.js +0 -100
  1351. package/dist/cjs/tests/public-api/schema-utils.test.js.map +0 -7
  1352. package/dist/cjs/tests/public-api/timeout-error-types.test.js +0 -103
  1353. package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +0 -7
  1354. package/dist/cjs/tests/public-api/tool-type-export.test.js +0 -47
  1355. package/dist/cjs/tests/public-api/tool-type-export.test.js.map +0 -7
  1356. package/dist/cjs/tests/public-api/v3-core.test.js +0 -105
  1357. package/dist/cjs/tests/public-api/v3-core.test.js.map +0 -7
  1358. package/dist/cjs/tests/safety-confirmation.test.js +0 -134
  1359. package/dist/cjs/tests/safety-confirmation.test.js.map +0 -7
  1360. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +0 -370
  1361. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1362. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +0 -294
  1363. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1364. package/dist/cjs/tests/snapshot-capture-orchestration.test.js +0 -405
  1365. package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1366. package/dist/cjs/tests/snapshot-cbor.test.js +0 -197
  1367. package/dist/cjs/tests/snapshot-cbor.test.js.map +0 -7
  1368. package/dist/cjs/tests/snapshot-dom-session-builders.test.js +0 -246
  1369. package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1370. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +0 -104
  1371. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1372. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +0 -45
  1373. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1374. package/dist/cjs/tests/snapshot-frame-merge.test.js +0 -388
  1375. package/dist/cjs/tests/snapshot-frame-merge.test.js.map +0 -7
  1376. package/dist/cjs/tests/snapshot-tree-format-utils.test.js +0 -106
  1377. package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1378. package/dist/cjs/tests/snapshot-xpath-utils.test.js +0 -74
  1379. package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +0 -7
  1380. package/dist/cjs/tests/timeout-handlers.test.js +0 -864
  1381. package/dist/cjs/tests/timeout-handlers.test.js.map +0 -7
  1382. package/dist/cjs/tests/understudy-command-exception.test.js +0 -52
  1383. package/dist/cjs/tests/understudy-command-exception.test.js.map +0 -7
  1384. package/dist/cjs/tests/xpath-parser.test.js +0 -314
  1385. package/dist/cjs/tests/xpath-parser.test.js.map +0 -7
  1386. package/dist/cjs/tests/xpath-resolver.test.js +0 -70
  1387. package/dist/cjs/tests/xpath-resolver.test.js.map +0 -7
  1388. package/dist/cjs/tests/zod-enum-compatibility.test.js +0 -119
  1389. package/dist/cjs/tests/zod-enum-compatibility.test.js.map +0 -7
  1390. package/dist/esm/lib/v3/agent/tools/search.js +0 -73
  1391. package/dist/esm/lib/v3/agent/tools/search.js.map +0 -1
  1392. package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1393. package/dist/esm/lib/v3/dom/build/rerender-index.js.map +0 -1
  1394. package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
  1395. package/dist/esm/lib/v3/dom/build/v3-index.js.map +0 -1
  1396. package/dist/esm/lib/v3/dom/genA11yScripts.js +0 -54
  1397. package/dist/esm/lib/v3/dom/genA11yScripts.js.map +0 -1
  1398. package/dist/esm/lib/v3/dom/genDomScripts.js +0 -38
  1399. package/dist/esm/lib/v3/dom/genDomScripts.js.map +0 -1
  1400. package/dist/esm/lib/v3/dom/genLocatorScripts.js +0 -51
  1401. package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +0 -1
  1402. package/dist/esm/lib/v3/dom/genScreenshotScripts.js +0 -37
  1403. package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +0 -1
  1404. package/dist/esm/lib/v3/flowLogger.d.ts +0 -139
  1405. package/dist/esm/lib/v3/flowLogger.js +0 -868
  1406. package/dist/esm/lib/v3/flowLogger.js.map +0 -1
  1407. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1408. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1409. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +0 -80
  1410. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1411. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1412. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1413. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +0 -357
  1414. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1415. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1416. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1417. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1418. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1419. package/dist/esm/lib/v3/tests/agent-streaming.spec.js +0 -126
  1420. package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1421. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1422. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1423. package/dist/esm/lib/v3/tests/click-count.spec.js +0 -147
  1424. package/dist/esm/lib/v3/tests/click-count.spec.js.map +0 -7
  1425. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1426. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1427. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1428. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1429. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1430. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1431. package/dist/esm/lib/v3/tests/downloads.spec.js +0 -58
  1432. package/dist/esm/lib/v3/tests/downloads.spec.js.map +0 -7
  1433. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1434. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1435. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1436. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1437. package/dist/esm/lib/v3/tests/keep-alive.child.js +0 -92
  1438. package/dist/esm/lib/v3/tests/keep-alive.child.js.map +0 -7
  1439. package/dist/esm/lib/v3/tests/keep-alive.helpers.js +0 -532
  1440. package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1441. package/dist/esm/lib/v3/tests/keep-alive.spec.js +0 -19
  1442. package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1443. package/dist/esm/lib/v3/tests/keyboard.spec.js +0 -296
  1444. package/dist/esm/lib/v3/tests/keyboard.spec.js.map +0 -7
  1445. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1446. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1447. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1448. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1449. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1450. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1451. package/dist/esm/lib/v3/tests/locator-count.spec.js +0 -71
  1452. package/dist/esm/lib/v3/tests/locator-count.spec.js.map +0 -7
  1453. package/dist/esm/lib/v3/tests/locator-fill.spec.js +0 -119
  1454. package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1455. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1456. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1457. package/dist/esm/lib/v3/tests/locator-nth.spec.js +0 -157
  1458. package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1459. package/dist/esm/lib/v3/tests/locator-select-option.spec.js +0 -243
  1460. package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1461. package/dist/esm/lib/v3/tests/logger-initialization.spec.js +0 -552
  1462. package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1463. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1464. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1465. package/dist/esm/lib/v3/tests/nested-div.spec.js +0 -23
  1466. package/dist/esm/lib/v3/tests/nested-div.spec.js.map +0 -7
  1467. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1468. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1469. package/dist/esm/lib/v3/tests/page-console.spec.js +0 -56
  1470. package/dist/esm/lib/v3/tests/page-console.spec.js.map +0 -7
  1471. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1472. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1473. package/dist/esm/lib/v3/tests/page-goto-response.spec.js +0 -35
  1474. package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1475. package/dist/esm/lib/v3/tests/page-hover.spec.js +0 -167
  1476. package/dist/esm/lib/v3/tests/page-hover.spec.js.map +0 -7
  1477. package/dist/esm/lib/v3/tests/page-screenshot.spec.js +0 -273
  1478. package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1479. package/dist/esm/lib/v3/tests/page-scroll.spec.js +0 -182
  1480. package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1481. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1482. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1483. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1484. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1485. package/dist/esm/lib/v3/tests/setinputfiles.spec.js +0 -126
  1486. package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1487. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -134
  1488. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1489. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +0 -134
  1490. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1491. package/dist/esm/lib/v3/tests/testUtils.js +0 -31
  1492. package/dist/esm/lib/v3/tests/testUtils.js.map +0 -7
  1493. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1494. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1495. package/dist/esm/lib/v3/tests/timeouts.spec.js +0 -32
  1496. package/dist/esm/lib/v3/tests/timeouts.spec.js.map +0 -7
  1497. package/dist/esm/lib/v3/tests/user-data-dir.spec.js +0 -43
  1498. package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1499. package/dist/esm/lib/v3/tests/v3.config.js +0 -15
  1500. package/dist/esm/lib/v3/tests/v3.config.js.map +0 -7
  1501. package/dist/esm/lib/v3/tests/v3.dynamic.config.js +0 -43
  1502. package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1503. package/dist/esm/lib/v3/tests/v3.playwright.config.js +0 -41
  1504. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1505. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1506. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1507. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1508. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1509. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1510. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1511. package/dist/esm/tests/agent-execution-model.test.js +0 -139
  1512. package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
  1513. package/dist/esm/tests/api-multiregion.test.js +0 -73
  1514. package/dist/esm/tests/api-multiregion.test.js.map +0 -7
  1515. package/dist/esm/tests/browserbase-session-accessors.test.js +0 -101
  1516. package/dist/esm/tests/browserbase-session-accessors.test.js.map +0 -7
  1517. package/dist/esm/tests/cache-llm-resolution.test.js +0 -187
  1518. package/dist/esm/tests/cache-llm-resolution.test.js.map +0 -7
  1519. package/dist/esm/tests/helpers/mockCDPSession.js +0 -27
  1520. package/dist/esm/tests/helpers/mockCDPSession.js.map +0 -7
  1521. package/dist/esm/tests/llm-provider.test.js +0 -57
  1522. package/dist/esm/tests/llm-provider.test.js.map +0 -7
  1523. package/dist/esm/tests/model-deprecation.test.js +0 -135
  1524. package/dist/esm/tests/model-deprecation.test.js.map +0 -7
  1525. package/dist/esm/tests/model-utils.test.js +0 -43
  1526. package/dist/esm/tests/model-utils.test.js.map +0 -7
  1527. package/dist/esm/tests/page-snapshot.test.js +0 -36
  1528. package/dist/esm/tests/page-snapshot.test.js.map +0 -7
  1529. package/dist/esm/tests/public-api/export-surface.test.js +0 -55
  1530. package/dist/esm/tests/public-api/export-surface.test.js.map +0 -7
  1531. package/dist/esm/tests/public-api/llm-and-agents.test.js +0 -129
  1532. package/dist/esm/tests/public-api/llm-and-agents.test.js.map +0 -7
  1533. package/dist/esm/tests/public-api/public-error-types.test.js +0 -73
  1534. package/dist/esm/tests/public-api/public-error-types.test.js.map +0 -7
  1535. package/dist/esm/tests/public-api/public-types.test.js +0 -74
  1536. package/dist/esm/tests/public-api/public-types.test.js.map +0 -7
  1537. package/dist/esm/tests/public-api/runtime-utils.test.js +0 -31
  1538. package/dist/esm/tests/public-api/runtime-utils.test.js.map +0 -7
  1539. package/dist/esm/tests/public-api/schema-utils.test.js +0 -78
  1540. package/dist/esm/tests/public-api/schema-utils.test.js.map +0 -7
  1541. package/dist/esm/tests/public-api/timeout-error-types.test.js +0 -81
  1542. package/dist/esm/tests/public-api/timeout-error-types.test.js.map +0 -7
  1543. package/dist/esm/tests/public-api/tool-type-export.test.js +0 -25
  1544. package/dist/esm/tests/public-api/tool-type-export.test.js.map +0 -7
  1545. package/dist/esm/tests/public-api/v3-core.test.js +0 -83
  1546. package/dist/esm/tests/public-api/v3-core.test.js.map +0 -7
  1547. package/dist/esm/tests/safety-confirmation.test.js +0 -134
  1548. package/dist/esm/tests/safety-confirmation.test.js.map +0 -7
  1549. package/dist/esm/tests/snapshot-a11y-resolvers.test.js +0 -348
  1550. package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1551. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +0 -300
  1552. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1553. package/dist/esm/tests/snapshot-capture-orchestration.test.js +0 -383
  1554. package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1555. package/dist/esm/tests/snapshot-cbor.test.js +0 -197
  1556. package/dist/esm/tests/snapshot-cbor.test.js.map +0 -7
  1557. package/dist/esm/tests/snapshot-dom-session-builders.test.js +0 -251
  1558. package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1559. package/dist/esm/tests/snapshot-dom-tree-utils.test.js +0 -109
  1560. package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1561. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +0 -49
  1562. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1563. package/dist/esm/tests/snapshot-frame-merge.test.js +0 -391
  1564. package/dist/esm/tests/snapshot-frame-merge.test.js.map +0 -7
  1565. package/dist/esm/tests/snapshot-tree-format-utils.test.js +0 -113
  1566. package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1567. package/dist/esm/tests/snapshot-xpath-utils.test.js +0 -79
  1568. package/dist/esm/tests/snapshot-xpath-utils.test.js.map +0 -7
  1569. package/dist/esm/tests/timeout-handlers.test.js +0 -850
  1570. package/dist/esm/tests/timeout-handlers.test.js.map +0 -7
  1571. package/dist/esm/tests/understudy-command-exception.test.js +0 -55
  1572. package/dist/esm/tests/understudy-command-exception.test.js.map +0 -7
  1573. package/dist/esm/tests/xpath-parser.test.js +0 -317
  1574. package/dist/esm/tests/xpath-parser.test.js.map +0 -7
  1575. package/dist/esm/tests/xpath-resolver.test.js +0 -73
  1576. package/dist/esm/tests/xpath-resolver.test.js.map +0 -7
  1577. package/dist/esm/tests/zod-enum-compatibility.test.js +0 -97
  1578. package/dist/esm/tests/zod-enum-compatibility.test.js.map +0 -7
  1579. /package/dist/cjs/lib/v3/agent/tools/{search.d.ts → braveSearch.d.ts} +0 -0
  1580. /package/dist/cjs/{lib/v3/dom/genA11yScripts.d.ts → tests/cache-variables.test.d.ts} +0 -0
  1581. /package/dist/cjs/{lib/v3/dom/genDomScripts.d.ts → tests/integration/agent-abort-signal.spec.d.ts} +0 -0
  1582. /package/dist/cjs/{lib/v3/dom/genLocatorScripts.d.ts → tests/integration/agent-cache-self-heal.spec.d.ts} +0 -0
  1583. /package/dist/cjs/{lib/v3/dom/genScreenshotScripts.d.ts → tests/integration/agent-callbacks.spec.d.ts} +0 -0
  1584. /package/dist/{esm/lib/v3/dom/genA11yScripts.d.ts → cjs/tests/integration/agent-captcha-autosolve.spec.d.ts} +0 -0
  1585. /package/dist/{esm/lib/v3/dom/genDomScripts.d.ts → cjs/tests/integration/agent-experimental-validation.spec.d.ts} +0 -0
  1586. /package/dist/{esm/lib/v3/dom/genLocatorScripts.d.ts → cjs/tests/integration/agent-hybrid-mode.spec.d.ts} +0 -0
  1587. /package/dist/{esm/lib/v3/dom/genScreenshotScripts.d.ts → cjs/tests/integration/agent-message-continuation.spec.d.ts} +0 -0
  1588. /package/dist/esm/lib/v3/agent/tools/{search.d.ts → braveSearch.d.ts} +0 -0
@@ -0,0 +1,1679 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
19
+ var useValue = arguments.length > 2;
20
+ for (var i = 0; i < initializers.length; i++) {
21
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
22
+ }
23
+ return useValue ? value : void 0;
24
+ };
25
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
26
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
27
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
28
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
29
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
30
+ var _, done = false;
31
+ for (var i = decorators.length - 1; i >= 0; i--) {
32
+ var context = {};
33
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
34
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
35
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
36
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
37
+ if (kind === "accessor") {
38
+ if (result === void 0) continue;
39
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
40
+ if (_ = accept(result.get)) descriptor.get = _;
41
+ if (_ = accept(result.set)) descriptor.set = _;
42
+ if (_ = accept(result.init)) initializers.unshift(_);
43
+ }
44
+ else if (_ = accept(result)) {
45
+ if (kind === "field") initializers.unshift(_);
46
+ else descriptor[key] = _;
47
+ }
48
+ }
49
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
50
+ done = true;
51
+ };
52
+ var __importStar = (this && this.__importStar) || (function () {
53
+ var ownKeys = function(o) {
54
+ ownKeys = Object.getOwnPropertyNames || function (o) {
55
+ var ar = [];
56
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
57
+ return ar;
58
+ };
59
+ return ownKeys(o);
60
+ };
61
+ return function (mod) {
62
+ if (mod && mod.__esModule) return mod;
63
+ var result = {};
64
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
65
+ __setModuleDefault(result, mod);
66
+ return result;
67
+ };
68
+ })();
69
+ var __importDefault = (this && this.__importDefault) || function (mod) {
70
+ return (mod && mod.__esModule) ? mod : { "default": mod };
71
+ };
72
+ Object.defineProperty(exports, "__esModule", { value: true });
73
+ exports.V3 = void 0;
74
+ exports.resolveModelConfiguration = resolveModelConfiguration;
75
+ const fs_1 = __importDefault(require("fs"));
76
+ const os_1 = __importDefault(require("os"));
77
+ const path_1 = __importDefault(require("path"));
78
+ const process_1 = __importDefault(require("process"));
79
+ const uuid_1 = require("uuid");
80
+ const zodCompat_js_1 = require("./zodCompat.js");
81
+ const utils_js_1 = require("../utils.js");
82
+ const modelUtils_js_1 = require("../modelUtils.js");
83
+ const logger_js_1 = require("../logger.js");
84
+ const ActCache_js_1 = require("./cache/ActCache.js");
85
+ const AgentCache_js_1 = require("./cache/AgentCache.js");
86
+ const CacheStorage_js_1 = require("./cache/CacheStorage.js");
87
+ const actHandler_js_1 = require("./handlers/actHandler.js");
88
+ const extractHandler_js_1 = require("./handlers/extractHandler.js");
89
+ const observeHandler_js_1 = require("./handlers/observeHandler.js");
90
+ const v3AgentHandler_js_1 = require("./handlers/v3AgentHandler.js");
91
+ const v3CuaAgentHandler_js_1 = require("./handlers/v3CuaAgentHandler.js");
92
+ const captchaSolver_js_1 = require("./agent/utils/captchaSolver.js");
93
+ const browserbase_js_1 = require("./launch/browserbase.js");
94
+ const local_js_1 = require("./launch/local.js");
95
+ const LLMProvider_js_1 = require("./llm/LLMProvider.js");
96
+ const logger_js_2 = require("./logger.js");
97
+ const cleanupLocal_js_1 = require("./shutdown/cleanupLocal.js");
98
+ const supervisorClient_js_1 = require("./shutdown/supervisorClient.js");
99
+ const utils_js_2 = require("./mcp/utils.js");
100
+ const index_js_1 = require("./types/public/index.js");
101
+ const context_js_1 = require("./understudy/context.js");
102
+ const modelUtils_js_2 = require("../modelUtils.js");
103
+ const api_js_1 = require("./api.js");
104
+ const validateExperimentalFeatures_js_1 = require("./agent/utils/validateExperimentalFeatures.js");
105
+ const variables_js_1 = require("./agent/utils/variables.js");
106
+ const FlowLogger_js_1 = require("./flowlogger/FlowLogger.js");
107
+ const EventEmitter_js_1 = require("./flowlogger/EventEmitter.js");
108
+ const EventStore_js_1 = require("./flowlogger/EventStore.js");
109
+ const timeoutGuard_js_1 = require("./handlers/handlerUtils/timeoutGuard.js");
110
+ const sdkErrors_js_1 = require("./types/public/sdkErrors.js");
111
+ const DEFAULT_MODEL_NAME = "openai/gpt-4.1-mini";
112
+ const DEFAULT_VIEWPORT = { width: 1288, height: 711 };
113
+ const DEFAULT_AGENT_TOOL_TIMEOUT_MS = 45000;
114
+ function resolveModelConfiguration(model) {
115
+ if (!model) {
116
+ return { modelName: DEFAULT_MODEL_NAME };
117
+ }
118
+ if (typeof model === "string") {
119
+ return { modelName: model };
120
+ }
121
+ if (model && typeof model === "object") {
122
+ const { modelName, middleware, ...clientOptions } = model;
123
+ if (!modelName) {
124
+ throw new index_js_1.StagehandInvalidArgumentError("model.modelName is required when providing client options.");
125
+ }
126
+ return {
127
+ modelName,
128
+ clientOptions: clientOptions,
129
+ middleware,
130
+ };
131
+ }
132
+ return { modelName: DEFAULT_MODEL_NAME };
133
+ }
134
+ /**
135
+ * V3
136
+ *
137
+ * Purpose:
138
+ * A high-level orchestrator for Stagehand V3. Abstracts away whether the browser
139
+ * runs **locally via Chrome** or remotely on **Browserbase**, and exposes simple
140
+ * entrypoints (`act`, `extract`, `observe`) that delegate to the corresponding
141
+ * handler classes.
142
+ *
143
+ * Responsibilities:
144
+ * - Bootstraps Chrome or Browserbase, ensures a working CDP WebSocket, and builds a `V3Context`.
145
+ * - Manages lifecycle: init, context access, cleanup.
146
+ * - Bridges external page objects (Playwright/Puppeteer) into internal frameIds for handlers.
147
+ * - Provides a stable API surface for downstream code regardless of runtime environment.
148
+ */
149
+ let V3 = (() => {
150
+ let _instanceExtraInitializers = [];
151
+ let _act_decorators;
152
+ let _extract_decorators;
153
+ let _observe_decorators;
154
+ return class V3 {
155
+ static {
156
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
157
+ _act_decorators = [FlowLogger_js_1.FlowLogger.wrapWithLogging({
158
+ eventType: "StagehandAct",
159
+ })];
160
+ _extract_decorators = [FlowLogger_js_1.FlowLogger.wrapWithLogging({
161
+ eventType: "StagehandExtract",
162
+ })];
163
+ _observe_decorators = [FlowLogger_js_1.FlowLogger.wrapWithLogging({
164
+ eventType: "StagehandObserve",
165
+ })];
166
+ __esDecorate(this, null, _act_decorators, { kind: "method", name: "act", static: false, private: false, access: { has: obj => "act" in obj, get: obj => obj.act }, metadata: _metadata }, null, _instanceExtraInitializers);
167
+ __esDecorate(this, null, _extract_decorators, { kind: "method", name: "extract", static: false, private: false, access: { has: obj => "extract" in obj, get: obj => obj.extract }, metadata: _metadata }, null, _instanceExtraInitializers);
168
+ __esDecorate(this, null, _observe_decorators, { kind: "method", name: "observe", static: false, private: false, access: { has: obj => "observe" in obj, get: obj => obj.observe }, metadata: _metadata }, null, _instanceExtraInitializers);
169
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
170
+ }
171
+ opts = __runInitializers(this, _instanceExtraInitializers);
172
+ state = { kind: "UNINITIALIZED" };
173
+ actHandler = null;
174
+ extractHandler = null;
175
+ observeHandler = null;
176
+ ctx = null;
177
+ llmClient;
178
+ /**
179
+ * Event bus for internal communication.
180
+ * Emits events like 'screenshot' when screenshots are captured during agent execution.
181
+ */
182
+ bus = new EventEmitter_js_1.EventEmitterWithWildcardSupport();
183
+ modelName;
184
+ modelClientOptions;
185
+ llmProvider;
186
+ overrideLlmClients = new Map();
187
+ domSettleTimeoutMs;
188
+ _isClosing = false;
189
+ browserbaseSessionId;
190
+ browserbaseSessionUrl;
191
+ browserbaseDebugUrl;
192
+ get browserbaseSessionID() {
193
+ return this.browserbaseSessionId;
194
+ }
195
+ get browserbaseSessionURL() {
196
+ return this.browserbaseSessionUrl;
197
+ }
198
+ get browserbaseDebugURL() {
199
+ return this.browserbaseDebugUrl;
200
+ }
201
+ /**
202
+ * Returns true if the browser is running on Browserbase.
203
+ */
204
+ get isBrowserbase() {
205
+ return this.state.kind === "BROWSERBASE";
206
+ }
207
+ /**
208
+ * Returns true if captcha auto-solving is enabled on Browserbase.
209
+ * Defaults to true when not explicitly set to false.
210
+ */
211
+ get isCaptchaAutoSolveEnabled() {
212
+ return (this.isBrowserbase &&
213
+ this.opts.browserbaseSessionCreateParams?.browserSettings
214
+ ?.solveCaptchas !== false);
215
+ }
216
+ /**
217
+ * Returns true if advancedStealth is enabled in Browserbase settings.
218
+ */
219
+ get isAdvancedStealth() {
220
+ return (this.opts.browserbaseSessionCreateParams?.browserSettings
221
+ ?.advancedStealth === true);
222
+ }
223
+ /**
224
+ * Returns the configured viewport dimensions from launch options.
225
+ * Falls back to default 1288x711 if not configured.
226
+ */
227
+ get configuredViewport() {
228
+ const defaultWidth = 1288;
229
+ const defaultHeight = 711;
230
+ if (this.opts.env === "BROWSERBASE") {
231
+ const vp = this.opts.browserbaseSessionCreateParams?.browserSettings?.viewport;
232
+ return {
233
+ width: vp?.width ?? defaultWidth,
234
+ height: vp?.height ?? defaultHeight,
235
+ };
236
+ }
237
+ // LOCAL env
238
+ const vp = this.opts.localBrowserLaunchOptions?.viewport;
239
+ return {
240
+ width: vp?.width ?? defaultWidth,
241
+ height: vp?.height ?? defaultHeight,
242
+ };
243
+ }
244
+ _onCdpClosed = (why) => {
245
+ if (this.state.kind === "BROWSERBASE") {
246
+ void this._logBrowserbaseSessionStatus();
247
+ }
248
+ // Single place to react to the transport closing
249
+ this._immediateShutdown(`CDP transport closed: ${why}`).catch(() => { });
250
+ };
251
+ experimental = false;
252
+ logInferenceToFile = false;
253
+ disableAPI = false;
254
+ externalLogger;
255
+ verbose = 1;
256
+ stagehandLogger;
257
+ _history = [];
258
+ instanceId;
259
+ sessionId;
260
+ eventStore;
261
+ flowLoggerContext;
262
+ static _processGuardsInstalled = false;
263
+ static _instances = new Set();
264
+ cacheStorage;
265
+ actCache;
266
+ agentCache;
267
+ apiClient = null;
268
+ keepAlive;
269
+ shutdownSupervisor = null;
270
+ stagehandMetrics = {
271
+ actPromptTokens: 0,
272
+ actCompletionTokens: 0,
273
+ actReasoningTokens: 0,
274
+ actCachedInputTokens: 0,
275
+ actInferenceTimeMs: 0,
276
+ extractPromptTokens: 0,
277
+ extractCompletionTokens: 0,
278
+ extractReasoningTokens: 0,
279
+ extractCachedInputTokens: 0,
280
+ extractInferenceTimeMs: 0,
281
+ observePromptTokens: 0,
282
+ observeCompletionTokens: 0,
283
+ observeReasoningTokens: 0,
284
+ observeCachedInputTokens: 0,
285
+ observeInferenceTimeMs: 0,
286
+ agentPromptTokens: 0,
287
+ agentCompletionTokens: 0,
288
+ agentReasoningTokens: 0,
289
+ agentCachedInputTokens: 0,
290
+ agentInferenceTimeMs: 0,
291
+ totalPromptTokens: 0,
292
+ totalCompletionTokens: 0,
293
+ totalReasoningTokens: 0,
294
+ totalCachedInputTokens: 0,
295
+ totalInferenceTimeMs: 0,
296
+ };
297
+ constructor(opts) {
298
+ this.externalLogger = opts.logger;
299
+ this.verbose = opts.verbose ?? 1;
300
+ this.instanceId = (0, uuid_1.v7)();
301
+ this.sessionId = opts.sessionId ?? this.instanceId;
302
+ this.keepAlive =
303
+ opts.keepAlive ?? opts.browserbaseSessionCreateParams?.keepAlive;
304
+ // Create per-instance StagehandLogger (handles usePino, verbose, externalLogger)
305
+ // This gives each V3 instance independent logger configuration
306
+ // while still sharing the underlying Pino worker thread via StagehandLogger.sharedPinoLogger
307
+ const loggerOptions = {
308
+ pretty: true,
309
+ level: "info", // Most permissive - filtering happens at instance level
310
+ };
311
+ if (opts.disablePino !== undefined) {
312
+ loggerOptions.usePino = !opts.disablePino;
313
+ }
314
+ this.stagehandLogger = new logger_js_1.StagehandLogger(loggerOptions, opts.logger);
315
+ this.stagehandLogger.setVerbosity(this.verbose);
316
+ // Also bind to AsyncLocalStorage for v3Logger() calls from handlers
317
+ // This maintains backward compatibility with code that uses v3Logger() directly
318
+ try {
319
+ if (this.externalLogger) {
320
+ // Use external logger directly when provided
321
+ (0, logger_js_2.bindInstanceLogger)(this.instanceId, this.externalLogger);
322
+ }
323
+ else {
324
+ // Fall back to stagehandLogger when no external logger
325
+ (0, logger_js_2.bindInstanceLogger)(this.instanceId, (line) => {
326
+ this.stagehandLogger.log(line);
327
+ });
328
+ }
329
+ }
330
+ catch {
331
+ // ignore
332
+ }
333
+ const { modelName, clientOptions, middleware } = resolveModelConfiguration(opts.model);
334
+ this.modelName = modelName;
335
+ this.experimental = opts.experimental ?? false;
336
+ this.logInferenceToFile = opts.logInferenceToFile ?? false;
337
+ this.llmProvider = new LLMProvider_js_1.LLMProvider(this.logger, middleware);
338
+ this.domSettleTimeoutMs = opts.domSettleTimeout;
339
+ this.disableAPI = opts.disableAPI ?? false;
340
+ const baseClientOptions = clientOptions
341
+ ? { ...clientOptions }
342
+ : {};
343
+ if (opts.llmClient) {
344
+ this.llmClient = opts.llmClient;
345
+ this.modelClientOptions = baseClientOptions;
346
+ this.disableAPI = true;
347
+ }
348
+ else {
349
+ // Ensure API key is set
350
+ let apiKey = baseClientOptions.apiKey;
351
+ if (!apiKey) {
352
+ try {
353
+ apiKey = (0, utils_js_1.loadApiKeyFromEnv)(this.modelName.split("/")[0], // "openai", "anthropic", etc
354
+ this.logger);
355
+ }
356
+ catch (error) {
357
+ this.logger({
358
+ category: "init",
359
+ message: `Error loading API key for model ${this.modelName}: ${error}. Continuing without LLM client.`,
360
+ level: 0,
361
+ });
362
+ throw error;
363
+ }
364
+ }
365
+ this.modelClientOptions = {
366
+ ...baseClientOptions,
367
+ apiKey,
368
+ };
369
+ // Get the default client for this model
370
+ this.llmClient = this.llmProvider.getClient(this.modelName, this.modelClientOptions, { experimental: this.experimental, disableAPI: this.disableAPI });
371
+ }
372
+ this.cacheStorage = CacheStorage_js_1.CacheStorage.create(opts.cacheDir, this.logger, {
373
+ label: "cache directory",
374
+ });
375
+ this.actCache = new ActCache_js_1.ActCache({
376
+ storage: this.cacheStorage,
377
+ logger: this.logger,
378
+ getActHandler: () => this.actHandler,
379
+ getDefaultLlmClient: () => this.resolveLlmClient(),
380
+ domSettleTimeoutMs: this.domSettleTimeoutMs,
381
+ });
382
+ this.agentCache = new AgentCache_js_1.AgentCache({
383
+ storage: this.cacheStorage,
384
+ logger: this.logger,
385
+ getActHandler: () => this.actHandler,
386
+ getContext: () => this.ctx,
387
+ getDefaultLlmClient: () => this.resolveLlmClient(),
388
+ getBaseModelName: () => this.modelName,
389
+ getSystemPrompt: () => opts.systemPrompt,
390
+ domSettleTimeoutMs: this.domSettleTimeoutMs,
391
+ act: this.act.bind(this),
392
+ });
393
+ this.opts = opts;
394
+ // FlowLogger always gets a per-instance session context and shared event
395
+ // bus. The attached EventStore decides which sinks are active:
396
+ // `BROWSERBASE_FLOW_LOGS=1` enables pretty stderr output,
397
+ // and `BROWSERBASE_CONFIG_DIR` enables the pretty/jsonl file sinks for this session.
398
+ this.eventStore = new EventStore_js_1.EventStore(this.sessionId, opts);
399
+ this.flowLoggerContext = FlowLogger_js_1.FlowLogger.init(this.sessionId, this.bus);
400
+ // Flow event pipeline:
401
+ // FlowLogger -> this.bus -> this.eventStore -> configured sinks/query history.
402
+ // V3 owns the bus for this session. EventStore is not another bus; it just
403
+ // receives already-emitted FlowEvents here, then fans them out to sinks and
404
+ // keeps the queryable per-session history used by /v4/log, parent/ancestor lookups, and tests.
405
+ // `on()` stores a strong reference to the handler, so the EventStore
406
+ // stays alive until this bus is garbage-collected with the rest of the V3
407
+ // object graph.
408
+ this.bus.on("*", this.eventStore.emit);
409
+ // Track instance for global process guard handling
410
+ V3._instances.add(this);
411
+ }
412
+ /**
413
+ * Async property for metrics so callers can `await v3.metrics`.
414
+ * When using API mode, fetches metrics from the API. Otherwise returns local metrics.
415
+ */
416
+ get metrics() {
417
+ if (this.apiClient) {
418
+ // Fetch metrics from the API
419
+ return this.apiClient.getReplayMetrics().catch((error) => {
420
+ this.logger({
421
+ category: "metrics",
422
+ message: `Failed to fetch metrics from API: ${error}`,
423
+ level: 0,
424
+ });
425
+ // Fall back to local metrics on error
426
+ return this.stagehandMetrics;
427
+ });
428
+ }
429
+ // Return local metrics wrapped in a Promise for consistency
430
+ return Promise.resolve(this.stagehandMetrics);
431
+ }
432
+ resolveLlmClient(model) {
433
+ if (!model) {
434
+ return this.llmClient;
435
+ }
436
+ let modelName;
437
+ let clientOptions;
438
+ let perCallMiddleware;
439
+ if (typeof model === "string") {
440
+ modelName = model;
441
+ }
442
+ else {
443
+ const { modelName: overrideModelName, middleware, ...rest } = model;
444
+ modelName = overrideModelName;
445
+ clientOptions = rest;
446
+ perCallMiddleware = middleware;
447
+ }
448
+ if (modelName === this.modelName &&
449
+ !perCallMiddleware &&
450
+ (!clientOptions || Object.keys(clientOptions).length === 0)) {
451
+ return this.llmClient;
452
+ }
453
+ const overrideProvider = String(modelName).split("/")[0];
454
+ const baseProvider = String(this.modelName).split("/")[0];
455
+ const mergedOptions = {
456
+ ...(overrideProvider === baseProvider ? this.modelClientOptions : {}),
457
+ ...(clientOptions ?? {}),
458
+ };
459
+ const providerKey = overrideProvider;
460
+ if (!mergedOptions.apiKey) {
461
+ const apiKey = (0, utils_js_1.loadApiKeyFromEnv)(providerKey, this.logger);
462
+ if (apiKey) {
463
+ mergedOptions.apiKey = apiKey;
464
+ }
465
+ }
466
+ const cacheKey = JSON.stringify({
467
+ modelName,
468
+ clientOptions: mergedOptions,
469
+ });
470
+ const cached = this.overrideLlmClients.get(cacheKey);
471
+ if (cached) {
472
+ return cached;
473
+ }
474
+ const client = this.llmProvider.getClient(modelName, mergedOptions, {
475
+ experimental: this.experimental,
476
+ disableAPI: this.disableAPI,
477
+ middleware: perCallMiddleware,
478
+ });
479
+ this.overrideLlmClients.set(cacheKey, client);
480
+ return client;
481
+ }
482
+ beginAgentReplayRecording() {
483
+ this.agentCache.beginRecording();
484
+ }
485
+ endAgentReplayRecording() {
486
+ return this.agentCache.endRecording();
487
+ }
488
+ discardAgentReplayRecording() {
489
+ this.agentCache.discardRecording();
490
+ }
491
+ isAgentReplayRecording() {
492
+ return this.agentCache.isRecording();
493
+ }
494
+ isAgentReplayActive() {
495
+ return this.agentCache.isReplayActive();
496
+ }
497
+ recordAgentReplayStep(step) {
498
+ this.agentCache.recordStep(step);
499
+ }
500
+ /**
501
+ * Async property for history so callers can `await v3.history`.
502
+ * Returns a frozen copy to avoid external mutation.
503
+ */
504
+ get history() {
505
+ return Promise.resolve(Object.freeze([...this._history]));
506
+ }
507
+ addToHistory(method, parameters, result) {
508
+ this._history.push({
509
+ method,
510
+ parameters,
511
+ result: result ?? null,
512
+ timestamp: new Date().toISOString(),
513
+ });
514
+ }
515
+ updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) {
516
+ switch (functionName) {
517
+ case index_js_1.V3FunctionName.ACT:
518
+ this.stagehandMetrics.actPromptTokens += promptTokens;
519
+ this.stagehandMetrics.actCompletionTokens += completionTokens;
520
+ this.stagehandMetrics.actReasoningTokens += reasoningTokens;
521
+ this.stagehandMetrics.actCachedInputTokens += cachedInputTokens;
522
+ this.stagehandMetrics.actInferenceTimeMs += inferenceTimeMs;
523
+ break;
524
+ case index_js_1.V3FunctionName.EXTRACT:
525
+ this.stagehandMetrics.extractPromptTokens += promptTokens;
526
+ this.stagehandMetrics.extractCompletionTokens += completionTokens;
527
+ this.stagehandMetrics.extractReasoningTokens += reasoningTokens;
528
+ this.stagehandMetrics.extractCachedInputTokens += cachedInputTokens;
529
+ this.stagehandMetrics.extractInferenceTimeMs += inferenceTimeMs;
530
+ break;
531
+ case index_js_1.V3FunctionName.OBSERVE:
532
+ this.stagehandMetrics.observePromptTokens += promptTokens;
533
+ this.stagehandMetrics.observeCompletionTokens += completionTokens;
534
+ this.stagehandMetrics.observeReasoningTokens += reasoningTokens;
535
+ this.stagehandMetrics.observeCachedInputTokens += cachedInputTokens;
536
+ this.stagehandMetrics.observeInferenceTimeMs += inferenceTimeMs;
537
+ break;
538
+ case index_js_1.V3FunctionName.AGENT:
539
+ this.stagehandMetrics.agentPromptTokens += promptTokens;
540
+ this.stagehandMetrics.agentCompletionTokens += completionTokens;
541
+ this.stagehandMetrics.agentReasoningTokens += reasoningTokens;
542
+ this.stagehandMetrics.agentCachedInputTokens += cachedInputTokens;
543
+ this.stagehandMetrics.agentInferenceTimeMs += inferenceTimeMs;
544
+ break;
545
+ }
546
+ this.updateTotalMetrics(promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs);
547
+ }
548
+ updateTotalMetrics(promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) {
549
+ this.stagehandMetrics.totalPromptTokens += promptTokens;
550
+ this.stagehandMetrics.totalCompletionTokens += completionTokens;
551
+ this.stagehandMetrics.totalReasoningTokens += reasoningTokens;
552
+ this.stagehandMetrics.totalCachedInputTokens += cachedInputTokens;
553
+ this.stagehandMetrics.totalInferenceTimeMs += inferenceTimeMs;
554
+ }
555
+ async _immediateShutdown(reason) {
556
+ try {
557
+ this.logger({
558
+ category: "v3",
559
+ message: `initiating shutdown → ${reason}`,
560
+ level: 0,
561
+ });
562
+ }
563
+ catch {
564
+ //
565
+ }
566
+ try {
567
+ this.logger({
568
+ category: "v3",
569
+ message: `closing resources → ${reason}`,
570
+ level: 0,
571
+ });
572
+ await this.close({ force: true });
573
+ }
574
+ catch {
575
+ // swallow — already shutting down
576
+ }
577
+ }
578
+ /** Spawn a crash-only supervisor that cleans up when this process dies. */
579
+ startShutdownSupervisor(config) {
580
+ if (this.shutdownSupervisor)
581
+ return this.shutdownSupervisor;
582
+ this.shutdownSupervisor = (0, supervisorClient_js_1.startShutdownSupervisor)(config, {
583
+ onError: (error, context) => {
584
+ try {
585
+ this.logger({
586
+ category: "v3",
587
+ message: "Shutdown supervisor unavailable; crash cleanup disabled. " +
588
+ "If this process exits unexpectedly, local Chrome or Browserbase " +
589
+ "sessions may remain running even with keepAlive=false.",
590
+ level: 0,
591
+ auxiliary: {
592
+ context: { value: context, type: "string" },
593
+ error: { value: error.message, type: "string" },
594
+ },
595
+ });
596
+ }
597
+ catch {
598
+ // ignore logging failures
599
+ }
600
+ },
601
+ });
602
+ return this.shutdownSupervisor;
603
+ }
604
+ /** Stop the supervisor during a normal shutdown. */
605
+ stopShutdownSupervisor() {
606
+ if (!this.shutdownSupervisor)
607
+ return;
608
+ try {
609
+ this.shutdownSupervisor.stop();
610
+ }
611
+ catch {
612
+ // best-effort
613
+ }
614
+ this.shutdownSupervisor = null;
615
+ }
616
+ /**
617
+ * Entrypoint: initializes handlers, launches Chrome or Browserbase,
618
+ * and sets up a CDP context.
619
+ */
620
+ async init() {
621
+ try {
622
+ return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
623
+ this.actHandler = new actHandler_js_1.ActHandler(this.llmClient, this.modelName, this.modelClientOptions, (model) => this.resolveLlmClient(model), this.opts.systemPrompt ?? "", this.logInferenceToFile, this.opts.selfHeal ?? true, (functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) => this.updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs), this.domSettleTimeoutMs);
624
+ this.extractHandler = new extractHandler_js_1.ExtractHandler(this.llmClient, this.modelName, this.modelClientOptions, (model) => this.resolveLlmClient(model), this.opts.systemPrompt ?? "", this.logInferenceToFile, this.experimental, (functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) => this.updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs));
625
+ this.observeHandler = new observeHandler_js_1.ObserveHandler(this.llmClient, this.modelName, this.modelClientOptions, (model) => this.resolveLlmClient(model), this.opts.systemPrompt ?? "", this.logInferenceToFile, this.experimental, (functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs) => this.updateMetrics(functionName, promptTokens, completionTokens, reasoningTokens, cachedInputTokens, inferenceTimeMs));
626
+ if (this.opts.env === "LOCAL") {
627
+ // chrome-launcher conditionally adds --headless when the environment variable
628
+ // HEADLESS is set, without parsing its value.
629
+ // if it is not equal to true, then we delete it from the process
630
+ const envHeadless = process_1.default.env.HEADLESS;
631
+ if (envHeadless !== undefined) {
632
+ const normalized = envHeadless.trim().toLowerCase();
633
+ if (normalized !== "true") {
634
+ delete process_1.default.env.HEADLESS;
635
+ }
636
+ }
637
+ const lbo = this.opts.localBrowserLaunchOptions ?? {};
638
+ if (lbo.cdpHeaders && !lbo.cdpUrl) {
639
+ this.logger({
640
+ category: "init",
641
+ message: "`cdpHeaders` was provided but `cdpUrl` is not set — cdpHeaders will be ignored. Set `cdpUrl` to connect to an existing browser via CDP.",
642
+ level: 2,
643
+ });
644
+ }
645
+ // If a CDP URL is provided, attach instead of launching.
646
+ if (lbo.cdpUrl) {
647
+ this.logger({
648
+ category: "init",
649
+ message: "Connecting to local browser",
650
+ level: 1,
651
+ });
652
+ this.ctx = await context_js_1.V3Context.create(lbo.cdpUrl, {
653
+ env: "LOCAL",
654
+ cdpHeaders: lbo.cdpHeaders,
655
+ });
656
+ this.ctx.conn.flowLoggerContext = this.flowLoggerContext;
657
+ this.ctx.conn.onTransportClosed(this._onCdpClosed);
658
+ this.state = {
659
+ kind: "LOCAL",
660
+ // no LaunchedChrome when attaching externally; create a stub kill
661
+ chrome: {
662
+ kill: async () => { },
663
+ },
664
+ ws: lbo.cdpUrl,
665
+ };
666
+ this.resetBrowserbaseSessionMetadata();
667
+ // Post-connect settings (downloads and viewport) if provided
668
+ await this._applyPostConnectLocalOptions(lbo);
669
+ return;
670
+ }
671
+ this.logger({
672
+ category: "init",
673
+ message: "Launching local browser",
674
+ level: 1,
675
+ });
676
+ // Determine or create user data dir
677
+ let userDataDir = lbo.userDataDir;
678
+ let createdTemp = false;
679
+ if (!userDataDir) {
680
+ const base = path_1.default.join(os_1.default.tmpdir(), "stagehand-v3");
681
+ fs_1.default.mkdirSync(base, { recursive: true });
682
+ userDataDir = fs_1.default.mkdtempSync(path_1.default.join(base, "profile-"));
683
+ createdTemp = true;
684
+ }
685
+ // Build chrome flags
686
+ const defaults = [
687
+ "--remote-allow-origins=*",
688
+ "--no-first-run",
689
+ "--no-default-browser-check",
690
+ "--disable-dev-shm-usage",
691
+ "--site-per-process",
692
+ ];
693
+ let chromeFlags;
694
+ const ignore = lbo.ignoreDefaultArgs;
695
+ if (ignore === true) {
696
+ // drop defaults
697
+ chromeFlags = [];
698
+ }
699
+ else if (Array.isArray(ignore)) {
700
+ chromeFlags = defaults.filter((f) => !ignore.some((ex) => f.includes(ex)));
701
+ }
702
+ else {
703
+ chromeFlags = [...defaults];
704
+ }
705
+ // headless handled by launchLocalChrome
706
+ if (lbo.devtools)
707
+ chromeFlags.push("--auto-open-devtools-for-tabs");
708
+ if (lbo.locale)
709
+ chromeFlags.push(`--lang=${lbo.locale}`);
710
+ if (!lbo.viewport) {
711
+ lbo.viewport = DEFAULT_VIEWPORT;
712
+ }
713
+ if (lbo.viewport?.width && lbo.viewport?.height) {
714
+ chromeFlags.push(`--window-size=${lbo.viewport.width},${lbo.viewport.height + 87}`);
715
+ }
716
+ if (typeof lbo.deviceScaleFactor === "number") {
717
+ chromeFlags.push(`--force-device-scale-factor=${Math.max(0.1, lbo.deviceScaleFactor)}`);
718
+ }
719
+ if (lbo.hasTouch)
720
+ chromeFlags.push("--touch-events=enabled");
721
+ if (lbo.ignoreHTTPSErrors)
722
+ chromeFlags.push("--ignore-certificate-errors");
723
+ if (lbo.proxy?.server)
724
+ chromeFlags.push(`--proxy-server=${lbo.proxy.server}`);
725
+ if (lbo.proxy?.bypass)
726
+ chromeFlags.push(`--proxy-bypass-list=${lbo.proxy.bypass}`);
727
+ // add user-supplied args last
728
+ if (Array.isArray(lbo.args))
729
+ chromeFlags.push(...lbo.args);
730
+ const keepAlive = this.keepAlive === true;
731
+ const { ws, chrome } = await (0, local_js_1.launchLocalChrome)({
732
+ chromePath: lbo.executablePath,
733
+ chromeFlags,
734
+ port: lbo.port,
735
+ headless: lbo.headless,
736
+ userDataDir,
737
+ connectTimeoutMs: lbo.connectTimeoutMs,
738
+ handleSIGINT: !keepAlive,
739
+ });
740
+ if (keepAlive) {
741
+ try {
742
+ chrome.process?.unref?.();
743
+ }
744
+ catch {
745
+ // best-effort: avoid keeping the event loop alive
746
+ }
747
+ }
748
+ this.ctx = await context_js_1.V3Context.create(ws, {
749
+ env: "LOCAL",
750
+ localBrowserLaunchOptions: lbo,
751
+ });
752
+ this.ctx.conn.flowLoggerContext = this.flowLoggerContext;
753
+ this.ctx.conn.onTransportClosed(this._onCdpClosed);
754
+ this.state = {
755
+ kind: "LOCAL",
756
+ chrome,
757
+ ws,
758
+ userDataDir,
759
+ createdTempProfile: createdTemp,
760
+ preserveUserDataDir: !!lbo.preserveUserDataDir,
761
+ };
762
+ this.resetBrowserbaseSessionMetadata();
763
+ const chromePid = chrome.process?.pid ?? chrome.pid;
764
+ if (!keepAlive && chromePid) {
765
+ this.startShutdownSupervisor({
766
+ kind: "LOCAL",
767
+ pid: chromePid,
768
+ userDataDir,
769
+ createdTempProfile: createdTemp,
770
+ preserveUserDataDir: !!lbo.preserveUserDataDir,
771
+ });
772
+ }
773
+ // Post-connect settings (downloads and viewport) if provided
774
+ await this._applyPostConnectLocalOptions(lbo);
775
+ return;
776
+ }
777
+ if (this.opts.env === "BROWSERBASE") {
778
+ const { apiKey, projectId } = this.requireBrowserbaseCreds();
779
+ this.logger({
780
+ category: "init",
781
+ message: "Starting browserbase session",
782
+ level: 1,
783
+ });
784
+ const baseSessionParams = this.opts.browserbaseSessionCreateParams ?? {};
785
+ const resolvedKeepAlive = this.keepAlive;
786
+ const keepAlive = this.keepAlive === true;
787
+ let effectiveSessionParams = baseSessionParams;
788
+ if (resolvedKeepAlive !== undefined) {
789
+ effectiveSessionParams = {
790
+ ...baseSessionParams,
791
+ keepAlive: resolvedKeepAlive,
792
+ };
793
+ }
794
+ if (!this.disableAPI && !this.experimental) {
795
+ this.apiClient = new api_js_1.StagehandAPIClient({
796
+ apiKey,
797
+ projectId,
798
+ logger: this.logger,
799
+ serverCache: this.opts.serverCache,
800
+ });
801
+ const { projectId: overrideProjectId, browserSettings, userMetadata, ...restSessionParams } = effectiveSessionParams;
802
+ const resolvedProjectId = overrideProjectId ?? projectId;
803
+ const createSessionPayload = {
804
+ ...(resolvedProjectId ? { projectId: resolvedProjectId } : {}),
805
+ ...restSessionParams,
806
+ browserSettings: {
807
+ ...(browserSettings ?? {}),
808
+ viewport: browserSettings?.viewport ?? {
809
+ width: 1288,
810
+ height: 711,
811
+ },
812
+ },
813
+ userMetadata: {
814
+ ...(userMetadata ?? {}),
815
+ stagehand: "true",
816
+ },
817
+ };
818
+ const { sessionId, available } = await this.apiClient.init({
819
+ modelName: this.modelName,
820
+ modelApiKey: this.modelClientOptions.apiKey,
821
+ domSettleTimeoutMs: this.domSettleTimeoutMs,
822
+ verbose: this.verbose,
823
+ systemPrompt: this.opts.systemPrompt,
824
+ selfHeal: this.opts.selfHeal,
825
+ browserbaseSessionCreateParams: createSessionPayload,
826
+ browserbaseSessionID: this.opts.browserbaseSessionID,
827
+ });
828
+ if (!available) {
829
+ this.apiClient = null;
830
+ }
831
+ this.opts.browserbaseSessionID = sessionId;
832
+ }
833
+ const { ws, sessionId, bb } = await (0, browserbase_js_1.createBrowserbaseSession)(apiKey, projectId, effectiveSessionParams, this.opts.browserbaseSessionID);
834
+ this.ctx = await context_js_1.V3Context.create(ws, {
835
+ env: "BROWSERBASE",
836
+ apiClient: this.apiClient,
837
+ });
838
+ this.ctx.conn.flowLoggerContext = this.flowLoggerContext;
839
+ this.ctx.conn.onTransportClosed(this._onCdpClosed);
840
+ this.state = { kind: "BROWSERBASE", sessionId, ws, bb };
841
+ this.browserbaseSessionId = sessionId;
842
+ if (!keepAlive && !this.disableAPI) {
843
+ this.startShutdownSupervisor({
844
+ kind: "STAGEHAND_API",
845
+ sessionId,
846
+ apiKey,
847
+ projectId,
848
+ });
849
+ }
850
+ await this._ensureBrowserbaseDownloadsEnabled();
851
+ const resumed = !!this.opts.browserbaseSessionID;
852
+ let debugUrl;
853
+ try {
854
+ const dbg = (await bb.sessions.debug(sessionId));
855
+ debugUrl = dbg?.debuggerUrl;
856
+ }
857
+ catch {
858
+ // Ignore debug fetch failures; continue with sessionUrl only
859
+ }
860
+ const sessionUrl = `https://www.browserbase.com/sessions/${sessionId}`;
861
+ this.browserbaseSessionUrl = sessionUrl;
862
+ this.browserbaseDebugUrl = debugUrl;
863
+ try {
864
+ this.logger({
865
+ category: "init",
866
+ message: resumed
867
+ ? this.apiClient
868
+ ? "Browserbase session started"
869
+ : "Browserbase session resumed"
870
+ : "Browserbase session started",
871
+ level: 1,
872
+ auxiliary: {
873
+ sessionUrl: { value: sessionUrl, type: "string" },
874
+ ...(debugUrl && {
875
+ debugUrl: { value: debugUrl, type: "string" },
876
+ }),
877
+ sessionId: { value: sessionId, type: "string" },
878
+ },
879
+ });
880
+ }
881
+ catch {
882
+ // best-effort logging — ignore failures
883
+ }
884
+ return;
885
+ }
886
+ const neverEnv = this.opts.env;
887
+ throw new index_js_1.StagehandInitError(`Unsupported env: ${neverEnv}`);
888
+ });
889
+ }
890
+ catch (error) {
891
+ // Cleanup instanceLoggers map on init failure to prevent memory leak
892
+ if (this.externalLogger) {
893
+ try {
894
+ (0, logger_js_2.unbindInstanceLogger)(this.instanceId);
895
+ }
896
+ catch {
897
+ // ignore cleanup errors
898
+ }
899
+ }
900
+ throw error;
901
+ }
902
+ }
903
+ /** Apply post-connect local browser options that require CDP. */
904
+ async _applyPostConnectLocalOptions(lbo) {
905
+ try {
906
+ // Downloads behavior
907
+ if (lbo.downloadsPath || lbo.acceptDownloads !== undefined) {
908
+ const behavior = lbo.acceptDownloads === false ? "deny" : "allow";
909
+ await this.ctx?.conn
910
+ .send("Browser.setDownloadBehavior", {
911
+ behavior,
912
+ downloadPath: lbo.downloadsPath,
913
+ eventsEnabled: true,
914
+ })
915
+ .catch(() => { });
916
+ }
917
+ }
918
+ catch {
919
+ // best-effort only
920
+ }
921
+ }
922
+ async _ensureBrowserbaseDownloadsEnabled() {
923
+ const conn = this.ctx?.conn;
924
+ if (!conn)
925
+ return;
926
+ try {
927
+ await conn.send("Browser.setDownloadBehavior", {
928
+ behavior: "allow",
929
+ downloadPath: "downloads",
930
+ eventsEnabled: true,
931
+ });
932
+ }
933
+ catch {
934
+ // best-effort only
935
+ }
936
+ }
937
+ resetBrowserbaseSessionMetadata() {
938
+ this.browserbaseSessionId = undefined;
939
+ this.browserbaseSessionUrl = undefined;
940
+ this.browserbaseDebugUrl = undefined;
941
+ }
942
+ async act(input, options) {
943
+ return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
944
+ if (!this.actHandler)
945
+ throw new index_js_1.StagehandNotInitializedError("act()");
946
+ let actResult;
947
+ if (isObserveResult(input)) {
948
+ // Resolve page: use provided page if any, otherwise default active page
949
+ const v3Page = await this.resolvePage(options?.page);
950
+ // Use selector as provided to support XPath, CSS, and other engines
951
+ const selector = input.selector;
952
+ if (this.apiClient) {
953
+ actResult = await this.apiClient.act({
954
+ input,
955
+ options,
956
+ frameId: v3Page.mainFrameId(),
957
+ });
958
+ }
959
+ else {
960
+ const ensureTimeRemaining = (0, timeoutGuard_js_1.createTimeoutGuard)(options?.timeout, (ms) => new sdkErrors_js_1.ActTimeoutError(ms));
961
+ actResult = await this.actHandler.takeDeterministicAction({ ...input, selector }, v3Page, this.domSettleTimeoutMs, this.resolveLlmClient(options?.model), ensureTimeRemaining, options?.variables);
962
+ }
963
+ // history: record ObserveResult-based act call
964
+ this.addToHistory("act", {
965
+ observeResult: input,
966
+ }, actResult);
967
+ return actResult;
968
+ }
969
+ // instruction path
970
+ if (typeof input !== "string" || !input.trim()) {
971
+ throw new index_js_1.StagehandInvalidArgumentError("act(): instruction string is required unless passing an Action");
972
+ }
973
+ // Resolve page from options or default
974
+ const page = await this.resolvePage(options?.page);
975
+ const actCacheLlmClient = options?.model
976
+ ? this.resolveLlmClient(options.model)
977
+ : undefined;
978
+ let actCacheContext = null;
979
+ const canUseCache = typeof input === "string" &&
980
+ !this.isAgentReplayRecording() &&
981
+ this.actCache.enabled;
982
+ if (canUseCache) {
983
+ actCacheContext = await this.actCache.prepareContext(input, page, (0, variables_js_1.flattenVariables)(options?.variables));
984
+ if (actCacheContext) {
985
+ const cachedResult = await this.actCache.tryReplay(actCacheContext, page, options?.timeout, actCacheLlmClient);
986
+ if (cachedResult) {
987
+ this.addToHistory("act", {
988
+ instruction: input,
989
+ variables: options?.variables,
990
+ timeout: options?.timeout,
991
+ cacheHit: true,
992
+ }, cachedResult);
993
+ return cachedResult;
994
+ }
995
+ }
996
+ }
997
+ const handlerParams = {
998
+ instruction: input,
999
+ page,
1000
+ variables: options?.variables,
1001
+ timeout: options?.timeout,
1002
+ model: options?.model,
1003
+ };
1004
+ if (this.apiClient) {
1005
+ const frameId = page.mainFrameId();
1006
+ actResult = await this.apiClient.act({ input, options, frameId });
1007
+ }
1008
+ else {
1009
+ actResult = await this.actHandler.act(handlerParams);
1010
+ }
1011
+ // history: record instruction-based act call (omit page object)
1012
+ this.addToHistory("act", {
1013
+ instruction: input,
1014
+ variables: options?.variables,
1015
+ timeout: options?.timeout,
1016
+ }, actResult);
1017
+ if (actCacheContext &&
1018
+ actResult.success &&
1019
+ Array.isArray(actResult.actions) &&
1020
+ actResult.actions.length > 0) {
1021
+ await this.actCache.store(actCacheContext, actResult);
1022
+ }
1023
+ return actResult;
1024
+ });
1025
+ }
1026
+ async extract(a, b, c) {
1027
+ return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
1028
+ if (!this.extractHandler) {
1029
+ throw new index_js_1.StagehandNotInitializedError("extract()");
1030
+ }
1031
+ // Normalize args
1032
+ let instruction;
1033
+ let schema;
1034
+ let options;
1035
+ if (typeof a === "string") {
1036
+ instruction = a;
1037
+ const isZodSchema = (val) => !!val &&
1038
+ typeof val === "object" &&
1039
+ "parse" in val &&
1040
+ "safeParse" in val;
1041
+ if (isZodSchema(b)) {
1042
+ schema = b;
1043
+ options = c;
1044
+ }
1045
+ else {
1046
+ options = b;
1047
+ }
1048
+ }
1049
+ else {
1050
+ // a is options or undefined
1051
+ options = a || undefined;
1052
+ }
1053
+ if (!instruction && schema) {
1054
+ throw new index_js_1.StagehandInvalidArgumentError("extract(): schema provided without instruction");
1055
+ }
1056
+ // If instruction without schema → defaultExtractSchema
1057
+ const effectiveSchema = instruction && !schema ? index_js_1.defaultExtractSchema : schema;
1058
+ // Resolve page from options or use active page
1059
+ const page = await this.resolvePage(options?.page);
1060
+ const handlerParams = {
1061
+ instruction,
1062
+ schema: effectiveSchema,
1063
+ model: options?.model,
1064
+ timeout: options?.timeout,
1065
+ selector: options?.selector,
1066
+ page,
1067
+ };
1068
+ let result;
1069
+ if (this.apiClient) {
1070
+ const frameId = page.mainFrameId();
1071
+ result = await this.apiClient.extract({
1072
+ instruction: handlerParams.instruction,
1073
+ schema: handlerParams.schema,
1074
+ options,
1075
+ frameId,
1076
+ });
1077
+ }
1078
+ else {
1079
+ result =
1080
+ await this.extractHandler.extract(handlerParams);
1081
+ }
1082
+ const historySchemaDescriptor = effectiveSchema
1083
+ ? (0, zodCompat_js_1.toJsonSchema)(effectiveSchema)
1084
+ : undefined;
1085
+ this.addToHistory("extract", {
1086
+ instruction,
1087
+ selector: options?.selector,
1088
+ timeout: options?.timeout,
1089
+ schema: historySchemaDescriptor,
1090
+ }, result);
1091
+ return result;
1092
+ });
1093
+ }
1094
+ async observe(a, b) {
1095
+ return await (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
1096
+ if (!this.observeHandler) {
1097
+ throw new index_js_1.StagehandNotInitializedError("observe()");
1098
+ }
1099
+ // Normalize args
1100
+ let instruction;
1101
+ let options;
1102
+ if (typeof a === "string") {
1103
+ instruction = a;
1104
+ options = b;
1105
+ }
1106
+ else {
1107
+ options = a;
1108
+ }
1109
+ // Resolve to our internal Page type
1110
+ const page = await this.resolvePage(options?.page);
1111
+ const handlerParams = {
1112
+ instruction,
1113
+ model: options?.model,
1114
+ timeout: options?.timeout,
1115
+ selector: options?.selector,
1116
+ page: page,
1117
+ };
1118
+ let results;
1119
+ if (this.apiClient) {
1120
+ const frameId = page.mainFrameId();
1121
+ results = await this.apiClient.observe({
1122
+ instruction,
1123
+ options,
1124
+ frameId,
1125
+ });
1126
+ }
1127
+ else {
1128
+ results = await this.observeHandler.observe(handlerParams);
1129
+ }
1130
+ // history: record observe call (omit page object)
1131
+ this.addToHistory("observe", {
1132
+ instruction,
1133
+ timeout: options?.timeout,
1134
+ }, results);
1135
+ return results;
1136
+ });
1137
+ }
1138
+ /** Return the browser-level CDP WebSocket endpoint. */
1139
+ connectURL() {
1140
+ if (this.state.kind === "UNINITIALIZED") {
1141
+ throw new index_js_1.StagehandNotInitializedError("connectURL()");
1142
+ }
1143
+ return this.state.ws;
1144
+ }
1145
+ /** Expose the current CDP-backed context. */
1146
+ get context() {
1147
+ return this.ctx;
1148
+ }
1149
+ /** Best-effort cleanup of context and launched resources. */
1150
+ async close(opts) {
1151
+ // If we're already closing and this isn't a forced close, no-op.
1152
+ if (this._isClosing && !opts?.force)
1153
+ return;
1154
+ this._isClosing = true;
1155
+ const keepAlive = this.keepAlive === true;
1156
+ // Unhook CDP transport close handler BEFORE ending the API session.
1157
+ // apiClient.end() can cause the hosted API to terminate the Browserbase
1158
+ // session, which closes the CDP WebSocket. If the handler is still
1159
+ // registered, _onCdpClosed fires and re-enters close() with force=true,
1160
+ // causing a double-close cascade.
1161
+ try {
1162
+ if (this.ctx?.conn && this._onCdpClosed) {
1163
+ this.ctx.conn.offTransportClosed?.(this._onCdpClosed);
1164
+ }
1165
+ }
1166
+ catch {
1167
+ // ignore
1168
+ }
1169
+ // End Browserbase session via API when keepAlive is not enabled
1170
+ if (!keepAlive && this.apiClient) {
1171
+ try {
1172
+ await this.apiClient.end();
1173
+ }
1174
+ catch {
1175
+ // best-effort cleanup
1176
+ }
1177
+ }
1178
+ try {
1179
+ // Close session file logger
1180
+ try {
1181
+ await FlowLogger_js_1.FlowLogger.close(this.flowLoggerContext);
1182
+ }
1183
+ catch {
1184
+ // ignore
1185
+ }
1186
+ // Close CDP context
1187
+ try {
1188
+ await this.ctx?.close();
1189
+ }
1190
+ catch {
1191
+ // ignore
1192
+ }
1193
+ // Kill local Chrome and clean up temp profile when keepAlive is not enabled
1194
+ if (!keepAlive && this.state.kind === "LOCAL") {
1195
+ const localState = this.state;
1196
+ await (0, cleanupLocal_js_1.cleanupLocalBrowser)({
1197
+ killChrome: () => localState.chrome.kill(),
1198
+ userDataDir: localState.userDataDir,
1199
+ createdTempProfile: localState.createdTempProfile,
1200
+ preserveUserDataDir: localState.preserveUserDataDir,
1201
+ });
1202
+ }
1203
+ }
1204
+ finally {
1205
+ this.stopShutdownSupervisor();
1206
+ // Reset internal state
1207
+ this.state = { kind: "UNINITIALIZED" };
1208
+ this.ctx = null;
1209
+ this._isClosing = false;
1210
+ this.resetBrowserbaseSessionMetadata();
1211
+ try {
1212
+ (0, logger_js_2.unbindInstanceLogger)(this.instanceId);
1213
+ }
1214
+ catch {
1215
+ // ignore
1216
+ }
1217
+ try {
1218
+ await this.eventStore.destroy();
1219
+ }
1220
+ catch {
1221
+ // ignore
1222
+ }
1223
+ try {
1224
+ this.bus.removeAllListeners();
1225
+ }
1226
+ catch {
1227
+ // ignore
1228
+ }
1229
+ this._history = [];
1230
+ this.actHandler = null;
1231
+ this.extractHandler = null;
1232
+ this.observeHandler = null;
1233
+ V3._instances.delete(this);
1234
+ }
1235
+ }
1236
+ /**
1237
+ * Resolves the Browserbase API key from options or environment variables.
1238
+ * Returns undefined if no key is found (does not throw).
1239
+ */
1240
+ get browserbaseApiKey() {
1241
+ return this.opts.apiKey || process_1.default.env.BROWSERBASE_API_KEY;
1242
+ }
1243
+ /** Guard: ensure Browserbase credentials exist in options. */
1244
+ requireBrowserbaseCreds() {
1245
+ let { apiKey, projectId } = this.opts;
1246
+ // Fall back to environment variables if not explicitly provided
1247
+ if (!apiKey)
1248
+ apiKey = process_1.default.env.BROWSERBASE_API_KEY ?? process_1.default.env.BB_API_KEY;
1249
+ if (!projectId)
1250
+ projectId =
1251
+ process_1.default.env.BROWSERBASE_PROJECT_ID ?? process_1.default.env.BB_PROJECT_ID;
1252
+ if (!apiKey) {
1253
+ throw new index_js_1.MissingEnvironmentVariableError("BROWSERBASE_API_KEY", "Browserbase");
1254
+ }
1255
+ // Cache resolved values back into opts for consistency
1256
+ this.opts.apiKey = apiKey;
1257
+ if (projectId)
1258
+ this.opts.projectId = projectId;
1259
+ // Informational log
1260
+ this.logger({
1261
+ category: "init",
1262
+ message: "Using Browserbase credentials",
1263
+ level: 1,
1264
+ });
1265
+ return { apiKey, projectId };
1266
+ }
1267
+ get logger() {
1268
+ // Delegate to per-instance StagehandLogger
1269
+ // StagehandLogger handles: verbosity filtering, usePino selection, external logger routing
1270
+ // This provides per-instance configuration while maintaining shared Pino optimization
1271
+ return (logLine) => {
1272
+ const line = { ...logLine, level: logLine.level ?? 1 };
1273
+ this.stagehandLogger.log(line);
1274
+ };
1275
+ }
1276
+ /**
1277
+ * Normalize a Playwright/Puppeteer page object into its top frame id,
1278
+ * so handlers can resolve it to a `Page` within our V3Context.
1279
+ */
1280
+ async resolveTopFrameId(page) {
1281
+ if (this.isPlaywrightPage(page)) {
1282
+ const cdp = await page.context().newCDPSession(page);
1283
+ const { frameTree } = await cdp.send("Page.getFrameTree");
1284
+ return frameTree.frame.id;
1285
+ }
1286
+ if (this.isPatchrightPage(page)) {
1287
+ const cdp = await page.context().newCDPSession(page);
1288
+ const { frameTree } = await cdp.send("Page.getFrameTree");
1289
+ return frameTree.frame.id;
1290
+ }
1291
+ if (this.isPuppeteerPage(page)) {
1292
+ const cdp = await page.createCDPSession();
1293
+ const { frameTree } = await cdp.send("Page.getFrameTree");
1294
+ this.logger({
1295
+ category: "v3",
1296
+ message: "Puppeteer frame id",
1297
+ level: 2,
1298
+ auxiliary: { frameId: { value: frameTree.frame.id, type: "string" } },
1299
+ });
1300
+ return frameTree.frame.id;
1301
+ }
1302
+ throw new index_js_1.StagehandInvalidArgumentError("Unsupported page object passed to V3.act()");
1303
+ }
1304
+ isPlaywrightPage(p) {
1305
+ return (typeof p === "object" &&
1306
+ p !== null &&
1307
+ typeof p.context === "function");
1308
+ }
1309
+ isPatchrightPage(p) {
1310
+ return (typeof p === "object" &&
1311
+ p !== null &&
1312
+ typeof p.context === "function");
1313
+ }
1314
+ isPuppeteerPage(p) {
1315
+ return (typeof p === "object" &&
1316
+ p !== null &&
1317
+ typeof p.target === "function");
1318
+ }
1319
+ /** Resolve an external page reference or fall back to the active V3 page. */
1320
+ async resolvePage(page) {
1321
+ if (page) {
1322
+ return await this.normalizeToV3Page(page);
1323
+ }
1324
+ const ctx = this.ctx;
1325
+ if (!ctx) {
1326
+ throw new index_js_1.StagehandNotInitializedError("resolvePage()");
1327
+ }
1328
+ return await ctx.awaitActivePage();
1329
+ }
1330
+ async normalizeToV3Page(input) {
1331
+ if (input instanceof (await Promise.resolve().then(() => __importStar(require("./understudy/page.js")))).Page) {
1332
+ return input;
1333
+ }
1334
+ if (this.isPlaywrightPage(input)) {
1335
+ const frameId = await this.resolveTopFrameId(input);
1336
+ const page = this.ctx.resolvePageByMainFrameId(frameId);
1337
+ if (!page)
1338
+ throw new index_js_1.StagehandInitError("Failed to resolve V3 Page from Playwright page.");
1339
+ return page;
1340
+ }
1341
+ if (this.isPatchrightPage(input)) {
1342
+ const frameId = await this.resolveTopFrameId(input);
1343
+ const page = this.ctx.resolvePageByMainFrameId(frameId);
1344
+ if (!page)
1345
+ throw new index_js_1.StagehandInitError("Failed to resolve V3 Page from Patchright page.");
1346
+ return page;
1347
+ }
1348
+ if (this.isPuppeteerPage(input)) {
1349
+ const frameId = await this.resolveTopFrameId(input);
1350
+ const page = this.ctx.resolvePageByMainFrameId(frameId);
1351
+ if (!page)
1352
+ throw new index_js_1.StagehandInitError("Failed to resolve V3 Page from Puppeteer page.");
1353
+ return page;
1354
+ }
1355
+ throw new index_js_1.StagehandInvalidArgumentError("Unsupported page object.");
1356
+ }
1357
+ async _logBrowserbaseSessionStatus() {
1358
+ if (this.state.kind !== "BROWSERBASE") {
1359
+ return;
1360
+ }
1361
+ try {
1362
+ const snapshot = (await this.state.bb.sessions.retrieve(this.state.sessionId));
1363
+ if (!snapshot?.status)
1364
+ return;
1365
+ const sessionId = snapshot.id ?? this.state.sessionId;
1366
+ const message = snapshot.status === "TIMED_OUT"
1367
+ ? `Browserbase session timed out (sessionId: ${sessionId})`
1368
+ : `Browserbase session status: ${snapshot.status}`;
1369
+ this.logger({
1370
+ category: "v3",
1371
+ message,
1372
+ level: 0,
1373
+ });
1374
+ }
1375
+ catch {
1376
+ // Ignore failures; nothing to log
1377
+ }
1378
+ }
1379
+ /**
1380
+ * Prepares shared context for agent execution (both execute and stream).
1381
+ * Extracts duplicated setup logic into a single helper.
1382
+ */
1383
+ async prepareAgentExecution(options, instructionOrOptions, agentConfigSignature) {
1384
+ // Note: experimental validation is done at the call site before this method
1385
+ // Warn if mode is not explicitly set (defaults to "dom")
1386
+ if (options?.mode === undefined) {
1387
+ this.logger({
1388
+ category: "agent",
1389
+ message: "Using agent in default DOM mode (legacy). Agent will default to 'hybrid' on an upcoming release for improved performance.\n → https://docs.stagehand.dev/v3/basics/agent\n",
1390
+ level: 0,
1391
+ });
1392
+ }
1393
+ const tools = options?.integrations
1394
+ ? await (0, utils_js_2.resolveTools)(options.integrations, options.tools)
1395
+ : (options?.tools ?? {});
1396
+ const agentLlmClient = options?.model
1397
+ ? this.resolveLlmClient(options.model)
1398
+ : this.llmClient;
1399
+ const resolvedExecutionModel = options?.executionModel ?? options?.model;
1400
+ const handler = new v3AgentHandler_js_1.V3AgentHandler(this, this.logger, agentLlmClient, resolvedExecutionModel, options?.systemPrompt, tools, options?.mode, this.isCaptchaAutoSolveEnabled);
1401
+ const resolvedOptions = typeof instructionOrOptions === "string"
1402
+ ? {
1403
+ instruction: instructionOrOptions,
1404
+ toolTimeout: DEFAULT_AGENT_TOOL_TIMEOUT_MS,
1405
+ }
1406
+ : {
1407
+ ...instructionOrOptions,
1408
+ toolTimeout: instructionOrOptions.toolTimeout ?? DEFAULT_AGENT_TOOL_TIMEOUT_MS,
1409
+ };
1410
+ const callbacksWithSafety = resolvedOptions.callbacks;
1411
+ if (callbacksWithSafety?.onSafetyConfirmation) {
1412
+ throw new index_js_1.StagehandInvalidArgumentError('onSafetyConfirmation callback is only supported when using mode: "cua" agents.');
1413
+ }
1414
+ if (resolvedOptions.page) {
1415
+ const normalizedPage = await this.normalizeToV3Page(resolvedOptions.page);
1416
+ this.ctx.setActivePage(normalizedPage);
1417
+ }
1418
+ const instruction = resolvedOptions.instruction.trim();
1419
+ const sanitizedOptions = this.agentCache.sanitizeExecuteOptions(resolvedOptions);
1420
+ const cacheVariables = (0, variables_js_1.flattenVariables)(resolvedOptions.variables);
1421
+ const cacheContext = this.agentCache.shouldAttemptCache(instruction)
1422
+ ? await this.agentCache.prepareContext({
1423
+ instruction,
1424
+ options: sanitizedOptions,
1425
+ configSignature: agentConfigSignature,
1426
+ page: await this.ctx.awaitActivePage(),
1427
+ variables: cacheVariables,
1428
+ })
1429
+ : null;
1430
+ return {
1431
+ handler,
1432
+ resolvedOptions,
1433
+ instruction,
1434
+ cacheContext,
1435
+ llmClient: agentLlmClient,
1436
+ };
1437
+ }
1438
+ agent(options) {
1439
+ // Determine if CUA mode is enabled (via mode: "cua" or deprecated cua: true)
1440
+ const isCuaMode = options?.mode !== undefined
1441
+ ? options.mode === "cua"
1442
+ : options?.cua === true;
1443
+ // Emit deprecation warning for cua: true
1444
+ if (options?.cua === true) {
1445
+ this.logger({
1446
+ category: "agent",
1447
+ message: '[DEPRECATED] The "cua: true" option is deprecated. Use "mode: \'cua\'" instead. This option will be removed in a future version.',
1448
+ level: 0,
1449
+ });
1450
+ console.warn('[Stagehand] DEPRECATED: The "cua: true" option is deprecated. Use "mode: \'cua\'" instead.');
1451
+ }
1452
+ this.logger({
1453
+ category: "agent",
1454
+ message: "Creating v3 agent instance",
1455
+ level: 1,
1456
+ auxiliary: {
1457
+ cua: { value: isCuaMode ? "true" : "false", type: "boolean" },
1458
+ mode: { value: options?.mode ?? "dom", type: "string" },
1459
+ model: {
1460
+ value: (0, modelUtils_js_1.extractModelName)(options?.model) ?? this.llmClient.modelName,
1461
+ type: "string",
1462
+ },
1463
+ systemPrompt: { value: options?.systemPrompt ?? "", type: "string" },
1464
+ tools: { value: JSON.stringify(options?.tools ?? {}), type: "object" },
1465
+ ...(options?.integrations && {
1466
+ integrations: {
1467
+ value: JSON.stringify(options.integrations),
1468
+ type: "object",
1469
+ },
1470
+ }),
1471
+ },
1472
+ });
1473
+ // If CUA mode is enabled (via mode: "cua" or deprecated cua: true), use the computer-use agent path
1474
+ if (isCuaMode) {
1475
+ // Validate agent config at creation time (includes CUA+streaming conflict check)
1476
+ (0, validateExperimentalFeatures_js_1.validateExperimentalFeatures)({
1477
+ isExperimental: this.experimental,
1478
+ agentConfig: options,
1479
+ });
1480
+ const modelToUse = options?.model || {
1481
+ modelName: this.modelName,
1482
+ ...this.modelClientOptions,
1483
+ };
1484
+ const { modelName, isCua, clientOptions } = (0, modelUtils_js_2.resolveModel)(modelToUse);
1485
+ if (!isCua) {
1486
+ throw new index_js_1.CuaModelRequiredError(index_js_1.AVAILABLE_CUA_MODELS);
1487
+ }
1488
+ const agentConfigSignature = this.agentCache.buildConfigSignature(options);
1489
+ const execute = async (instructionOrOptions) => (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
1490
+ (0, validateExperimentalFeatures_js_1.validateExperimentalFeatures)({
1491
+ isExperimental: this.experimental,
1492
+ agentConfig: options,
1493
+ executeOptions: typeof instructionOrOptions === "object"
1494
+ ? instructionOrOptions
1495
+ : null,
1496
+ });
1497
+ const tools = options?.integrations
1498
+ ? await (0, utils_js_2.resolveTools)(options.integrations, options.tools)
1499
+ : (options?.tools ?? {});
1500
+ const handler = new v3CuaAgentHandler_js_1.V3CuaAgentHandler(this, this.logger, {
1501
+ modelName,
1502
+ clientOptions,
1503
+ userProvidedInstructions: (options.systemPrompt ??
1504
+ `You are a helpful assistant that can use a web browser.\nDo not ask follow up questions, the user will trust your judgement.`) +
1505
+ (this.isCaptchaAutoSolveEnabled
1506
+ ? captchaSolver_js_1.CAPTCHA_CUA_SYSTEM_PROMPT_NOTE
1507
+ : ""),
1508
+ }, tools);
1509
+ const resolvedOptions = typeof instructionOrOptions === "string"
1510
+ ? {
1511
+ instruction: instructionOrOptions,
1512
+ toolTimeout: DEFAULT_AGENT_TOOL_TIMEOUT_MS,
1513
+ }
1514
+ : {
1515
+ ...instructionOrOptions,
1516
+ toolTimeout: instructionOrOptions.toolTimeout ??
1517
+ DEFAULT_AGENT_TOOL_TIMEOUT_MS,
1518
+ };
1519
+ if (resolvedOptions.page) {
1520
+ const normalizedPage = await this.normalizeToV3Page(resolvedOptions.page);
1521
+ this.ctx.setActivePage(normalizedPage);
1522
+ }
1523
+ const instruction = resolvedOptions.instruction.trim();
1524
+ const sanitizedOptions = this.agentCache.sanitizeExecuteOptions(resolvedOptions);
1525
+ const cacheVariables = (0, variables_js_1.flattenVariables)(resolvedOptions.variables);
1526
+ let cacheContext = null;
1527
+ if (this.agentCache.shouldAttemptCache(instruction)) {
1528
+ const startPage = await this.ctx.awaitActivePage();
1529
+ cacheContext = await this.agentCache.prepareContext({
1530
+ instruction,
1531
+ options: sanitizedOptions,
1532
+ configSignature: agentConfigSignature,
1533
+ page: startPage,
1534
+ variables: cacheVariables,
1535
+ });
1536
+ if (cacheContext) {
1537
+ const replayed = await this.agentCache.tryReplay(cacheContext);
1538
+ if (replayed) {
1539
+ return replayed;
1540
+ }
1541
+ }
1542
+ }
1543
+ let agentSteps = [];
1544
+ const shouldRecordLocally = !!cacheContext && (!this.apiClient || this.experimental);
1545
+ if (shouldRecordLocally) {
1546
+ this.beginAgentReplayRecording();
1547
+ }
1548
+ let result;
1549
+ try {
1550
+ if (this.apiClient && !this.experimental) {
1551
+ const page = await this.ctx.awaitActivePage();
1552
+ result = await this.apiClient.agentExecute(options, resolvedOptions, page.mainFrameId(), !!cacheContext);
1553
+ if (cacheContext) {
1554
+ const transferredEntry = this.apiClient.consumeLatestAgentCacheEntry();
1555
+ await this.agentCache.storeTransferredEntry(transferredEntry);
1556
+ }
1557
+ }
1558
+ else {
1559
+ result = await handler.execute(instructionOrOptions);
1560
+ }
1561
+ if (shouldRecordLocally) {
1562
+ agentSteps = this.endAgentReplayRecording();
1563
+ }
1564
+ if (shouldRecordLocally &&
1565
+ cacheContext &&
1566
+ result.success &&
1567
+ agentSteps.length > 0) {
1568
+ await this.agentCache.store(cacheContext, agentSteps, result);
1569
+ }
1570
+ return result;
1571
+ }
1572
+ catch (err) {
1573
+ if (shouldRecordLocally)
1574
+ this.discardAgentReplayRecording();
1575
+ throw err;
1576
+ }
1577
+ finally {
1578
+ if (shouldRecordLocally) {
1579
+ this.discardAgentReplayRecording();
1580
+ }
1581
+ }
1582
+ });
1583
+ return {
1584
+ execute: FlowLogger_js_1.FlowLogger.wrapWithLogging({
1585
+ eventType: "AgentExecute",
1586
+ context: this.flowLoggerContext,
1587
+ })(execute),
1588
+ };
1589
+ }
1590
+ // Default: AISDK tools-based agent
1591
+ const agentConfigSignature = this.agentCache.buildConfigSignature(options);
1592
+ const isStreaming = options?.stream ?? false;
1593
+ const execute = async (instructionOrOptions) => (0, logger_js_2.withInstanceLogContext)(this.instanceId, async () => {
1594
+ (0, validateExperimentalFeatures_js_1.validateExperimentalFeatures)({
1595
+ isExperimental: this.experimental,
1596
+ agentConfig: options,
1597
+ executeOptions: typeof instructionOrOptions === "object"
1598
+ ? instructionOrOptions
1599
+ : null,
1600
+ isStreaming,
1601
+ });
1602
+ // Streaming mode
1603
+ if (isStreaming) {
1604
+ const { handler, resolvedOptions, cacheContext, llmClient } = await this.prepareAgentExecution(options, instructionOrOptions, agentConfigSignature);
1605
+ if (cacheContext) {
1606
+ const replayed = await this.agentCache.tryReplayAsStream(cacheContext, llmClient);
1607
+ if (replayed) {
1608
+ return replayed;
1609
+ }
1610
+ }
1611
+ const streamResult = await handler.stream(resolvedOptions);
1612
+ if (cacheContext) {
1613
+ const wrappedStream = this.agentCache.wrapStreamForCaching(cacheContext, streamResult, () => this.beginAgentReplayRecording(), () => this.endAgentReplayRecording(), () => this.discardAgentReplayRecording());
1614
+ return wrappedStream;
1615
+ }
1616
+ return streamResult;
1617
+ }
1618
+ // Non-streaming mode (default)
1619
+ const { handler, resolvedOptions, cacheContext, llmClient } = await this.prepareAgentExecution(options, instructionOrOptions, agentConfigSignature);
1620
+ if (cacheContext) {
1621
+ const replayed = await this.agentCache.tryReplay(cacheContext, llmClient);
1622
+ if (replayed) {
1623
+ return replayed;
1624
+ }
1625
+ }
1626
+ let agentSteps = [];
1627
+ const shouldRecordLocally = !!cacheContext && (!this.apiClient || this.experimental);
1628
+ if (shouldRecordLocally) {
1629
+ this.beginAgentReplayRecording();
1630
+ }
1631
+ let result;
1632
+ try {
1633
+ if (this.apiClient && !this.experimental) {
1634
+ const page = await this.ctx.awaitActivePage();
1635
+ result = await this.apiClient.agentExecute(options ?? {}, resolvedOptions, page.mainFrameId(), !!cacheContext);
1636
+ if (cacheContext) {
1637
+ const transferredEntry = this.apiClient.consumeLatestAgentCacheEntry();
1638
+ await this.agentCache.storeTransferredEntry(transferredEntry);
1639
+ }
1640
+ }
1641
+ else {
1642
+ result = await handler.execute(resolvedOptions);
1643
+ }
1644
+ if (shouldRecordLocally) {
1645
+ agentSteps = this.endAgentReplayRecording();
1646
+ }
1647
+ if (shouldRecordLocally &&
1648
+ cacheContext &&
1649
+ result.success &&
1650
+ agentSteps.length > 0) {
1651
+ await this.agentCache.store(cacheContext, agentSteps, result);
1652
+ }
1653
+ return result;
1654
+ }
1655
+ catch (err) {
1656
+ if (shouldRecordLocally)
1657
+ this.discardAgentReplayRecording();
1658
+ throw err;
1659
+ }
1660
+ finally {
1661
+ if (shouldRecordLocally) {
1662
+ this.discardAgentReplayRecording();
1663
+ }
1664
+ }
1665
+ });
1666
+ return {
1667
+ execute: FlowLogger_js_1.FlowLogger.wrapWithLogging({
1668
+ eventType: "AgentExecute",
1669
+ context: this.flowLoggerContext,
1670
+ })(execute),
1671
+ };
1672
+ }
1673
+ };
1674
+ })();
1675
+ exports.V3 = V3;
1676
+ function isObserveResult(v) {
1677
+ return (!!v && typeof v === "object" && "selector" in v);
1678
+ }
1679
+ //# sourceMappingURL=v3.js.map