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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1460) hide show
  1. package/dist/cjs/cli.js +2 -210
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.js +2 -25025
  4. package/dist/cjs/lib/inference.js +335 -0
  5. package/dist/cjs/lib/inference.js.map +1 -0
  6. package/dist/cjs/lib/inferenceLogUtils.js +99 -0
  7. package/dist/cjs/lib/inferenceLogUtils.js.map +1 -0
  8. package/dist/cjs/lib/logger.js +331 -0
  9. package/dist/cjs/lib/logger.js.map +1 -0
  10. package/dist/cjs/lib/modelUtils.d.ts +1 -0
  11. package/dist/cjs/lib/modelUtils.js +53 -0
  12. package/dist/cjs/lib/modelUtils.js.map +1 -0
  13. package/dist/cjs/lib/prompt.d.ts +3 -2
  14. package/dist/cjs/lib/prompt.js +245 -0
  15. package/dist/cjs/lib/prompt.js.map +1 -0
  16. package/dist/cjs/lib/utils.js +670 -0
  17. package/dist/cjs/lib/utils.js.map +1 -0
  18. package/dist/cjs/lib/v3/agent/AgentClient.js +21 -0
  19. package/dist/cjs/lib/v3/agent/AgentClient.js.map +1 -0
  20. package/dist/cjs/lib/v3/agent/AgentProvider.js +81 -0
  21. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -0
  22. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +844 -0
  23. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
  24. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +803 -0
  25. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -0
  26. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +777 -0
  27. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
  28. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +622 -0
  29. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -0
  30. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
  31. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js +212 -0
  32. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
  33. package/dist/cjs/lib/v3/agent/tools/act.d.ts +2 -2
  34. package/dist/cjs/lib/v3/agent/tools/act.js +75 -0
  35. package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -0
  36. package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  37. package/dist/cjs/lib/v3/agent/tools/ariaTree.js +73 -0
  38. package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -0
  39. package/dist/cjs/lib/v3/agent/tools/click.js +100 -0
  40. package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -0
  41. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js +72 -0
  42. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -0
  43. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +101 -0
  44. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
  45. package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
  46. package/dist/cjs/lib/v3/agent/tools/extract.js +110 -0
  47. package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -0
  48. package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  49. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +158 -0
  50. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -0
  51. package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +8 -2
  52. package/dist/cjs/lib/v3/agent/tools/fillform.js +90 -0
  53. package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -0
  54. package/dist/cjs/lib/v3/agent/tools/goto.js +35 -0
  55. package/dist/cjs/lib/v3/agent/tools/goto.js.map +1 -0
  56. package/dist/cjs/lib/v3/agent/tools/index.d.ts +11 -1
  57. package/dist/cjs/lib/v3/agent/tools/index.js +78 -0
  58. package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -0
  59. package/dist/cjs/lib/v3/agent/tools/keys.js +64 -0
  60. package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -0
  61. package/dist/cjs/lib/v3/agent/tools/navback.js +27 -0
  62. package/dist/cjs/lib/v3/agent/tools/navback.js.map +1 -0
  63. package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
  64. package/dist/cjs/lib/v3/agent/tools/screenshot.js +47 -0
  65. package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -0
  66. package/dist/cjs/lib/v3/agent/tools/scroll.js +159 -0
  67. package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -0
  68. package/dist/cjs/lib/v3/agent/tools/search.js +77 -0
  69. package/dist/cjs/lib/v3/agent/tools/search.js.map +1 -0
  70. package/dist/cjs/lib/v3/agent/tools/think.js +28 -0
  71. package/dist/cjs/lib/v3/agent/tools/think.js.map +1 -0
  72. package/dist/cjs/lib/v3/agent/tools/type.d.ts +2 -2
  73. package/dist/cjs/lib/v3/agent/tools/type.js +111 -0
  74. package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -0
  75. package/dist/cjs/lib/v3/agent/tools/wait.js +63 -0
  76. package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -0
  77. package/dist/cjs/lib/v3/agent/utils/actionMapping.js +103 -0
  78. package/dist/cjs/lib/v3/agent/utils/actionMapping.js.map +1 -0
  79. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js +33 -0
  80. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
  81. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js +65 -0
  82. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
  83. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js +150 -0
  84. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
  85. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +108 -0
  86. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
  87. package/dist/cjs/lib/v3/agent/utils/imageCompression.js +212 -0
  88. package/dist/cjs/lib/v3/agent/utils/imageCompression.js.map +1 -0
  89. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js +167 -0
  90. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js.map +1 -0
  91. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js +29 -0
  92. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
  93. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js +90 -0
  94. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
  95. package/dist/cjs/lib/v3/agent/utils/variables.d.ts +21 -0
  96. package/dist/cjs/lib/v3/agent/utils/variables.js +54 -0
  97. package/dist/cjs/lib/v3/agent/utils/variables.js.map +1 -0
  98. package/dist/cjs/lib/v3/agent/utils/xpath.js +22 -0
  99. package/dist/cjs/lib/v3/agent/utils/xpath.js.map +1 -0
  100. package/dist/cjs/lib/v3/api.d.ts +23 -5
  101. package/dist/cjs/lib/v3/api.js +589 -0
  102. package/dist/cjs/lib/v3/api.js.map +1 -0
  103. package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
  104. package/dist/cjs/lib/v3/cache/ActCache.js +280 -0
  105. package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -0
  106. package/dist/cjs/lib/v3/cache/AgentCache.d.ts +1 -0
  107. package/dist/cjs/lib/v3/cache/AgentCache.js +651 -0
  108. package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -0
  109. package/dist/cjs/lib/v3/cache/CacheStorage.js +105 -0
  110. package/dist/cjs/lib/v3/cache/CacheStorage.js.map +1 -0
  111. package/dist/cjs/lib/v3/cache/serverAgentCache.js +52 -0
  112. package/dist/cjs/lib/v3/cache/serverAgentCache.js.map +1 -0
  113. package/dist/cjs/lib/v3/cache/utils.js +44 -0
  114. package/dist/cjs/lib/v3/cache/utils.js.map +1 -0
  115. package/dist/cjs/lib/v3/cli.js +15 -0
  116. package/dist/cjs/lib/v3/cli.js.map +1 -0
  117. package/dist/cjs/lib/v3/dom/a11yScripts/index.js +124 -0
  118. package/dist/cjs/lib/v3/dom/a11yScripts/index.js.map +1 -0
  119. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js +23 -0
  120. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
  121. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js +59 -0
  122. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
  123. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js +5 -0
  124. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
  125. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js +11 -0
  126. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
  127. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js +5 -0
  128. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js.map +1 -0
  129. package/dist/cjs/lib/v3/dom/index.js +18 -0
  130. package/dist/cjs/lib/v3/dom/index.js.map +1 -0
  131. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js +278 -0
  132. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js.map +1 -0
  133. package/dist/cjs/lib/v3/dom/locatorScripts/index.js +21 -0
  134. package/dist/cjs/lib/v3/dom/locatorScripts/index.js.map +1 -0
  135. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js +474 -0
  136. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
  137. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js +289 -0
  138. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
  139. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js +286 -0
  140. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
  141. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js +381 -0
  142. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
  143. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js +202 -0
  144. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
  145. package/dist/cjs/lib/v3/dom/piercer.entry.js +5 -0
  146. package/dist/cjs/lib/v3/dom/piercer.entry.js.map +1 -0
  147. package/dist/cjs/lib/v3/dom/piercer.runtime.js +93 -0
  148. package/dist/cjs/lib/v3/dom/piercer.runtime.js.map +1 -0
  149. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js +5 -0
  150. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
  151. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js +43 -0
  152. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
  153. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js +6 -0
  154. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js.map +1 -0
  155. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js +85 -0
  156. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
  157. package/dist/cjs/lib/v3/external_clients/aisdk.js +107 -0
  158. package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -0
  159. package/dist/cjs/lib/v3/external_clients/customOpenAI.js +224 -0
  160. package/dist/cjs/lib/v3/external_clients/customOpenAI.js.map +1 -0
  161. package/dist/cjs/lib/v3/flowLogger.js +881 -0
  162. package/dist/cjs/lib/v3/flowLogger.js.map +1 -0
  163. package/dist/cjs/lib/v3/handlers/actHandler.d.ts +2 -1
  164. package/dist/cjs/lib/v3/handlers/actHandler.js +344 -0
  165. package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -0
  166. package/dist/cjs/lib/v3/handlers/extractHandler.js +144 -0
  167. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -0
  168. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +604 -0
  169. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
  170. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js +17 -0
  171. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
  172. package/dist/cjs/lib/v3/handlers/observeHandler.js +159 -0
  173. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -0
  174. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +462 -0
  175. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -0
  176. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +532 -0
  177. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
  178. package/dist/cjs/lib/v3/index.d.ts +143 -0
  179. package/dist/cjs/lib/v3/index.js +119 -0
  180. package/dist/cjs/lib/v3/index.js.map +1 -0
  181. package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
  182. package/dist/cjs/lib/v3/launch/browserbase.js +47 -0
  183. package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -0
  184. package/dist/cjs/lib/v3/launch/local.js +104 -0
  185. package/dist/cjs/lib/v3/launch/local.js.map +1 -0
  186. package/dist/cjs/lib/v3/llm/AnthropicClient.js +246 -0
  187. package/dist/cjs/lib/v3/llm/AnthropicClient.js.map +1 -0
  188. package/dist/cjs/lib/v3/llm/CerebrasClient.js +242 -0
  189. package/dist/cjs/lib/v3/llm/CerebrasClient.js.map +1 -0
  190. package/dist/cjs/lib/v3/llm/GoogleClient.js +373 -0
  191. package/dist/cjs/lib/v3/llm/GoogleClient.js.map +1 -0
  192. package/dist/cjs/lib/v3/llm/GroqClient.js +243 -0
  193. package/dist/cjs/lib/v3/llm/GroqClient.js.map +1 -0
  194. package/dist/cjs/lib/v3/llm/LLMClient.js +27 -0
  195. package/dist/cjs/lib/v3/llm/LLMClient.js.map +1 -0
  196. package/dist/cjs/lib/v3/llm/LLMProvider.js +194 -0
  197. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -0
  198. package/dist/cjs/lib/v3/llm/OpenAIClient.js +336 -0
  199. package/dist/cjs/lib/v3/llm/OpenAIClient.js.map +1 -0
  200. package/dist/cjs/lib/v3/llm/aisdk.js +355 -0
  201. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -0
  202. package/dist/cjs/lib/v3/logger.js +102 -0
  203. package/dist/cjs/lib/v3/logger.js.map +1 -0
  204. package/dist/cjs/lib/v3/mcp/connection.d.ts +2 -0
  205. package/dist/cjs/lib/v3/mcp/connection.js +56 -0
  206. package/dist/cjs/lib/v3/mcp/connection.js.map +1 -0
  207. package/dist/cjs/lib/v3/mcp/utils.js +40 -0
  208. package/dist/cjs/lib/v3/mcp/utils.js.map +1 -0
  209. package/dist/cjs/lib/v3/runtimePaths.d.ts +6 -0
  210. package/dist/cjs/lib/v3/runtimePaths.js +119 -0
  211. package/dist/cjs/lib/v3/runtimePaths.js.map +1 -0
  212. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js +36 -0
  213. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js.map +1 -0
  214. package/dist/cjs/lib/v3/shutdown/supervisor.js +193 -0
  215. package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -0
  216. package/dist/cjs/lib/v3/shutdown/supervisorClient.js +95 -0
  217. package/dist/cjs/lib/v3/shutdown/supervisorClient.js.map +1 -0
  218. package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
  219. package/dist/cjs/lib/v3/timeoutConfig.js +36 -0
  220. package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -0
  221. package/dist/cjs/lib/v3/types/private/agent.js +3 -0
  222. package/dist/cjs/lib/v3/types/private/agent.js.map +1 -0
  223. package/dist/cjs/lib/v3/types/private/api.js +3 -0
  224. package/dist/cjs/lib/v3/types/private/api.js.map +1 -0
  225. package/dist/cjs/lib/v3/types/private/cache.d.ts +3 -0
  226. package/dist/cjs/lib/v3/types/private/cache.js +3 -0
  227. package/dist/cjs/lib/v3/types/private/cache.js.map +1 -0
  228. package/dist/cjs/lib/v3/types/private/evaluator.js +3 -0
  229. package/dist/cjs/lib/v3/types/private/evaluator.js.map +1 -0
  230. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -1
  231. package/dist/cjs/lib/v3/types/private/handlers.js +19 -0
  232. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -0
  233. package/dist/cjs/lib/v3/types/private/index.js +24 -0
  234. package/dist/cjs/lib/v3/types/private/index.js.map +1 -0
  235. package/dist/cjs/lib/v3/types/private/internal.js +3 -0
  236. package/dist/cjs/lib/v3/types/private/internal.js.map +1 -0
  237. package/dist/cjs/lib/v3/types/private/locator.js +3 -0
  238. package/dist/cjs/lib/v3/types/private/locator.js.map +1 -0
  239. package/dist/cjs/lib/v3/types/private/network.js +6 -0
  240. package/dist/cjs/lib/v3/types/private/network.js.map +1 -0
  241. package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
  242. package/dist/cjs/lib/v3/types/private/shutdown.js +6 -0
  243. package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -0
  244. package/dist/cjs/lib/v3/types/private/shutdownErrors.js +28 -0
  245. package/dist/cjs/lib/v3/types/private/shutdownErrors.js.map +1 -0
  246. package/dist/cjs/lib/v3/types/private/snapshot.js +3 -0
  247. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -0
  248. package/dist/cjs/lib/v3/types/public/agent.d.ts +60 -2
  249. package/dist/cjs/lib/v3/types/public/agent.js +18 -0
  250. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -0
  251. package/dist/cjs/lib/v3/types/public/api.d.ts +17 -0
  252. package/dist/cjs/lib/v3/types/public/api.js +922 -0
  253. package/dist/cjs/lib/v3/types/public/api.js.map +1 -0
  254. package/dist/cjs/lib/v3/types/public/apiErrors.js +41 -0
  255. package/dist/cjs/lib/v3/types/public/apiErrors.js.map +1 -0
  256. package/dist/cjs/lib/v3/types/public/context.d.ts +32 -0
  257. package/dist/cjs/lib/v3/types/public/context.js +3 -0
  258. package/dist/cjs/lib/v3/types/public/context.js.map +1 -0
  259. package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
  260. package/dist/cjs/lib/v3/types/public/index.js +56 -0
  261. package/dist/cjs/lib/v3/types/public/index.js.map +1 -0
  262. package/dist/cjs/lib/v3/types/public/locator.js +3 -0
  263. package/dist/cjs/lib/v3/types/public/locator.js.map +1 -0
  264. package/dist/cjs/lib/v3/types/public/logs.js +16 -0
  265. package/dist/cjs/lib/v3/types/public/logs.js.map +1 -0
  266. package/dist/cjs/lib/v3/types/public/methods.d.ts +33 -2
  267. package/dist/cjs/lib/v3/types/public/methods.js +18 -0
  268. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -0
  269. package/dist/cjs/lib/v3/types/public/metrics.js +3 -0
  270. package/dist/cjs/lib/v3/types/public/metrics.js.map +1 -0
  271. package/dist/cjs/lib/v3/types/public/model.d.ts +4 -2
  272. package/dist/cjs/lib/v3/types/public/model.js +3 -0
  273. package/dist/cjs/lib/v3/types/public/model.js.map +1 -0
  274. package/dist/cjs/lib/v3/types/public/options.d.ts +8 -0
  275. package/dist/cjs/lib/v3/types/public/options.js +7 -0
  276. package/dist/cjs/lib/v3/types/public/options.js.map +1 -0
  277. package/dist/cjs/lib/v3/types/public/page.js +8 -0
  278. package/dist/cjs/lib/v3/types/public/page.js.map +1 -0
  279. package/dist/cjs/lib/v3/types/public/screenshotTypes.js +3 -0
  280. package/dist/cjs/lib/v3/types/public/screenshotTypes.js.map +1 -0
  281. package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +13 -0
  282. package/dist/cjs/lib/v3/types/public/sdkErrors.js +390 -0
  283. package/dist/cjs/lib/v3/types/public/sdkErrors.js.map +1 -0
  284. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +204 -0
  285. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
  286. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js +124 -0
  287. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
  288. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +345 -0
  289. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
  290. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +132 -0
  291. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
  292. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js +285 -0
  293. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
  294. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  295. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js +226 -0
  296. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
  297. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js +12 -0
  298. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
  299. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js +26 -0
  300. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
  301. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +143 -0
  302. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
  303. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js +110 -0
  304. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
  305. package/dist/cjs/lib/v3/understudy/a11yInvocation.js +15 -0
  306. package/dist/cjs/lib/v3/understudy/a11yInvocation.js.map +1 -0
  307. package/dist/cjs/lib/v3/understudy/cdp.d.ts +6 -1
  308. package/dist/cjs/lib/v3/understudy/cdp.js +317 -0
  309. package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -0
  310. package/dist/cjs/lib/v3/understudy/consoleMessage.js +70 -0
  311. package/dist/cjs/lib/v3/understudy/consoleMessage.js.map +1 -0
  312. package/dist/cjs/lib/v3/understudy/context.d.ts +34 -0
  313. package/dist/cjs/lib/v3/understudy/context.js +960 -0
  314. package/dist/cjs/lib/v3/understudy/context.js.map +1 -0
  315. package/dist/cjs/lib/v3/understudy/cookies.d.ts +32 -0
  316. package/dist/cjs/lib/v3/understudy/cookies.js +142 -0
  317. package/dist/cjs/lib/v3/understudy/cookies.js.map +1 -0
  318. package/dist/cjs/lib/v3/understudy/deepLocator.js +204 -0
  319. package/dist/cjs/lib/v3/understudy/deepLocator.js.map +1 -0
  320. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js +87 -0
  321. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js.map +1 -0
  322. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js +88 -0
  323. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js.map +1 -0
  324. package/dist/cjs/lib/v3/understudy/frame.js +232 -0
  325. package/dist/cjs/lib/v3/understudy/frame.js.map +1 -0
  326. package/dist/cjs/lib/v3/understudy/frameLocator.js +260 -0
  327. package/dist/cjs/lib/v3/understudy/frameLocator.js.map +1 -0
  328. package/dist/cjs/lib/v3/understudy/frameRegistry.js +302 -0
  329. package/dist/cjs/lib/v3/understudy/frameRegistry.js.map +1 -0
  330. package/dist/cjs/lib/v3/understudy/initScripts.js +36 -0
  331. package/dist/cjs/lib/v3/understudy/initScripts.js.map +1 -0
  332. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js +249 -0
  333. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
  334. package/dist/cjs/lib/v3/understudy/locator.js +790 -0
  335. package/dist/cjs/lib/v3/understudy/locator.js.map +1 -0
  336. package/dist/cjs/lib/v3/understudy/locatorInvocation.js +15 -0
  337. package/dist/cjs/lib/v3/understudy/locatorInvocation.js.map +1 -0
  338. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js +228 -0
  339. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
  340. package/dist/cjs/lib/v3/understudy/networkManager.js +310 -0
  341. package/dist/cjs/lib/v3/understudy/networkManager.js.map +1 -0
  342. package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
  343. package/dist/cjs/lib/v3/understudy/page.js +1998 -0
  344. package/dist/cjs/lib/v3/understudy/page.js.map +1 -0
  345. package/dist/cjs/lib/v3/understudy/piercer.js +65 -0
  346. package/dist/cjs/lib/v3/understudy/piercer.js.map +1 -0
  347. package/dist/cjs/lib/v3/understudy/response.js +335 -0
  348. package/dist/cjs/lib/v3/understudy/response.js.map +1 -0
  349. package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  350. package/dist/cjs/lib/v3/understudy/screenshotUtils.js +345 -0
  351. package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -0
  352. package/dist/cjs/lib/v3/understudy/selectorResolver.js +300 -0
  353. package/dist/cjs/lib/v3/understudy/selectorResolver.js.map +1 -0
  354. package/dist/cjs/lib/v3/v3.js +1631 -0
  355. package/dist/cjs/lib/v3/v3.js.map +1 -0
  356. package/dist/cjs/lib/v3/zodCompat.js +26 -0
  357. package/dist/cjs/lib/v3/zodCompat.js.map +1 -0
  358. package/dist/cjs/lib/v3Evaluator.js +214 -0
  359. package/dist/cjs/lib/v3Evaluator.js.map +1 -0
  360. package/dist/cjs/lib/version.d.ts +1 -1
  361. package/dist/cjs/lib/version.js +9 -0
  362. package/dist/cjs/lib/version.js.map +1 -0
  363. package/dist/cjs/tests/cache-variables.test.js +221 -0
  364. package/dist/cjs/tests/cache-variables.test.js.map +1 -0
  365. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +123 -0
  366. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +1 -0
  367. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +83 -0
  368. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  369. package/dist/cjs/tests/integration/agent-callbacks.spec.js +385 -0
  370. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +1 -0
  371. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +362 -0
  372. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  373. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +262 -0
  374. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  375. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +112 -0
  376. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +1 -0
  377. package/dist/cjs/tests/integration/agent-streaming.spec.js +140 -0
  378. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +1 -0
  379. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  380. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +41 -0
  381. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  382. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  383. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +76 -0
  384. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +1 -0
  385. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  386. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +45 -0
  387. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -0
  388. package/dist/cjs/tests/integration/click-count.spec.d.ts +1 -0
  389. package/dist/cjs/tests/integration/click-count.spec.js +163 -0
  390. package/dist/cjs/tests/integration/click-count.spec.js.map +1 -0
  391. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  392. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +99 -0
  393. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  394. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +1 -0
  395. package/dist/cjs/tests/integration/context-addInitScript.spec.js +285 -0
  396. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -0
  397. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  398. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +49 -0
  399. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  400. package/dist/cjs/tests/integration/cookies.spec.d.ts +1 -0
  401. package/dist/cjs/tests/integration/cookies.spec.js +187 -0
  402. package/dist/cjs/tests/integration/cookies.spec.js.map +1 -0
  403. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +1 -0
  404. package/dist/cjs/tests/integration/default-page-tracking.spec.js +52 -0
  405. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +1 -0
  406. package/dist/cjs/tests/integration/downloads.spec.d.ts +1 -0
  407. package/dist/cjs/tests/integration/downloads.spec.js +52 -0
  408. package/dist/cjs/tests/integration/downloads.spec.js.map +1 -0
  409. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  410. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +57 -0
  411. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  412. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  413. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
  414. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  415. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  416. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +474 -0
  417. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  418. package/dist/cjs/tests/integration/keep-alive.child.d.ts +1 -0
  419. package/dist/cjs/tests/integration/keep-alive.child.js +85 -0
  420. package/dist/cjs/tests/integration/keep-alive.child.js.map +1 -0
  421. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +22 -0
  422. package/dist/cjs/tests/integration/keep-alive.spec.js +490 -0
  423. package/dist/cjs/tests/integration/keep-alive.spec.js.map +1 -0
  424. package/dist/cjs/tests/integration/keyboard.spec.d.ts +1 -0
  425. package/dist/cjs/tests/integration/keyboard.spec.js +259 -0
  426. package/dist/cjs/tests/integration/keyboard.spec.js.map +1 -0
  427. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  428. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +150 -0
  429. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  430. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +1 -0
  431. package/dist/cjs/tests/integration/locator-content-methods.spec.js +180 -0
  432. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +1 -0
  433. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  434. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +129 -0
  435. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +1 -0
  436. package/dist/cjs/tests/integration/locator-count.spec.d.ts +1 -0
  437. package/dist/cjs/tests/integration/locator-count.spec.js +68 -0
  438. package/dist/cjs/tests/integration/locator-count.spec.js.map +1 -0
  439. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +1 -0
  440. package/dist/cjs/tests/integration/locator-fill.spec.js +117 -0
  441. package/dist/cjs/tests/integration/locator-fill.spec.js.map +1 -0
  442. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +1 -0
  443. package/dist/cjs/tests/integration/locator-input-methods.spec.js +127 -0
  444. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +1 -0
  445. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +1 -0
  446. package/dist/cjs/tests/integration/locator-nth.spec.js +175 -0
  447. package/dist/cjs/tests/integration/locator-nth.spec.js.map +1 -0
  448. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +1 -0
  449. package/dist/cjs/tests/integration/locator-select-option.spec.js +216 -0
  450. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +1 -0
  451. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +1 -0
  452. package/dist/cjs/tests/integration/logger-initialization.spec.js +597 -0
  453. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +1 -0
  454. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  455. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +293 -0
  456. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +1 -0
  457. package/dist/cjs/tests/integration/nested-div.spec.d.ts +1 -0
  458. package/dist/cjs/tests/integration/nested-div.spec.js +22 -0
  459. package/dist/cjs/tests/integration/nested-div.spec.js.map +1 -0
  460. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +1 -0
  461. package/dist/cjs/tests/integration/page-addInitScript.spec.js +94 -0
  462. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +1 -0
  463. package/dist/cjs/tests/integration/page-console.spec.d.ts +1 -0
  464. package/dist/cjs/tests/integration/page-console.spec.js +47 -0
  465. package/dist/cjs/tests/integration/page-console.spec.js.map +1 -0
  466. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  467. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +437 -0
  468. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  469. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  470. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
  471. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  472. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +1 -0
  473. package/dist/cjs/tests/integration/page-goto-response.spec.js +34 -0
  474. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +1 -0
  475. package/dist/cjs/tests/integration/page-hover.spec.d.ts +1 -0
  476. package/dist/cjs/tests/integration/page-hover.spec.js +165 -0
  477. package/dist/cjs/tests/integration/page-hover.spec.js.map +1 -0
  478. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +1 -0
  479. package/dist/cjs/tests/integration/page-screenshot.spec.js +292 -0
  480. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -0
  481. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +1 -0
  482. package/dist/cjs/tests/integration/page-scroll.spec.js +183 -0
  483. package/dist/cjs/tests/integration/page-scroll.spec.js.map +1 -0
  484. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +1 -0
  485. package/dist/cjs/tests/integration/page-send-cdp.spec.js +47 -0
  486. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +1 -0
  487. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  488. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +63 -0
  489. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +1 -0
  490. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +1 -0
  491. package/dist/cjs/tests/integration/setinputfiles.spec.js +133 -0
  492. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +1 -0
  493. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  494. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +161 -0
  495. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  496. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  497. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +160 -0
  498. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  499. package/dist/cjs/tests/integration/testUtils.d.ts +7 -0
  500. package/dist/cjs/tests/integration/testUtils.js +44 -0
  501. package/dist/cjs/tests/integration/testUtils.js.map +1 -0
  502. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  503. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +105 -0
  504. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +1 -0
  505. package/dist/cjs/tests/integration/timeouts.spec.d.ts +1 -0
  506. package/dist/cjs/tests/integration/timeouts.spec.js +197 -0
  507. package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -0
  508. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +1 -0
  509. package/dist/cjs/tests/integration/user-data-dir.spec.js +77 -0
  510. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +1 -0
  511. package/dist/cjs/tests/integration/v3.config.d.ts +4 -0
  512. package/dist/cjs/tests/integration/v3.config.js +11 -0
  513. package/dist/cjs/tests/integration/v3.config.js.map +1 -0
  514. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +4 -0
  515. package/dist/cjs/tests/integration/v3.dynamic.config.js +48 -0
  516. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +1 -0
  517. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +2 -0
  518. package/dist/cjs/tests/integration/v3.playwright.config.js +48 -0
  519. package/dist/cjs/tests/integration/v3.playwright.config.js.map +1 -0
  520. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +1 -0
  521. package/dist/cjs/tests/integration/wait-for-selector.spec.js +683 -0
  522. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +1 -0
  523. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  524. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +118 -0
  525. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +1 -0
  526. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  527. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +87 -0
  528. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  529. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +1 -0
  530. package/dist/cjs/tests/unit/agent-execution-model.test.js +128 -0
  531. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +1 -0
  532. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +1 -0
  533. package/dist/cjs/tests/unit/api-multiregion.test.js +58 -0
  534. package/dist/cjs/tests/unit/api-multiregion.test.js.map +1 -0
  535. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  536. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +102 -0
  537. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  538. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  539. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +186 -0
  540. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +1 -0
  541. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +1 -0
  542. package/dist/cjs/tests/unit/cdp-connection-close.test.js +74 -0
  543. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +1 -0
  544. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  545. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +58 -0
  546. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +1 -0
  547. package/dist/cjs/tests/unit/cookies.test.d.ts +1 -0
  548. package/dist/cjs/tests/unit/cookies.test.js +944 -0
  549. package/dist/cjs/tests/unit/cookies.test.js.map +1 -0
  550. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  551. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +29 -0
  552. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +1 -0
  553. package/dist/cjs/tests/unit/llm-provider.test.d.ts +1 -0
  554. package/dist/cjs/tests/unit/llm-provider.test.js +64 -0
  555. package/dist/cjs/tests/unit/llm-provider.test.js.map +1 -0
  556. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +1 -0
  557. package/dist/cjs/tests/unit/model-deprecation.test.js +142 -0
  558. package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -0
  559. package/dist/cjs/tests/unit/model-utils.test.d.ts +1 -0
  560. package/dist/cjs/tests/unit/model-utils.test.js +42 -0
  561. package/dist/cjs/tests/unit/model-utils.test.js.map +1 -0
  562. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  563. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
  564. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
  565. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +1 -0
  566. package/dist/cjs/tests/unit/page-snapshot.test.js +75 -0
  567. package/dist/cjs/tests/unit/page-snapshot.test.js.map +1 -0
  568. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +1 -0
  569. package/dist/cjs/tests/unit/public-api/export-surface.test.js +107 -0
  570. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +1 -0
  571. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  572. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +175 -0
  573. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  574. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  575. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +110 -0
  576. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +1 -0
  577. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +1 -0
  578. package/dist/cjs/tests/unit/public-api/public-types.test.js +99 -0
  579. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -0
  580. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  581. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +60 -0
  582. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  583. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  584. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +95 -0
  585. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +1 -0
  586. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  587. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +121 -0
  588. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  589. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  590. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +65 -0
  591. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  592. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +1 -0
  593. package/dist/cjs/tests/unit/public-api/v3-core.test.js +108 -0
  594. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +1 -0
  595. package/dist/cjs/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
  596. package/dist/cjs/tests/unit/rerender-missing-shadows.test.js +209 -0
  597. package/dist/cjs/tests/unit/rerender-missing-shadows.test.js.map +1 -0
  598. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +1 -0
  599. package/dist/cjs/tests/unit/safety-confirmation.test.js +110 -0
  600. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +1 -0
  601. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  602. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +330 -0
  603. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  604. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  605. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +286 -0
  606. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  607. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  608. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +394 -0
  609. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  610. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +1 -0
  611. package/dist/cjs/tests/unit/snapshot-cbor.test.js +204 -0
  612. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +1 -0
  613. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  614. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +220 -0
  615. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  616. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  617. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +107 -0
  618. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  619. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  620. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +89 -0
  621. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  622. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  623. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +335 -0
  624. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  625. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  626. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +84 -0
  627. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  628. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  629. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +74 -0
  630. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  631. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +1 -0
  632. package/dist/cjs/tests/unit/timeout-handlers.test.js +847 -0
  633. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +1 -0
  634. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +1 -0
  635. package/dist/cjs/tests/unit/understudy-command-exception.test.js +57 -0
  636. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +1 -0
  637. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +1 -0
  638. package/dist/cjs/tests/unit/xpath-parser.test.js +311 -0
  639. package/dist/cjs/tests/unit/xpath-parser.test.js.map +1 -0
  640. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +1 -0
  641. package/dist/cjs/tests/unit/xpath-resolver.test.js +80 -0
  642. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +1 -0
  643. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  644. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +149 -0
  645. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  646. package/dist/esm/index.d.ts +1 -2
  647. package/dist/esm/index.js +1 -2
  648. package/dist/esm/lib/inference.js +5 -8
  649. package/dist/esm/lib/inference.js.map +1 -1
  650. package/dist/esm/lib/modelUtils.d.ts +1 -0
  651. package/dist/esm/lib/modelUtils.js.map +1 -1
  652. package/dist/esm/lib/prompt.d.ts +3 -2
  653. package/dist/esm/lib/prompt.js.map +1 -1
  654. package/dist/esm/lib/v3/agent/AgentProvider.js +1 -1
  655. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  656. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +17 -2
  657. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  658. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +4 -4
  659. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
  660. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
  661. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +24 -1
  662. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -1
  663. package/dist/esm/lib/v3/agent/tools/act.d.ts +2 -2
  664. package/dist/esm/lib/v3/agent/tools/act.js +66 -44
  665. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
  666. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  667. package/dist/esm/lib/v3/agent/tools/ariaTree.js +60 -22
  668. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
  669. package/dist/esm/lib/v3/agent/tools/click.js +23 -31
  670. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
  671. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
  672. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
  673. package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
  674. package/dist/esm/lib/v3/agent/tools/extract.js +16 -3
  675. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
  676. package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  677. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +109 -98
  678. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
  679. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +8 -2
  680. package/dist/esm/lib/v3/agent/tools/fillform.js +82 -52
  681. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
  682. package/dist/esm/lib/v3/agent/tools/index.d.ts +11 -1
  683. package/dist/esm/lib/v3/agent/tools/index.js +8 -7
  684. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
  685. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
  686. package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
  687. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
  688. package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
  689. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
  690. package/dist/esm/lib/v3/agent/tools/type.d.ts +2 -2
  691. package/dist/esm/lib/v3/agent/tools/type.js +80 -79
  692. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
  693. package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
  694. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
  695. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
  696. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
  697. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +8 -0
  698. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -1
  699. package/dist/esm/lib/v3/agent/utils/variables.d.ts +21 -0
  700. package/dist/esm/lib/v3/agent/utils/variables.js +48 -0
  701. package/dist/esm/lib/v3/agent/utils/variables.js.map +1 -0
  702. package/dist/esm/lib/v3/api.d.ts +23 -5
  703. package/dist/esm/lib/v3/api.js +74 -13
  704. package/dist/esm/lib/v3/api.js.map +1 -1
  705. package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
  706. package/dist/esm/lib/v3/cache/ActCache.js +2 -18
  707. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
  708. package/dist/esm/lib/v3/cache/AgentCache.d.ts +1 -0
  709. package/dist/esm/lib/v3/cache/AgentCache.js +18 -11
  710. package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
  711. package/dist/esm/lib/v3/handlers/actHandler.d.ts +2 -1
  712. package/dist/esm/lib/v3/handlers/actHandler.js +4 -4
  713. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
  714. package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
  715. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  716. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +0 -27
  717. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
  718. package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
  719. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  720. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +13 -16
  721. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  722. package/dist/esm/lib/v3/index.d.ts +143 -0
  723. package/dist/esm/lib/v3/index.js +41 -0
  724. package/dist/esm/lib/v3/index.js.map +1 -1
  725. package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
  726. package/dist/esm/lib/v3/launch/browserbase.js +4 -9
  727. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
  728. package/dist/esm/lib/v3/llm/LLMProvider.js +0 -5
  729. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  730. package/dist/esm/lib/v3/llm/OpenAIClient.js +2 -2
  731. package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -1
  732. package/dist/esm/lib/v3/mcp/connection.d.ts +2 -0
  733. package/dist/esm/lib/v3/mcp/connection.js +5 -2
  734. package/dist/esm/lib/v3/mcp/connection.js.map +1 -1
  735. package/dist/esm/lib/v3/runtimePaths.d.ts +6 -0
  736. package/dist/esm/lib/v3/runtimePaths.js +107 -0
  737. package/dist/esm/lib/v3/runtimePaths.js.map +1 -0
  738. package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
  739. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
  740. package/dist/esm/lib/v3/shutdown/supervisorClient.js +9 -14
  741. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
  742. package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
  743. package/dist/esm/lib/v3/timeoutConfig.js +5 -0
  744. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
  745. package/dist/esm/lib/v3/types/private/cache.d.ts +3 -0
  746. package/dist/esm/lib/v3/types/private/cache.js.map +1 -1
  747. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -1
  748. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  749. package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
  750. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
  751. package/dist/esm/lib/v3/types/public/agent.d.ts +60 -2
  752. package/dist/esm/lib/v3/types/public/agent.js +1 -1
  753. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  754. package/dist/esm/lib/v3/types/public/api.d.ts +17 -0
  755. package/dist/esm/lib/v3/types/public/api.js +3 -2
  756. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  757. package/dist/esm/lib/v3/types/public/context.d.ts +32 -0
  758. package/dist/esm/lib/v3/types/public/context.js +2 -0
  759. package/dist/esm/lib/v3/types/public/context.js.map +1 -0
  760. package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
  761. package/dist/esm/lib/v3/types/public/index.js +1 -0
  762. package/dist/esm/lib/v3/types/public/index.js.map +1 -1
  763. package/dist/esm/lib/v3/types/public/methods.d.ts +33 -2
  764. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  765. package/dist/esm/lib/v3/types/public/model.d.ts +4 -2
  766. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  767. package/dist/esm/lib/v3/types/public/options.d.ts +8 -0
  768. package/dist/esm/lib/v3/types/public/options.js.map +1 -1
  769. package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +13 -0
  770. package/dist/esm/lib/v3/types/public/sdkErrors.js +22 -0
  771. package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -1
  772. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  773. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +1 -1
  774. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -1
  775. package/dist/esm/lib/v3/understudy/cdp.d.ts +6 -1
  776. package/dist/esm/lib/v3/understudy/cdp.js +65 -7
  777. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
  778. package/dist/esm/lib/v3/understudy/context.d.ts +34 -0
  779. package/dist/esm/lib/v3/understudy/context.js +327 -67
  780. package/dist/esm/lib/v3/understudy/context.js.map +1 -1
  781. package/dist/esm/lib/v3/understudy/cookies.d.ts +32 -0
  782. package/dist/esm/lib/v3/understudy/cookies.js +136 -0
  783. package/dist/esm/lib/v3/understudy/cookies.js.map +1 -0
  784. package/dist/esm/lib/v3/understudy/deepLocator.js +1 -23
  785. package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -1
  786. package/dist/esm/lib/v3/understudy/frame.js +24 -7
  787. package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
  788. package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
  789. package/dist/esm/lib/v3/understudy/page.js +58 -5
  790. package/dist/esm/lib/v3/understudy/page.js.map +1 -1
  791. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  792. package/dist/esm/lib/v3/understudy/screenshotUtils.js +1 -19
  793. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
  794. package/dist/esm/lib/v3/understudy/selectorResolver.js +1 -1
  795. package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -1
  796. package/dist/esm/lib/v3/v3.js +59 -35
  797. package/dist/esm/lib/v3/v3.js.map +1 -1
  798. package/dist/esm/lib/version.d.ts +1 -1
  799. package/dist/esm/lib/version.js +1 -1
  800. package/dist/esm/lib/version.js.map +1 -1
  801. package/dist/esm/tests/cache-variables.test.d.ts +1 -0
  802. package/dist/esm/tests/cache-variables.test.js +219 -0
  803. package/dist/esm/tests/cache-variables.test.js.map +1 -0
  804. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +1 -0
  805. package/dist/esm/tests/integration/agent-abort-signal.spec.js +121 -0
  806. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +1 -0
  807. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +1 -0
  808. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +78 -0
  809. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  810. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +1 -0
  811. package/dist/esm/tests/integration/agent-callbacks.spec.js +383 -0
  812. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +1 -0
  813. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +1 -0
  814. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +360 -0
  815. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  816. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +1 -0
  817. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +260 -0
  818. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  819. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +1 -0
  820. package/dist/esm/tests/integration/agent-message-continuation.spec.js +110 -0
  821. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +1 -0
  822. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +1 -0
  823. package/dist/esm/tests/integration/agent-streaming.spec.js +138 -0
  824. package/dist/esm/tests/integration/agent-streaming.spec.js.map +1 -0
  825. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  826. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +39 -0
  827. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  828. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  829. package/dist/esm/tests/integration/cdp-connection-close.spec.js +74 -0
  830. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +1 -0
  831. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  832. package/dist/esm/tests/integration/cdp-session-detached.spec.js +43 -0
  833. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -0
  834. package/dist/esm/tests/integration/click-count.spec.d.ts +1 -0
  835. package/dist/esm/tests/integration/click-count.spec.js +161 -0
  836. package/dist/esm/tests/integration/click-count.spec.js.map +1 -0
  837. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  838. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +97 -0
  839. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  840. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +1 -0
  841. package/dist/esm/tests/integration/context-addInitScript.spec.js +283 -0
  842. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -0
  843. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  844. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +47 -0
  845. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  846. package/dist/esm/tests/integration/cookies.spec.d.ts +1 -0
  847. package/dist/esm/tests/integration/cookies.spec.js +185 -0
  848. package/dist/esm/tests/integration/cookies.spec.js.map +1 -0
  849. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +1 -0
  850. package/dist/esm/tests/integration/default-page-tracking.spec.js +50 -0
  851. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +1 -0
  852. package/dist/esm/tests/integration/downloads.spec.d.ts +1 -0
  853. package/dist/esm/tests/integration/downloads.spec.js +47 -0
  854. package/dist/esm/tests/integration/downloads.spec.js.map +1 -0
  855. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  856. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +55 -0
  857. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  858. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  859. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
  860. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  861. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  862. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +472 -0
  863. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  864. package/dist/esm/tests/integration/keep-alive.child.d.ts +1 -0
  865. package/dist/esm/tests/integration/keep-alive.child.js +83 -0
  866. package/dist/esm/tests/integration/keep-alive.child.js.map +1 -0
  867. package/dist/esm/tests/integration/keep-alive.spec.d.ts +22 -0
  868. package/dist/esm/tests/integration/keep-alive.spec.js +482 -0
  869. package/dist/esm/tests/integration/keep-alive.spec.js.map +1 -0
  870. package/dist/esm/tests/integration/keyboard.spec.d.ts +1 -0
  871. package/dist/esm/tests/integration/keyboard.spec.js +257 -0
  872. package/dist/esm/tests/integration/keyboard.spec.js.map +1 -0
  873. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  874. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +148 -0
  875. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  876. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +1 -0
  877. package/dist/esm/tests/integration/locator-content-methods.spec.js +178 -0
  878. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +1 -0
  879. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  880. package/dist/esm/tests/integration/locator-count-iframe.spec.js +127 -0
  881. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +1 -0
  882. package/dist/esm/tests/integration/locator-count.spec.d.ts +1 -0
  883. package/dist/esm/tests/integration/locator-count.spec.js +66 -0
  884. package/dist/esm/tests/integration/locator-count.spec.js.map +1 -0
  885. package/dist/esm/tests/integration/locator-fill.spec.d.ts +1 -0
  886. package/dist/esm/tests/integration/locator-fill.spec.js +115 -0
  887. package/dist/esm/tests/integration/locator-fill.spec.js.map +1 -0
  888. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +1 -0
  889. package/dist/esm/tests/integration/locator-input-methods.spec.js +125 -0
  890. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +1 -0
  891. package/dist/esm/tests/integration/locator-nth.spec.d.ts +1 -0
  892. package/dist/esm/tests/integration/locator-nth.spec.js +173 -0
  893. package/dist/esm/tests/integration/locator-nth.spec.js.map +1 -0
  894. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +1 -0
  895. package/dist/esm/tests/integration/locator-select-option.spec.js +214 -0
  896. package/dist/esm/tests/integration/locator-select-option.spec.js.map +1 -0
  897. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +1 -0
  898. package/dist/esm/tests/integration/logger-initialization.spec.js +595 -0
  899. package/dist/esm/tests/integration/logger-initialization.spec.js.map +1 -0
  900. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  901. package/dist/esm/tests/integration/multi-instance-logger.spec.js +291 -0
  902. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +1 -0
  903. package/dist/esm/tests/integration/nested-div.spec.d.ts +1 -0
  904. package/dist/esm/tests/integration/nested-div.spec.js +20 -0
  905. package/dist/esm/tests/integration/nested-div.spec.js.map +1 -0
  906. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +1 -0
  907. package/dist/esm/tests/integration/page-addInitScript.spec.js +92 -0
  908. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +1 -0
  909. package/dist/esm/tests/integration/page-console.spec.d.ts +1 -0
  910. package/dist/esm/tests/integration/page-console.spec.js +45 -0
  911. package/dist/esm/tests/integration/page-console.spec.js.map +1 -0
  912. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  913. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +435 -0
  914. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  915. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  916. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
  917. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  918. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +1 -0
  919. package/dist/esm/tests/integration/page-goto-response.spec.js +32 -0
  920. package/dist/esm/tests/integration/page-goto-response.spec.js.map +1 -0
  921. package/dist/esm/tests/integration/page-hover.spec.d.ts +1 -0
  922. package/dist/esm/tests/integration/page-hover.spec.js +163 -0
  923. package/dist/esm/tests/integration/page-hover.spec.js.map +1 -0
  924. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +1 -0
  925. package/dist/esm/tests/integration/page-screenshot.spec.js +257 -0
  926. package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -0
  927. package/dist/esm/tests/integration/page-scroll.spec.d.ts +1 -0
  928. package/dist/esm/tests/integration/page-scroll.spec.js +181 -0
  929. package/dist/esm/tests/integration/page-scroll.spec.js.map +1 -0
  930. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +1 -0
  931. package/dist/esm/tests/integration/page-send-cdp.spec.js +45 -0
  932. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +1 -0
  933. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  934. package/dist/esm/tests/integration/perform-understudy-method.spec.js +61 -0
  935. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +1 -0
  936. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +1 -0
  937. package/dist/esm/tests/integration/setinputfiles.spec.js +128 -0
  938. package/dist/esm/tests/integration/setinputfiles.spec.js.map +1 -0
  939. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  940. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +156 -0
  941. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  942. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  943. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +155 -0
  944. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  945. package/dist/esm/tests/integration/testUtils.d.ts +7 -0
  946. package/dist/esm/tests/integration/testUtils.js +40 -0
  947. package/dist/esm/tests/integration/testUtils.js.map +1 -0
  948. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  949. package/dist/esm/tests/integration/text-selector-innermost.spec.js +103 -0
  950. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +1 -0
  951. package/dist/esm/tests/integration/timeouts.spec.d.ts +1 -0
  952. package/dist/esm/tests/integration/timeouts.spec.js +195 -0
  953. package/dist/esm/tests/integration/timeouts.spec.js.map +1 -0
  954. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +1 -0
  955. package/dist/esm/tests/integration/user-data-dir.spec.js +42 -0
  956. package/dist/esm/tests/integration/user-data-dir.spec.js.map +1 -0
  957. package/dist/esm/tests/integration/v3.config.d.ts +4 -0
  958. package/dist/esm/tests/integration/v3.config.js +7 -0
  959. package/dist/esm/tests/integration/v3.config.js.map +1 -0
  960. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +4 -0
  961. package/dist/esm/tests/integration/v3.dynamic.config.js +44 -0
  962. package/dist/esm/tests/integration/v3.dynamic.config.js.map +1 -0
  963. package/dist/esm/tests/integration/v3.playwright.config.d.ts +2 -0
  964. package/dist/esm/tests/integration/v3.playwright.config.js +46 -0
  965. package/dist/esm/tests/integration/v3.playwright.config.js.map +1 -0
  966. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +1 -0
  967. package/dist/esm/tests/integration/wait-for-selector.spec.js +681 -0
  968. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +1 -0
  969. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  970. package/dist/esm/tests/integration/wait-for-timeout.spec.js +116 -0
  971. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +1 -0
  972. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  973. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +85 -0
  974. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  975. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +1 -0
  976. package/dist/esm/tests/unit/agent-execution-model.test.js +126 -0
  977. package/dist/esm/tests/unit/agent-execution-model.test.js.map +1 -0
  978. package/dist/esm/tests/unit/api-multiregion.test.d.ts +1 -0
  979. package/dist/esm/tests/unit/api-multiregion.test.js +56 -0
  980. package/dist/esm/tests/unit/api-multiregion.test.js.map +1 -0
  981. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  982. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +100 -0
  983. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  984. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  985. package/dist/esm/tests/unit/cache-llm-resolution.test.js +184 -0
  986. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +1 -0
  987. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +1 -0
  988. package/dist/esm/tests/unit/cdp-connection-close.test.js +72 -0
  989. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +1 -0
  990. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  991. package/dist/esm/tests/unit/context-extra-http-headers.test.js +56 -0
  992. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +1 -0
  993. package/dist/esm/tests/unit/cookies.test.d.ts +1 -0
  994. package/dist/esm/tests/unit/cookies.test.js +909 -0
  995. package/dist/esm/tests/unit/cookies.test.js.map +1 -0
  996. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  997. package/dist/esm/tests/unit/helpers/mockCDPSession.js +25 -0
  998. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +1 -0
  999. package/dist/esm/tests/unit/llm-provider.test.d.ts +1 -0
  1000. package/dist/esm/tests/unit/llm-provider.test.js +62 -0
  1001. package/dist/esm/tests/unit/llm-provider.test.js.map +1 -0
  1002. package/dist/esm/tests/unit/model-deprecation.test.d.ts +1 -0
  1003. package/dist/esm/tests/unit/model-deprecation.test.js +140 -0
  1004. package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -0
  1005. package/dist/esm/tests/unit/model-utils.test.d.ts +1 -0
  1006. package/dist/esm/tests/unit/model-utils.test.js +40 -0
  1007. package/dist/esm/tests/unit/model-utils.test.js.map +1 -0
  1008. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  1009. package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
  1010. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
  1011. package/dist/esm/tests/unit/page-snapshot.test.d.ts +1 -0
  1012. package/dist/esm/tests/unit/page-snapshot.test.js +40 -0
  1013. package/dist/esm/tests/unit/page-snapshot.test.js.map +1 -0
  1014. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +1 -0
  1015. package/dist/esm/tests/unit/public-api/export-surface.test.js +72 -0
  1016. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +1 -0
  1017. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  1018. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +140 -0
  1019. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  1020. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  1021. package/dist/esm/tests/unit/public-api/public-error-types.test.js +74 -0
  1022. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +1 -0
  1023. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +1 -0
  1024. package/dist/esm/tests/unit/public-api/public-types.test.js +97 -0
  1025. package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -0
  1026. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  1027. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +25 -0
  1028. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  1029. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  1030. package/dist/esm/tests/unit/public-api/schema-utils.test.js +60 -0
  1031. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +1 -0
  1032. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  1033. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +86 -0
  1034. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  1035. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  1036. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +30 -0
  1037. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  1038. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +1 -0
  1039. package/dist/esm/tests/unit/public-api/v3-core.test.js +73 -0
  1040. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +1 -0
  1041. package/dist/esm/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
  1042. package/dist/esm/tests/unit/rerender-missing-shadows.test.js +207 -0
  1043. package/dist/esm/tests/unit/rerender-missing-shadows.test.js.map +1 -0
  1044. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +1 -0
  1045. package/dist/esm/tests/unit/safety-confirmation.test.js +108 -0
  1046. package/dist/esm/tests/unit/safety-confirmation.test.js.map +1 -0
  1047. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  1048. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +295 -0
  1049. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  1050. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  1051. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +284 -0
  1052. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  1053. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  1054. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +359 -0
  1055. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  1056. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +1 -0
  1057. package/dist/esm/tests/unit/snapshot-cbor.test.js +202 -0
  1058. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +1 -0
  1059. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  1060. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +218 -0
  1061. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  1062. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  1063. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +105 -0
  1064. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  1065. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  1066. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +87 -0
  1067. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  1068. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  1069. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +333 -0
  1070. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  1071. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  1072. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +82 -0
  1073. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  1074. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  1075. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +72 -0
  1076. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  1077. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +1 -0
  1078. package/dist/esm/tests/unit/timeout-handlers.test.js +812 -0
  1079. package/dist/esm/tests/unit/timeout-handlers.test.js.map +1 -0
  1080. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +1 -0
  1081. package/dist/esm/tests/unit/understudy-command-exception.test.js +55 -0
  1082. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +1 -0
  1083. package/dist/esm/tests/unit/xpath-parser.test.d.ts +1 -0
  1084. package/dist/esm/tests/unit/xpath-parser.test.js +309 -0
  1085. package/dist/esm/tests/unit/xpath-parser.test.js.map +1 -0
  1086. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +1 -0
  1087. package/dist/esm/tests/unit/xpath-resolver.test.js +78 -0
  1088. package/dist/esm/tests/unit/xpath-resolver.test.js.map +1 -0
  1089. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  1090. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +114 -0
  1091. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  1092. package/package.json +19 -8
  1093. package/dist/cjs/cli.js.map +0 -7
  1094. package/dist/cjs/index.js.map +0 -7
  1095. package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1096. package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
  1097. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1098. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1099. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +0 -102
  1100. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1101. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1102. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1103. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +0 -354
  1104. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1105. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1106. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1107. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1108. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1109. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +0 -126
  1110. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1111. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1112. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1113. package/dist/cjs/lib/v3/tests/click-count.spec.js +0 -147
  1114. package/dist/cjs/lib/v3/tests/click-count.spec.js.map +0 -7
  1115. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1116. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1117. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1118. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1119. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1120. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1121. package/dist/cjs/lib/v3/tests/downloads.spec.js +0 -80
  1122. package/dist/cjs/lib/v3/tests/downloads.spec.js.map +0 -7
  1123. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1124. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1125. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1126. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1127. package/dist/cjs/lib/v3/tests/keep-alive.child.js +0 -92
  1128. package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +0 -7
  1129. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +0 -568
  1130. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1131. package/dist/cjs/lib/v3/tests/keep-alive.spec.js +0 -15
  1132. package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1133. package/dist/cjs/lib/v3/tests/keyboard.spec.js +0 -296
  1134. package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +0 -7
  1135. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1136. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1137. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1138. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1139. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1140. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1141. package/dist/cjs/lib/v3/tests/locator-count.spec.js +0 -71
  1142. package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +0 -7
  1143. package/dist/cjs/lib/v3/tests/locator-fill.spec.js +0 -119
  1144. package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1145. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1146. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1147. package/dist/cjs/lib/v3/tests/locator-nth.spec.js +0 -157
  1148. package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1149. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +0 -243
  1150. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1151. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +0 -547
  1152. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1153. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1154. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1155. package/dist/cjs/lib/v3/tests/nested-div.spec.js +0 -23
  1156. package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +0 -7
  1157. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1158. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1159. package/dist/cjs/lib/v3/tests/page-console.spec.js +0 -56
  1160. package/dist/cjs/lib/v3/tests/page-console.spec.js.map +0 -7
  1161. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1162. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1163. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +0 -35
  1164. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1165. package/dist/cjs/lib/v3/tests/page-hover.spec.js +0 -167
  1166. package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +0 -7
  1167. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +0 -295
  1168. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1169. package/dist/cjs/lib/v3/tests/page-scroll.spec.js +0 -182
  1170. package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1171. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1172. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1173. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1174. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1175. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +0 -148
  1176. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1177. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -156
  1178. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1179. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +0 -156
  1180. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1181. package/dist/cjs/lib/v3/tests/testUtils.js +0 -54
  1182. package/dist/cjs/lib/v3/tests/testUtils.js.map +0 -7
  1183. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1184. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1185. package/dist/cjs/lib/v3/tests/timeouts.spec.js +0 -32
  1186. package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +0 -7
  1187. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +0 -65
  1188. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1189. package/dist/cjs/lib/v3/tests/v3.config.js +0 -36
  1190. package/dist/cjs/lib/v3/tests/v3.config.js.map +0 -7
  1191. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +0 -67
  1192. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1193. package/dist/cjs/lib/v3/tests/v3.playwright.config.js +0 -61
  1194. package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1195. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1196. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1197. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1198. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1199. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1200. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1201. package/dist/cjs/tests/agent-execution-model.test.js +0 -139
  1202. package/dist/cjs/tests/agent-execution-model.test.js.map +0 -7
  1203. package/dist/cjs/tests/api-multiregion.test.js +0 -73
  1204. package/dist/cjs/tests/api-multiregion.test.js.map +0 -7
  1205. package/dist/cjs/tests/browserbase-session-accessors.test.js +0 -101
  1206. package/dist/cjs/tests/browserbase-session-accessors.test.js.map +0 -7
  1207. package/dist/cjs/tests/cache-llm-resolution.test.js +0 -187
  1208. package/dist/cjs/tests/cache-llm-resolution.test.js.map +0 -7
  1209. package/dist/cjs/tests/helpers/mockCDPSession.js +0 -50
  1210. package/dist/cjs/tests/helpers/mockCDPSession.js.map +0 -7
  1211. package/dist/cjs/tests/llm-provider.test.js +0 -57
  1212. package/dist/cjs/tests/llm-provider.test.js.map +0 -7
  1213. package/dist/cjs/tests/model-deprecation.test.js +0 -132
  1214. package/dist/cjs/tests/model-deprecation.test.js.map +0 -7
  1215. package/dist/cjs/tests/model-utils.test.js +0 -43
  1216. package/dist/cjs/tests/model-utils.test.js.map +0 -7
  1217. package/dist/cjs/tests/page-snapshot.test.js +0 -58
  1218. package/dist/cjs/tests/page-snapshot.test.js.map +0 -7
  1219. package/dist/cjs/tests/public-api/export-surface.test.js +0 -77
  1220. package/dist/cjs/tests/public-api/export-surface.test.js.map +0 -7
  1221. package/dist/cjs/tests/public-api/llm-and-agents.test.js +0 -151
  1222. package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +0 -7
  1223. package/dist/cjs/tests/public-api/public-error-types.test.js +0 -106
  1224. package/dist/cjs/tests/public-api/public-error-types.test.js.map +0 -7
  1225. package/dist/cjs/tests/public-api/public-types.test.js +0 -74
  1226. package/dist/cjs/tests/public-api/public-types.test.js.map +0 -7
  1227. package/dist/cjs/tests/public-api/runtime-utils.test.js +0 -53
  1228. package/dist/cjs/tests/public-api/runtime-utils.test.js.map +0 -7
  1229. package/dist/cjs/tests/public-api/schema-utils.test.js +0 -100
  1230. package/dist/cjs/tests/public-api/schema-utils.test.js.map +0 -7
  1231. package/dist/cjs/tests/public-api/timeout-error-types.test.js +0 -103
  1232. package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +0 -7
  1233. package/dist/cjs/tests/public-api/tool-type-export.test.js +0 -47
  1234. package/dist/cjs/tests/public-api/tool-type-export.test.js.map +0 -7
  1235. package/dist/cjs/tests/public-api/v3-core.test.js +0 -105
  1236. package/dist/cjs/tests/public-api/v3-core.test.js.map +0 -7
  1237. package/dist/cjs/tests/safety-confirmation.test.js +0 -134
  1238. package/dist/cjs/tests/safety-confirmation.test.js.map +0 -7
  1239. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +0 -370
  1240. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1241. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +0 -294
  1242. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1243. package/dist/cjs/tests/snapshot-capture-orchestration.test.js +0 -405
  1244. package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1245. package/dist/cjs/tests/snapshot-cbor.test.js +0 -197
  1246. package/dist/cjs/tests/snapshot-cbor.test.js.map +0 -7
  1247. package/dist/cjs/tests/snapshot-dom-session-builders.test.js +0 -246
  1248. package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1249. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +0 -104
  1250. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1251. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +0 -45
  1252. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1253. package/dist/cjs/tests/snapshot-frame-merge.test.js +0 -388
  1254. package/dist/cjs/tests/snapshot-frame-merge.test.js.map +0 -7
  1255. package/dist/cjs/tests/snapshot-tree-format-utils.test.js +0 -106
  1256. package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1257. package/dist/cjs/tests/snapshot-xpath-utils.test.js +0 -74
  1258. package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +0 -7
  1259. package/dist/cjs/tests/timeout-handlers.test.js +0 -864
  1260. package/dist/cjs/tests/timeout-handlers.test.js.map +0 -7
  1261. package/dist/cjs/tests/understudy-command-exception.test.js +0 -52
  1262. package/dist/cjs/tests/understudy-command-exception.test.js.map +0 -7
  1263. package/dist/cjs/tests/xpath-parser.test.js +0 -314
  1264. package/dist/cjs/tests/xpath-parser.test.js.map +0 -7
  1265. package/dist/cjs/tests/xpath-resolver.test.js +0 -70
  1266. package/dist/cjs/tests/xpath-resolver.test.js.map +0 -7
  1267. package/dist/cjs/tests/zod-enum-compatibility.test.js +0 -119
  1268. package/dist/cjs/tests/zod-enum-compatibility.test.js.map +0 -7
  1269. package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1270. package/dist/esm/lib/v3/dom/build/rerender-index.js.map +0 -1
  1271. package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
  1272. package/dist/esm/lib/v3/dom/build/v3-index.js.map +0 -1
  1273. package/dist/esm/lib/v3/dom/genA11yScripts.js +0 -54
  1274. package/dist/esm/lib/v3/dom/genA11yScripts.js.map +0 -1
  1275. package/dist/esm/lib/v3/dom/genDomScripts.js +0 -38
  1276. package/dist/esm/lib/v3/dom/genDomScripts.js.map +0 -1
  1277. package/dist/esm/lib/v3/dom/genLocatorScripts.js +0 -51
  1278. package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +0 -1
  1279. package/dist/esm/lib/v3/dom/genScreenshotScripts.js +0 -37
  1280. package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +0 -1
  1281. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1282. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1283. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +0 -80
  1284. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1285. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1286. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1287. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +0 -357
  1288. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1289. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1290. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1291. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1292. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1293. package/dist/esm/lib/v3/tests/agent-streaming.spec.js +0 -126
  1294. package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1295. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1296. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1297. package/dist/esm/lib/v3/tests/click-count.spec.js +0 -147
  1298. package/dist/esm/lib/v3/tests/click-count.spec.js.map +0 -7
  1299. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1300. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1301. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1302. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1303. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1304. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1305. package/dist/esm/lib/v3/tests/downloads.spec.js +0 -58
  1306. package/dist/esm/lib/v3/tests/downloads.spec.js.map +0 -7
  1307. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1308. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1309. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1310. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1311. package/dist/esm/lib/v3/tests/keep-alive.child.js +0 -92
  1312. package/dist/esm/lib/v3/tests/keep-alive.child.js.map +0 -7
  1313. package/dist/esm/lib/v3/tests/keep-alive.helpers.js +0 -532
  1314. package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1315. package/dist/esm/lib/v3/tests/keep-alive.spec.js +0 -19
  1316. package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1317. package/dist/esm/lib/v3/tests/keyboard.spec.js +0 -296
  1318. package/dist/esm/lib/v3/tests/keyboard.spec.js.map +0 -7
  1319. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1320. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1321. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1322. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1323. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1324. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1325. package/dist/esm/lib/v3/tests/locator-count.spec.js +0 -71
  1326. package/dist/esm/lib/v3/tests/locator-count.spec.js.map +0 -7
  1327. package/dist/esm/lib/v3/tests/locator-fill.spec.js +0 -119
  1328. package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1329. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1330. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1331. package/dist/esm/lib/v3/tests/locator-nth.spec.js +0 -157
  1332. package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1333. package/dist/esm/lib/v3/tests/locator-select-option.spec.js +0 -243
  1334. package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1335. package/dist/esm/lib/v3/tests/logger-initialization.spec.js +0 -552
  1336. package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1337. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1338. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1339. package/dist/esm/lib/v3/tests/nested-div.spec.js +0 -23
  1340. package/dist/esm/lib/v3/tests/nested-div.spec.js.map +0 -7
  1341. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1342. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1343. package/dist/esm/lib/v3/tests/page-console.spec.js +0 -56
  1344. package/dist/esm/lib/v3/tests/page-console.spec.js.map +0 -7
  1345. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1346. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1347. package/dist/esm/lib/v3/tests/page-goto-response.spec.js +0 -35
  1348. package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1349. package/dist/esm/lib/v3/tests/page-hover.spec.js +0 -167
  1350. package/dist/esm/lib/v3/tests/page-hover.spec.js.map +0 -7
  1351. package/dist/esm/lib/v3/tests/page-screenshot.spec.js +0 -273
  1352. package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1353. package/dist/esm/lib/v3/tests/page-scroll.spec.js +0 -182
  1354. package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1355. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1356. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1357. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1358. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1359. package/dist/esm/lib/v3/tests/setinputfiles.spec.js +0 -126
  1360. package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1361. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -134
  1362. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1363. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +0 -134
  1364. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1365. package/dist/esm/lib/v3/tests/testUtils.js +0 -31
  1366. package/dist/esm/lib/v3/tests/testUtils.js.map +0 -7
  1367. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1368. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1369. package/dist/esm/lib/v3/tests/timeouts.spec.js +0 -32
  1370. package/dist/esm/lib/v3/tests/timeouts.spec.js.map +0 -7
  1371. package/dist/esm/lib/v3/tests/user-data-dir.spec.js +0 -43
  1372. package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1373. package/dist/esm/lib/v3/tests/v3.config.js +0 -15
  1374. package/dist/esm/lib/v3/tests/v3.config.js.map +0 -7
  1375. package/dist/esm/lib/v3/tests/v3.dynamic.config.js +0 -43
  1376. package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1377. package/dist/esm/lib/v3/tests/v3.playwright.config.js +0 -41
  1378. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1379. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1380. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1381. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1382. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1383. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1384. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1385. package/dist/esm/tests/agent-execution-model.test.js +0 -139
  1386. package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
  1387. package/dist/esm/tests/api-multiregion.test.js +0 -73
  1388. package/dist/esm/tests/api-multiregion.test.js.map +0 -7
  1389. package/dist/esm/tests/browserbase-session-accessors.test.js +0 -101
  1390. package/dist/esm/tests/browserbase-session-accessors.test.js.map +0 -7
  1391. package/dist/esm/tests/cache-llm-resolution.test.js +0 -187
  1392. package/dist/esm/tests/cache-llm-resolution.test.js.map +0 -7
  1393. package/dist/esm/tests/helpers/mockCDPSession.js +0 -27
  1394. package/dist/esm/tests/helpers/mockCDPSession.js.map +0 -7
  1395. package/dist/esm/tests/llm-provider.test.js +0 -57
  1396. package/dist/esm/tests/llm-provider.test.js.map +0 -7
  1397. package/dist/esm/tests/model-deprecation.test.js +0 -135
  1398. package/dist/esm/tests/model-deprecation.test.js.map +0 -7
  1399. package/dist/esm/tests/model-utils.test.js +0 -43
  1400. package/dist/esm/tests/model-utils.test.js.map +0 -7
  1401. package/dist/esm/tests/page-snapshot.test.js +0 -36
  1402. package/dist/esm/tests/page-snapshot.test.js.map +0 -7
  1403. package/dist/esm/tests/public-api/export-surface.test.js +0 -55
  1404. package/dist/esm/tests/public-api/export-surface.test.js.map +0 -7
  1405. package/dist/esm/tests/public-api/llm-and-agents.test.js +0 -129
  1406. package/dist/esm/tests/public-api/llm-and-agents.test.js.map +0 -7
  1407. package/dist/esm/tests/public-api/public-error-types.test.js +0 -73
  1408. package/dist/esm/tests/public-api/public-error-types.test.js.map +0 -7
  1409. package/dist/esm/tests/public-api/public-types.test.js +0 -74
  1410. package/dist/esm/tests/public-api/public-types.test.js.map +0 -7
  1411. package/dist/esm/tests/public-api/runtime-utils.test.js +0 -31
  1412. package/dist/esm/tests/public-api/runtime-utils.test.js.map +0 -7
  1413. package/dist/esm/tests/public-api/schema-utils.test.js +0 -78
  1414. package/dist/esm/tests/public-api/schema-utils.test.js.map +0 -7
  1415. package/dist/esm/tests/public-api/timeout-error-types.test.js +0 -81
  1416. package/dist/esm/tests/public-api/timeout-error-types.test.js.map +0 -7
  1417. package/dist/esm/tests/public-api/tool-type-export.test.js +0 -25
  1418. package/dist/esm/tests/public-api/tool-type-export.test.js.map +0 -7
  1419. package/dist/esm/tests/public-api/v3-core.test.js +0 -83
  1420. package/dist/esm/tests/public-api/v3-core.test.js.map +0 -7
  1421. package/dist/esm/tests/safety-confirmation.test.js +0 -134
  1422. package/dist/esm/tests/safety-confirmation.test.js.map +0 -7
  1423. package/dist/esm/tests/snapshot-a11y-resolvers.test.js +0 -348
  1424. package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1425. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +0 -300
  1426. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1427. package/dist/esm/tests/snapshot-capture-orchestration.test.js +0 -383
  1428. package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1429. package/dist/esm/tests/snapshot-cbor.test.js +0 -197
  1430. package/dist/esm/tests/snapshot-cbor.test.js.map +0 -7
  1431. package/dist/esm/tests/snapshot-dom-session-builders.test.js +0 -251
  1432. package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1433. package/dist/esm/tests/snapshot-dom-tree-utils.test.js +0 -109
  1434. package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1435. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +0 -49
  1436. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1437. package/dist/esm/tests/snapshot-frame-merge.test.js +0 -391
  1438. package/dist/esm/tests/snapshot-frame-merge.test.js.map +0 -7
  1439. package/dist/esm/tests/snapshot-tree-format-utils.test.js +0 -113
  1440. package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1441. package/dist/esm/tests/snapshot-xpath-utils.test.js +0 -79
  1442. package/dist/esm/tests/snapshot-xpath-utils.test.js.map +0 -7
  1443. package/dist/esm/tests/timeout-handlers.test.js +0 -850
  1444. package/dist/esm/tests/timeout-handlers.test.js.map +0 -7
  1445. package/dist/esm/tests/understudy-command-exception.test.js +0 -55
  1446. package/dist/esm/tests/understudy-command-exception.test.js.map +0 -7
  1447. package/dist/esm/tests/xpath-parser.test.js +0 -317
  1448. package/dist/esm/tests/xpath-parser.test.js.map +0 -7
  1449. package/dist/esm/tests/xpath-resolver.test.js +0 -73
  1450. package/dist/esm/tests/xpath-resolver.test.js.map +0 -7
  1451. package/dist/esm/tests/zod-enum-compatibility.test.js +0 -97
  1452. package/dist/esm/tests/zod-enum-compatibility.test.js.map +0 -7
  1453. /package/dist/cjs/{lib/v3/dom/genA11yScripts.d.ts → tests/cache-variables.test.d.ts} +0 -0
  1454. /package/dist/cjs/{lib/v3/dom/genDomScripts.d.ts → tests/integration/agent-abort-signal.spec.d.ts} +0 -0
  1455. /package/dist/cjs/{lib/v3/dom/genLocatorScripts.d.ts → tests/integration/agent-cache-self-heal.spec.d.ts} +0 -0
  1456. /package/dist/cjs/{lib/v3/dom/genScreenshotScripts.d.ts → tests/integration/agent-callbacks.spec.d.ts} +0 -0
  1457. /package/dist/{esm/lib/v3/dom/genA11yScripts.d.ts → cjs/tests/integration/agent-experimental-validation.spec.d.ts} +0 -0
  1458. /package/dist/{esm/lib/v3/dom/genDomScripts.d.ts → cjs/tests/integration/agent-hybrid-mode.spec.d.ts} +0 -0
  1459. /package/dist/{esm/lib/v3/dom/genLocatorScripts.d.ts → cjs/tests/integration/agent-message-continuation.spec.d.ts} +0 -0
  1460. /package/dist/{esm/lib/v3/dom/genScreenshotScripts.d.ts → cjs/tests/integration/agent-streaming.spec.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"v3.js","sourceRoot":"","sources":["../../../../lib/v3/v3.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAGL,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAa9C,OAAO,EAML,oBAAoB,EAMpB,oBAAoB,EAKpB,cAAc,EAUd,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACjD,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAOtD,SAAS,yBAAyB,CAChC,KAA0B;IAE1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,SAAS,EAAE,KAAuB,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,6BAA6B,CACrC,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS;YACT,aAAa,EAAE,aAA8B;SAC9C,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;GAcG;IACU,EAAE;;;;;iBAAF,EAAE;;;+BA45BZ,gBAAgB,CAAC,eAAe,EAAE,KAAK,CAAC;mCA8JxC,gBAAgB,CAAC,mBAAmB,EAAE,SAAS,CAAC;mCA8FhD,gBAAgB,CAAC,mBAAmB,EAAE,SAAS,CAAC;YA3PjD,4JAAM,GAAG,6DAkIR;YA4BD,wKAAM,OAAO,6DAkFZ;YAYD,wKAAM,OAAO,6DAqDZ;;;QA7sCgB,IAAI,GADV,mDAAE,CACoB;QACzB,KAAK,GAAc,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QAC7C,UAAU,GAAsB,IAAI,CAAC;QACrC,cAAc,GAA0B,IAAI,CAAC;QAC7C,cAAc,GAA0B,IAAI,CAAC;QAC7C,GAAG,GAAqB,IAAI,CAAC;QAC9B,SAAS,CAAa;QAE7B;;;WAGG;QACa,GAAG,GAAiB,IAAI,YAAY,EAAE,CAAC;QAC/C,SAAS,CAAiB;QAC1B,kBAAkB,CAAgB;QAClC,WAAW,CAAc;QACzB,kBAAkB,GAA2B,IAAI,GAAG,EAAE,CAAC;QAC9C,kBAAkB,CAAU;QACrC,UAAU,GAAG,KAAK,CAAC;QACpB,oBAAoB,CAAU;QAC7B,qBAAqB,CAAU;QAC/B,mBAAmB,CAAU;QACrC,IAAW,oBAAoB;YAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;QACD,IAAW,qBAAqB;YAC9B,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;QACD,IAAW,mBAAmB;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;QACD;;WAEG;QACH,IAAW,aAAa;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;QAC3C,CAAC;QAED;;WAEG;QACH,IAAW,iBAAiB;YAC1B,OAAO,CACL,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,eAAe;gBACvD,EAAE,eAAe,KAAK,IAAI,CAC7B,CAAC;QACJ,CAAC;QAED;;;WAGG;QACH,IAAW,kBAAkB;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC;YAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;YAE1B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;gBACpC,MAAM,EAAE,GACN,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,eAAe,EAAE,QAAQ,CAAC;gBACtE,OAAO;oBACL,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,YAAY;oBAChC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,aAAa;iBACpC,CAAC;YACJ,CAAC;YAED,YAAY;YACZ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,QAAQ,CAAC;YACzD,OAAO;gBACL,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,YAAY;gBAChC,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,aAAa;aACpC,CAAC;QACJ,CAAC;QAEO,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACtC,KAAK,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAC3C,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC;QACc,YAAY,GAAY,KAAK,CAAC;QAC9B,kBAAkB,GAAY,KAAK,CAAC;QACpC,UAAU,GAAY,KAAK,CAAC;QACpC,cAAc,CAA8B;QAC7C,OAAO,GAAc,CAAC,CAAC;QACtB,eAAe,CAAkB;QACjC,QAAQ,GAAwB,EAAE,CAAC;QAC1B,UAAU,CAAS;QAC5B,MAAM,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACvC,MAAM,CAAC,UAAU,GAAY,IAAI,GAAG,EAAE,CAAC;QACvC,YAAY,CAAe;QAC3B,QAAQ,CAAW;QACnB,UAAU,CAAa;QACvB,SAAS,GAA8B,IAAI,CAAC;QAC5C,SAAS,CAAW;QACpB,kBAAkB,GAAoC,IAAI,CAAC;QAE5D,gBAAgB,GAAqB;YAC1C,eAAe,EAAE,CAAC;YAClB,mBAAmB,EAAE,CAAC;YACtB,kBAAkB,EAAE,CAAC;YACrB,oBAAoB,EAAE,CAAC;YACvB,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,sBAAsB,EAAE,CAAC;YACzB,wBAAwB,EAAE,CAAC;YAC3B,sBAAsB,EAAE,CAAC;YACzB,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,sBAAsB,EAAE,CAAC;YACzB,wBAAwB,EAAE,CAAC;YAC3B,sBAAsB,EAAE,CAAC;YACzB,iBAAiB,EAAE,CAAC;YACpB,qBAAqB,EAAE,CAAC;YACxB,oBAAoB,EAAE,CAAC;YACvB,sBAAsB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;YACvB,iBAAiB,EAAE,CAAC;YACpB,qBAAqB,EAAE,CAAC;YACxB,oBAAoB,EAAE,CAAC;YACvB,sBAAsB,EAAE,CAAC;YACzB,oBAAoB,EAAE,CAAC;SACxB,CAAC;QAEF,YAAY,IAAe;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS;gBACZ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC;YAEnE,iFAAiF;YACjF,+DAA+D;YAC/D,6FAA6F;YAC7F,MAAM,aAAa,GAAkB;gBACnC,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,EAAE,wDAAwD;aACxE,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACnC,aAAa,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEhD,oEAAoE;YACpE,gFAAgF;YAChF,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,6CAA6C;oBAC7C,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,uDAAuD;oBACvD,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;wBAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;YAC/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;YAE3C,MAAM,iBAAiB,GAAkB,aAAa;gBACpD,CAAC,CAAE,EAAE,GAAG,aAAa,EAAoB;gBACzC,CAAC,CAAE,EAAoB,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;gBAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,wBAAwB;gBACxB,IAAI,MAAM,GAAI,iBAAyC,CAAC,MAAM,CAAC;gBAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,GAAG,iBAAiB,CACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,6BAA6B;wBAC3D,IAAI,CAAC,MAAM,CACZ,CAAC;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC;4BACV,QAAQ,EAAE,MAAM;4BAChB,OAAO,EAAE,mCAAmC,IAAI,CAAC,SAAS,KAAK,KAAK,kCAAkC;4BACtG,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;wBACH,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG;oBACxB,GAAG,iBAAiB;oBACpB,MAAM;iBACU,CAAC;gBAEnB,wCAAwC;gBACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACzC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,kBAAkB,EACvB,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CACjE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;gBAClE,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;gBAC3B,OAAO,EAAE,IAAI,CAAC,YAAY;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;gBACpC,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAClD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;aAC5C,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC;gBAC/B,OAAO,EAAE,IAAI,CAAC,YAAY;gBAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;gBACpC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG;gBAC1B,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAClD,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;gBACtC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY;gBACxC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,iCAAiC;YACjC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAE9C,mDAAmD;YACnD,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED;;;WAGG;QACH,IAAW,OAAO;YAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,6BAA6B;gBAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACvD,IAAI,CAAC,MAAM,CAAC;wBACV,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,qCAAqC,KAAK,EAAE;wBACrD,KAAK,EAAE,CAAC;qBACT,CAAC,CAAC;oBACH,sCAAsC;oBACtC,OAAO,IAAI,CAAC,gBAAgB,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;YACD,4DAA4D;YAC5D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;QAEO,gBAAgB,CAAC,KAA0B;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,CAAC;YAED,IAAI,SAAkC,CAAC;YACvC,IAAI,aAAwC,CAAC;YAE7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;gBACxD,SAAS,GAAG,iBAAiB,CAAC;gBAC9B,aAAa,GAAG,IAAqB,CAAC;YACxC,CAAC;YAED,IACE,SAAS,KAAK,IAAI,CAAC,SAAS;gBAC5B,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAC3D,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACxB,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1D,MAAM,aAAa,GAAG;gBACpB,GAAG,CAAC,gBAAgB,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;aACR,CAAC;YAEnB,MAAM,WAAW,GAAG,gBAAgB,CAAC;YACrC,IAAI,CAAE,aAAqC,CAAC,MAAM,EAAE,CAAC;gBACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,MAAM,EAAE,CAAC;oBACV,aAAqC,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC9B,SAAS;gBACT,aAAa,EAAE,aAAa;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CACvC,SAA2B,EAC3B,aAAa,EACb,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CACjE,CAAC;YAEF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;QAChB,CAAC;QAEO,yBAAyB;YAC/B,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QACnC,CAAC;QAEO,uBAAuB;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QACxC,CAAC;QAEO,2BAA2B;YACjC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACrC,CAAC;QAEO,sBAAsB;YAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC;QAEM,mBAAmB;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC1C,CAAC;QAEM,qBAAqB,CAAC,IAAqB;YAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED;;;WAGG;QACH,IAAW,OAAO;YAChB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QAEM,YAAY,CACjB,MAA8B,EAC9B,UAAmB,EACnB,MAAgB;YAEhB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,MAAM;gBACN,UAAU;gBACV,MAAM,EAAE,MAAM,IAAI,IAAI;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAEM,aAAa,CAClB,YAA4B,EAC5B,YAAoB,EACpB,gBAAwB,EACxB,eAAuB,EACvB,iBAAyB,EACzB,eAAuB;YAEvB,QAAQ,YAAY,EAAE,CAAC;gBACrB,KAAK,cAAc,CAAC,GAAG;oBACrB,IAAI,CAAC,gBAAgB,CAAC,eAAe,IAAI,YAAY,CAAC;oBACtD,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,IAAI,gBAAgB,CAAC;oBAC9D,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,IAAI,eAAe,CAAC;oBAC5D,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,iBAAiB,CAAC;oBAChE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,IAAI,eAAe,CAAC;oBAC5D,MAAM;gBAER,KAAK,cAAc,CAAC,OAAO;oBACzB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,IAAI,YAAY,CAAC;oBAC1D,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,IAAI,gBAAgB,CAAC;oBAClE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,IAAI,eAAe,CAAC;oBAChE,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,IAAI,iBAAiB,CAAC;oBACpE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,IAAI,eAAe,CAAC;oBAChE,MAAM;gBAER,KAAK,cAAc,CAAC,OAAO;oBACzB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,IAAI,YAAY,CAAC;oBAC1D,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,IAAI,gBAAgB,CAAC;oBAClE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,IAAI,eAAe,CAAC;oBAChE,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,IAAI,iBAAiB,CAAC;oBACpE,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,IAAI,eAAe,CAAC;oBAChE,MAAM;gBAER,KAAK,cAAc,CAAC,KAAK;oBACvB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,IAAI,YAAY,CAAC;oBACxD,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,gBAAgB,CAAC;oBAChE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,eAAe,CAAC;oBAC9D,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,IAAI,iBAAiB,CAAC;oBAClE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,eAAe,CAAC;oBAC9D,MAAM;YACV,CAAC;YACD,IAAI,CAAC,kBAAkB,CACrB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,CAChB,CAAC;QACJ,CAAC;QAEO,kBAAkB,CACxB,YAAoB,EACpB,gBAAwB,EACxB,eAAuB,EACvB,iBAAyB,EACzB,eAAuB;YAEvB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,IAAI,YAAY,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,IAAI,gBAAgB,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,eAAe,CAAC;YAC9D,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,IAAI,iBAAiB,CAAC;YAClE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,IAAI,eAAe,CAAC;QAChE,CAAC;QAEO,KAAK,CAAC,kBAAkB,CAAC,MAAc;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC;oBACV,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,yBAAyB,MAAM,EAAE;oBAC1C,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,EAAE;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC;oBACV,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,uBAAuB,MAAM,EAAE;oBACxC,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,2EAA2E;QACnE,uBAAuB,CAC7B,MAAgC;YAEhC,IAAI,IAAI,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC;YAC5D,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,MAAM,EAAE;gBACxD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBAC1B,IAAI,CAAC;wBACH,IAAI,CAAC,MAAM,CAAC;4BACV,QAAQ,EAAE,IAAI;4BACd,OAAO,EACL,2DAA2D;gCAC3D,kEAAkE;gCAClE,wDAAwD;4BAC1D,KAAK,EAAE,CAAC;4BACR,SAAS,EAAE;gCACT,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;gCAC3C,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAChD;yBACF,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,0BAA0B;oBAC5B,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;QAED,oDAAoD;QAC5C,sBAAsB;YAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB;gBAAE,OAAO;YACrC,IAAI,CAAC;gBACH,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;YACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,IAAI;YACR,IAAI,CAAC;gBACH,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;oBAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAC9B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,kBAAkB,EACvB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACvC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,EAC5B,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAC1B,CACE,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,EAAE,CACF,IAAI,CAAC,aAAa,CAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,CAChB,EACH,IAAI,CAAC,kBAAkB,CACxB,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,kBAAkB,EACvB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACvC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,EAC5B,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,YAAY,EACjB,CACE,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,EAAE,CACF,IAAI,CAAC,aAAa,CAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,CAChB,CACJ,CAAC;oBACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,kBAAkB,EACvB,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACvC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,EAC5B,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,YAAY,EACjB,CACE,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,EAAE,CACF,IAAI,CAAC,aAAa,CAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,CAChB,CACJ,CAAC;oBACF,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;wBAC9B,8EAA8E;wBAC9E,8CAA8C;wBAC9C,iEAAiE;wBACjE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACzC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;4BAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;4BACpD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gCAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;4BAC9B,CAAC;wBACH,CAAC;wBACD,MAAM,GAAG,GACP,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,EAAE,CAAC;wBAE5C,yDAAyD;wBACzD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;4BACf,IAAI,CAAC,MAAM,CAAC;gCACV,QAAQ,EAAE,MAAM;gCAChB,OAAO,EAAE,6BAA6B;gCACtC,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;4BACH,IAAI,CAAC,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;gCAC5C,GAAG,EAAE,OAAO;6BACb,CAAC,CAAC;4BACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;4BAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CACjC,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;4BAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,EAAE,CACtC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;4BACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;4BACnD,IAAI,CAAC,KAAK,GAAG;gCACX,IAAI,EAAE,OAAO;gCACb,kEAAkE;gCAClE,MAAM,EAAE;oCACN,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;iCACkC;gCACxD,EAAE,EAAE,GAAG,CAAC,MAAM;6BACf,CAAC;4BACF,IAAI,CAAC,+BAA+B,EAAE,CAAC;4BACvC,6DAA6D;4BAC7D,MAAM,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;4BAC9C,OAAO;wBACT,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC;4BACV,QAAQ,EAAE,MAAM;4BAChB,OAAO,EAAE,yBAAyB;4BAClC,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;wBAEH,oCAAoC;wBACpC,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;wBAClC,IAAI,WAAW,GAAG,KAAK,CAAC;wBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;4BACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;4BACpD,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;4BACxC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;4BAC1D,WAAW,GAAG,IAAI,CAAC;wBACrB,CAAC;wBAED,qBAAqB;wBACrB,MAAM,QAAQ,GAAG;4BACf,0BAA0B;4BAC1B,gBAAgB;4BAChB,4BAA4B;4BAC5B,yBAAyB;4BACzB,oBAAoB;yBACrB,CAAC;wBACF,IAAI,WAAW,GAAa,EAAE,CAAC;wBAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC;wBACrC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;4BACpB,gBAAgB;4BAChB,WAAW,GAAG,EAAE,CAAC;wBACnB,CAAC;6BAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;4BACjC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC5C,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;wBAC9B,CAAC;wBAED,wCAAwC;wBACxC,IAAI,GAAG,CAAC,QAAQ;4BAAE,WAAW,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;wBACpE,IAAI,GAAG,CAAC,MAAM;4BAAE,WAAW,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;wBACzD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;4BAClB,GAAG,CAAC,QAAQ,GAAG,gBAAgB,CAAC;wBAClC,CAAC;wBACD,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;4BAChD,WAAW,CAAC,IAAI,CACd,iBAAiB,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAClE,CAAC;wBACJ,CAAC;wBACD,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;4BAC9C,WAAW,CAAC,IAAI,CACd,+BAA+B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,iBAAiB,CAAC,EAAE,CACtE,CAAC;wBACJ,CAAC;wBACD,IAAI,GAAG,CAAC,QAAQ;4BAAE,WAAW,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;wBAC7D,IAAI,GAAG,CAAC,iBAAiB;4BACvB,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;wBAClD,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM;4BACnB,WAAW,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;wBACzD,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM;4BACnB,WAAW,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;wBAE9D,8BAA8B;wBAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;4BAAE,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;wBAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;wBAC1C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC;4BAC7C,UAAU,EAAE,GAAG,CAAC,cAAc;4BAC9B,WAAW;4BACX,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,WAAW;4BACX,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;4BACtC,YAAY,EAAE,CAAC,SAAS;yBACzB,CAAC,CAAC;wBACH,IAAI,SAAS,EAAE,CAAC;4BACd,IAAI,CAAC;gCACH,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;4BAC5B,CAAC;4BAAC,MAAM,CAAC;gCACP,kDAAkD;4BACpD,CAAC;wBACH,CAAC;wBACD,IAAI,CAAC,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;4BACpC,GAAG,EAAE,OAAO;4BACZ,yBAAyB,EAAE,GAAG;yBAC/B,CAAC,CAAC;wBACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;wBAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CACjC,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,EAAE,CACtC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACnD,IAAI,CAAC,KAAK,GAAG;4BACX,IAAI,EAAE,OAAO;4BACb,MAAM;4BACN,EAAE;4BACF,WAAW;4BACX,kBAAkB,EAAE,WAAW;4BAC/B,mBAAmB,EAAE,CAAC,CAAC,GAAG,CAAC,mBAAmB;yBAC/C,CAAC;wBACF,IAAI,CAAC,+BAA+B,EAAE,CAAC;wBACvC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;wBACpD,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;4BAC5B,IAAI,CAAC,uBAAuB,CAAC;gCAC3B,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,SAAS;gCACd,WAAW;gCACX,kBAAkB,EAAE,WAAW;gCAC/B,mBAAmB,EAAE,CAAC,CAAC,GAAG,CAAC,mBAAmB;6BAC/C,CAAC,CAAC;wBACL,CAAC;wBAED,6DAA6D;wBAC7D,MAAM,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC;wBAC9C,OAAO;oBACT,CAAC;oBAED,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;wBACpC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAC7D,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;4BAC1B,MAAM,IAAI,+BAA+B,CACvC,gDAAgD,EAChD,yBAAyB,CAC1B,CAAC;wBACJ,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC;4BACV,QAAQ,EAAE,MAAM;4BAChB,OAAO,EAAE,8BAA8B;4BACvC,KAAK,EAAE,CAAC;yBACT,CAAC,CAAC;wBACH,MAAM,iBAAiB,GACrB,IAAI,CAAC,IAAI,CAAC,8BAA8B,IAAI,EAAE,CAAC;wBACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC;wBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;wBAC1C,MAAM,sBAAsB,GAC1B,iBAAiB,KAAK,SAAS;4BAC7B,CAAC,CAAC,EAAE,GAAG,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE;4BACxD,CAAC,CAAC,iBAAiB,CAAC;wBACxB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC;gCACtC,MAAM;gCACN,SAAS;gCACT,MAAM,EAAE,IAAI,CAAC,MAAM;6BACpB,CAAC,CAAC;4BACH,MAAM,oBAAoB,GAAG;gCAC3B,SAAS,EAAE,sBAAsB,CAAC,SAAS,IAAI,SAAS;gCACxD,GAAG,sBAAsB;gCACzB,eAAe,EAAE;oCACf,GAAG,CAAC,sBAAsB,CAAC,eAAe,IAAI,EAAE,CAAC;oCACjD,QAAQ,EAAE,sBAAsB,CAAC,eAAe,EAAE,QAAQ,IAAI;wCAC5D,KAAK,EAAE,IAAI;wCACX,MAAM,EAAE,GAAG;qCACZ;iCACF;gCACD,YAAY,EAAE;oCACZ,GAAG,CAAC,sBAAsB,CAAC,YAAY,IAAI,EAAE,CAAC;oCAC9C,SAAS,EAAE,MAAM;iCAClB;6BACF,CAAC;4BACF,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gCACzD,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM;gCAC3C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gCAC3C,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;gCACpC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gCAC5B,8BAA8B,EAAE,oBAAoB;gCACpD,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB;6BACrD,CAAC,CAAC;4BACH,IAAI,CAAC,SAAS,EAAE,CAAC;gCACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACxB,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;wBAC7C,CAAC;wBACD,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,MAAM,wBAAwB,CAC1D,MAAM,EACN,SAAS,EACT,sBAAsB,EACtB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAC/B,CAAC;wBACF,IAAI,CAAC,GAAG,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;4BACpC,GAAG,EAAE,aAAa;4BAClB,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B,CAAC,CAAC;wBACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;wBAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,CACjC,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,EAAE,EAAE,CACtC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACnD,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;wBACxD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;wBACtC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;4BACnC,IAAI,CAAC,uBAAuB,CAAC;gCAC3B,IAAI,EAAE,eAAe;gCACrB,SAAS;gCACT,MAAM;gCACN,SAAS;6BACV,CAAC,CAAC;wBACL,CAAC;wBAED,MAAM,IAAI,CAAC,kCAAkC,EAAE,CAAC;wBAEhD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;wBACjD,IAAI,QAA4B,CAAC;wBACjC,IAAI,CAAC;4BACH,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAE9C,CAAC;4BACF,QAAQ,GAAG,GAAG,EAAE,WAAW,CAAC;wBAC9B,CAAC;wBAAC,MAAM,CAAC;4BACP,6DAA6D;wBAC/D,CAAC;wBACD,MAAM,UAAU,GAAG,wCAAwC,SAAS,EAAE,CAAC;wBACvE,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC;wBACxC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;wBAEpC,IAAI,CAAC;4BACH,IAAI,CAAC,MAAM,CAAC;gCACV,QAAQ,EAAE,MAAM;gCAChB,OAAO,EAAE,OAAO;oCACd,CAAC,CAAC,IAAI,CAAC,SAAS;wCACd,CAAC,CAAC,6BAA6B;wCAC/B,CAAC,CAAC,6BAA6B;oCACjC,CAAC,CAAC,6BAA6B;gCACjC,KAAK,EAAE,CAAC;gCACR,SAAS,EAAE;oCACT,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;oCACjD,GAAG,CAAC,QAAQ,IAAI;wCACd,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;qCAC9C,CAAC;oCACF,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;iCAChD;6BACF,CAAC,CAAC;wBACL,CAAC;wBAAC,MAAM,CAAC;4BACP,wCAAwC;wBAC1C,CAAC;wBACD,OAAO;oBACT,CAAC;oBAED,MAAM,QAAQ,GAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;oBACtC,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qEAAqE;gBACrE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACH,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxC,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,iEAAiE;QACzD,KAAK,CAAC,6BAA6B,CACzC,GAA8B;YAE9B,IAAI,CAAC;gBACH,qBAAqB;gBACrB,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;oBAClE,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI;yBACjB,IAAI,CAAC,6BAA6B,EAAE;wBACnC,QAAQ;wBACR,YAAY,EAAE,GAAG,CAAC,aAAa;wBAC/B,aAAa,EAAE,IAAI;qBACpB,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;QAEO,KAAK,CAAC,kCAAkC;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;oBAC7C,QAAQ,EAAE,OAAO;oBACjB,YAAY,EAAE,WAAW;oBACzB,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;QAEO,+BAA+B;YACrC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;YACtC,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACvC,CAAC;QAaD,KAAK,CAAC,GAAG,CAAC,KAAsB,EAAE,OAAoB;YACpD,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBAC9D,IAAI,CAAC,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAC;gBAEtE,IAAI,SAAoB,CAAC;gBAEzB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,wEAAwE;oBACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAErD,oEAAoE;oBACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;oBAChC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACnB,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;4BACnC,KAAK;4BACL,OAAO;4BACP,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE;yBAC9B,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,kBAAkB,GACtB,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC;4BACzD,CAAC,CAAC,OAAO,CAAC,OAAO;4BACjB,CAAC,CAAC,SAAS,CAAC;wBAChB,MAAM,mBAAmB,GAAG,kBAAkB,CAC5C,kBAAkB,EAClB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,CAAC,CAChC,CAAC;wBACF,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CACvD,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EACtB,MAAM,EACN,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EACrC,mBAAmB,EACnB,OAAO,EAAE,SAAS,CACnB,CAAC;oBACJ,CAAC;oBAED,+CAA+C;oBAC/C,IAAI,CAAC,YAAY,CACf,KAAK,EACL;wBACE,aAAa,EAAE,KAAK;qBACrB,EACD,SAAS,CACV,CAAC;oBACF,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,mBAAmB;gBACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC/C,MAAM,IAAI,6BAA6B,CACrC,gEAAgE,CACjE,CAAC;gBACJ,CAAC;gBAED,uCAAuC;gBACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM,iBAAiB,GAAG,OAAO,EAAE,KAAK;oBACtC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtC,CAAC,CAAC,SAAS,CAAC;gBAEd,IAAI,eAAe,GAER,IAAI,CAAC;gBAChB,MAAM,WAAW,GACf,OAAO,KAAK,KAAK,QAAQ;oBACzB,CAAC,IAAI,CAAC,sBAAsB,EAAE;oBAC9B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACxB,IAAI,WAAW,EAAE,CAAC;oBAChB,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAClD,KAAK,EACL,IAAI,EACJ,OAAO,EAAE,SAAS,CACnB,CAAC;oBACF,IAAI,eAAe,EAAE,CAAC;wBACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAChD,eAAe,EACf,IAAI,EACJ,OAAO,EAAE,OAAO,EAChB,iBAAiB,CAClB,CAAC;wBACF,IAAI,YAAY,EAAE,CAAC;4BACjB,IAAI,CAAC,YAAY,CACf,KAAK,EACL;gCACE,WAAW,EAAE,KAAK;gCAClB,SAAS,EAAE,OAAO,EAAE,SAAS;gCAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;gCACzB,QAAQ,EAAE,IAAI;6BACf,EACD,YAAY,CACb,CAAC;4BACF,OAAO,YAAY,CAAC;wBACtB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,aAAa,GAAqB;oBACtC,WAAW,EAAE,KAAK;oBAClB,IAAI;oBACJ,SAAS,EAAE,OAAO,EAAE,SAAS;oBAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;oBACzB,KAAK,EAAE,OAAO,EAAE,KAAK;iBACtB,CAAC;gBACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnC,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvD,CAAC;gBACD,gEAAgE;gBAChE,IAAI,CAAC,YAAY,CACf,KAAK,EACL;oBACE,WAAW,EAAE,KAAK;oBAClB,SAAS,EAAE,OAAO,EAAE,SAAS;oBAC7B,OAAO,EAAE,OAAO,EAAE,OAAO;iBAC1B,EACD,SAAS,CACV,CAAC;gBAEF,IACE,eAAe;oBACf,SAAS,CAAC,OAAO;oBACjB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;oBAChC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAC5B,CAAC;oBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC;QA4BD,KAAK,CAAC,OAAO,CACX,CAA2B,EAC3B,CAAuC,EACvC,CAAkB;YAElB,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBAC9D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,MAAM,IAAI,4BAA4B,CAAC,WAAW,CAAC,CAAC;gBACtD,CAAC;gBAED,iBAAiB;gBACjB,IAAI,WAA+B,CAAC;gBACpC,IAAI,MAAsC,CAAC;gBAC3C,IAAI,OAAmC,CAAC;gBAExC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,WAAW,GAAG,CAAC,CAAC;oBAChB,MAAM,WAAW,GAAG,CAAC,GAAY,EAA6B,EAAE,CAC9D,CAAC,CAAC,GAAG;wBACL,OAAO,GAAG,KAAK,QAAQ;wBACvB,OAAO,IAAI,GAAG;wBACd,WAAW,IAAI,GAAG,CAAC;oBACrB,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnB,MAAM,GAAG,CAAuB,CAAC;wBACjC,OAAO,GAAG,CAA+B,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,CAA+B,CAAC;oBAC5C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,4BAA4B;oBAC5B,OAAO,GAAI,CAAoB,IAAI,SAAS,CAAC;gBAC/C,CAAC;gBAED,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,IAAI,6BAA6B,CACrC,gDAAgD,CACjD,CAAC;gBACJ,CAAC;gBAED,uDAAuD;gBACvD,MAAM,eAAe,GACnB,WAAW,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC;gBAEzD,+CAA+C;gBAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEnD,MAAM,aAAa,GAA6C;oBAC9D,WAAW;oBACX,MAAM,EAAE,eAAiD;oBACzD,KAAK,EAAE,OAAO,EAAE,KAAK;oBACrB,OAAO,EAAE,OAAO,EAAE,OAAO;oBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;oBAC3B,IAAI;iBACL,CAAC;gBACF,IAAI,MAA8D,CAAC;gBACnE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnC,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;wBACpC,WAAW,EAAE,aAAa,CAAC,WAAW;wBACtC,MAAM,EAAE,aAAa,CAAC,MAAM;wBAC5B,OAAO;wBACP,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM;wBACJ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAqB,aAAa,CAAC,CAAC;gBACzE,CAAC;gBACD,MAAM,uBAAuB,GAAG,eAAe;oBAC7C,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;oBAC/B,CAAC,CAAC,SAAS,CAAC;gBACd,IAAI,CAAC,YAAY,CACf,SAAS,EACT;oBACE,WAAW;oBACX,QAAQ,EAAE,OAAO,EAAE,QAAQ;oBAC3B,OAAO,EAAE,OAAO,EAAE,OAAO;oBACzB,MAAM,EAAE,uBAAuB;iBAChC,EACD,MAAM,CACP,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QAYD,KAAK,CAAC,OAAO,CACX,CAA2B,EAC3B,CAAkB;YAElB,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBAC9D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,MAAM,IAAI,4BAA4B,CAAC,WAAW,CAAC,CAAC;gBACtD,CAAC;gBAED,iBAAiB;gBACjB,IAAI,WAA+B,CAAC;gBACpC,IAAI,OAAmC,CAAC;gBACxC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,WAAW,GAAG,CAAC,CAAC;oBAChB,OAAO,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,CAA+B,CAAC;gBAC5C,CAAC;gBAED,oCAAoC;gBACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEnD,MAAM,aAAa,GAAyB;oBAC1C,WAAW;oBACX,KAAK,EAAE,OAAO,EAAE,KAAK;oBACrB,OAAO,EAAE,OAAO,EAAE,OAAO;oBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;oBAC3B,IAAI,EAAE,IAAK;iBACZ,CAAC;gBAEF,IAAI,OAAiB,CAAC;gBACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnC,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;wBACrC,WAAW;wBACX,OAAO;wBACP,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC7D,CAAC;gBAED,kDAAkD;gBAClD,IAAI,CAAC,YAAY,CACf,SAAS,EACT;oBACE,WAAW;oBACX,OAAO,EAAE,OAAO,EAAE,OAAO;iBAC1B,EACD,OAAO,CACR,CAAC;gBACF,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,UAAU;YACR,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxC,MAAM,IAAI,4BAA4B,CAAC,cAAc,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,6CAA6C;QAC7C,IAAW,OAAO;YAChB,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;QAED,6DAA6D;QAC7D,KAAK,CAAC,KAAK,CAAC,IAA0B;YACpC,iEAAiE;YACjE,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,KAAK;gBAAE,OAAO;YAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;YAE1C,gEAAgE;YAChE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC;oBACP,sBAAsB;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,4BAA4B;gBAC5B,IAAI,CAAC;oBACH,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBAED,qCAAqC;gBACrC,IAAI,CAAC;oBACH,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBAED,oBAAoB;gBACpB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;gBAC1B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBAED,4EAA4E;gBAC5E,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9B,MAAM,mBAAmB,CAAC;wBACxB,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;wBAC1C,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;wBACjD,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;qBACpD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAE9B,uBAAuB;gBACvB,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,+BAA+B,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAChC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,8DAA8D;QACtD,uBAAuB;YAC7B,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;YAEtC,gEAAgE;YAChE,IAAI,CAAC,MAAM;gBACT,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACrE,IAAI,CAAC,SAAS;gBACZ,SAAS;oBACP,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAEpE,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM;oBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACjD,IAAI,CAAC,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBACvD,MAAM,IAAI,+BAA+B,CACvC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAClB,aAAa,CACd,CAAC;YACJ,CAAC;YAED,uDAAuD;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAEhC,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,+BAA+B;gBACxC,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC/B,CAAC;QAED,IAAW,MAAM;YACf,2CAA2C;YAC3C,2FAA2F;YAC3F,sFAAsF;YACtF,OAAO,CAAC,OAAgB,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC,CAAC;QACJ,CAAC;QAED;;;WAGG;QACK,KAAK,CAAC,iBAAiB,CAC7B,IAAqD;YAErD,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1D,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1D,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,CAAC;oBACV,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,oBAAoB;oBAC7B,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBACtE,CAAC,CAAC;gBACH,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,IAAI,6BAA6B,CACrC,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QAEO,gBAAgB,CAAC,CAAU;YACjC,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,IAAI;gBACV,OAAQ,CAAoB,CAAC,OAAO,KAAK,UAAU,CACpD,CAAC;QACJ,CAAC;QAEO,gBAAgB,CAAC,CAAU;YACjC,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,IAAI;gBACV,OAAQ,CAAoB,CAAC,OAAO,KAAK,UAAU,CACpD,CAAC;QACJ,CAAC;QAEO,eAAe,CAAC,CAAU;YAChC,OAAO,CACL,OAAO,CAAC,KAAK,QAAQ;gBACrB,CAAC,KAAK,IAAI;gBACV,OAAQ,CAAmB,CAAC,MAAM,KAAK,UAAU,CAClD,CAAC;QACJ,CAAC;QAED,6EAA6E;QACrE,KAAK,CAAC,WAAW,CAAC,IAAc;YACtC,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,4BAA4B,CAAC,eAAe,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;QACrC,CAAC;QAEO,KAAK,CAAC,iBAAiB,CAAC,KAAc;YAC5C,IAAI,KAAK,YAAY,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjE,OAAO,KAAa,CAAC;YACvB,CAAC;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,IAAI;oBACP,MAAM,IAAI,kBAAkB,CAC1B,iDAAiD,CAClD,CAAC;gBACJ,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,IAAI;oBACP,MAAM,IAAI,kBAAkB,CAC1B,iDAAiD,CAClD,CAAC;gBACJ,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,IAAI;oBACP,MAAM,IAAI,kBAAkB,CAC1B,gDAAgD,CACjD,CAAC;gBACJ,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,IAAI,6BAA6B,CAAC,0BAA0B,CAAC,CAAC;QACtE,CAAC;QAEO,KAAK,CAAC,4BAA4B;YACxC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CACrD,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAqC,CAAC;gBACvC,IAAI,CAAC,QAAQ,EAAE,MAAM;oBAAE,OAAO;gBAE9B,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACtD,MAAM,OAAO,GACX,QAAQ,CAAC,MAAM,KAAK,WAAW;oBAC7B,CAAC,CAAC,6CAA6C,SAAS,GAAG;oBAC3D,CAAC,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAEvD,IAAI,CAAC,MAAM,CAAC;oBACV,QAAQ,EAAE,IAAI;oBACd,OAAO;oBACP,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED;;;WAGG;QACK,KAAK,CAAC,qBAAqB,CACjC,OAAgC,EAChC,oBAG6B,EAC7B,oBAA4B;YAQ5B,4EAA4E;YAC5E,yDAAyD;YACzD,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC;oBACV,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,6KAA6K;oBAC/K,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY;gBACjC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAE3B,MAAM,cAAc,GAAG,OAAO,EAAE,KAAK;gBACnC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAEnB,MAAM,sBAAsB,GAAG,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,KAAK,CAAC;YAEzE,MAAM,OAAO,GAAG,IAAI,cAAc,CAChC,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,cAAc,EACd,sBAAsB,EACtB,OAAO,EAAE,YAAY,EACrB,KAAK,EACL,OAAO,EAAE,IAAI,CACd,CAAC;YAEF,MAAM,eAAe,GACnB,OAAO,oBAAoB,KAAK,QAAQ;gBACtC,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;gBACvC,CAAC,CAAC,oBAAoB,CAAC;YAE3B,MAAM,mBAAmB,GAAG,eAAe,CAAC,SAE/B,CAAC;YACd,IAAI,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;gBAC9C,MAAM,IAAI,6BAA6B,CACrC,gFAAgF,CACjF,CAAC;YACJ,CAAC;YAED,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC1E,IAAI,CAAC,GAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;YAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC;gBAClE,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;oBACnC,WAAW;oBACX,OAAO,EAAE,gBAAgB;oBACzB,eAAe,EAAE,oBAAoB;oBACrC,IAAI,EAAE,MAAM,IAAI,CAAC,GAAI,CAAC,eAAe,EAAE;iBACxC,CAAC;gBACJ,CAAC,CAAC,IAAI,CAAC;YAET,OAAO;gBACL,OAAO;gBACP,eAAe;gBACf,WAAW;gBACX,YAAY;gBACZ,SAAS,EAAE,cAAc;aAC1B,CAAC;QACJ,CAAC;QAmBD,KAAK,CAAC,OAAqB;YAQzB,6EAA6E;YAC7E,MAAM,SAAS,GACb,OAAO,EAAE,IAAI,KAAK,SAAS;gBACzB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK;gBACxB,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;YAE5B,yCAAyC;YACzC,IAAI,OAAO,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC;oBACV,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,kIAAkI;oBACpI,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,4BAA4B;gBACrC,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE;oBACT,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC7D,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvD,KAAK,EAAE;wBACL,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS;wBACnE,IAAI,EAAE,QAAQ;qBACf;oBACD,YAAY,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACpE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtE,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI;wBAC3B,YAAY,EAAE;4BACZ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;4BAC3C,IAAI,EAAE,QAAQ;yBACf;qBACF,CAAC;iBACH;aACF,CAAC,CAAC;YAEH,oGAAoG;YACpG,IAAI,SAAS,EAAE,CAAC;gBACd,iFAAiF;gBACjF,4BAA4B,CAAC;oBAC3B,cAAc,EAAE,IAAI,CAAC,YAAY;oBACjC,WAAW,EAAE,OAAO;iBACrB,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,IAAI;oBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,IAAI,CAAC,kBAAkB;iBAC3B,CAAC;gBAEF,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;gBAErE,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;gBACxD,CAAC;gBAED,MAAM,oBAAoB,GACxB,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO;oBACL,OAAO,EAAE,KAAK,EAAE,oBAAkD,EAAE,EAAE,CACpE,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;wBACjD,4BAA4B,CAAC;4BAC3B,cAAc,EAAE,IAAI,CAAC,YAAY;4BACjC,WAAW,EAAE,OAAO;4BACpB,cAAc,EACZ,OAAO,oBAAoB,KAAK,QAAQ;gCACtC,CAAC,CAAC,oBAAoB;gCACtB,CAAC,CAAC,IAAI;yBACX,CAAC,CAAC;wBAEH,iBAAiB,CAAC,mBAAmB,CAAC;4BACpC,UAAU,EAAE,eAAe;4BAC3B,IAAI,EAAE,CAAC,oBAAoB,CAAC;yBAC7B,CAAC,CAAC;wBACH,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY;4BACjC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;4BACzD,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;wBAE3B,MAAM,OAAO,GAAG,IAAI,iBAAiB,CACnC,IAAI,EACJ,IAAI,CAAC,MAAM,EACX;4BACE,SAAS;4BACT,aAAa;4BACb,wBAAwB,EACtB,OAAO,CAAC,YAAY;gCACpB,8HAA8H;yBACjI,EACD,KAAK,CACN,CAAC;wBAEF,MAAM,eAAe,GACnB,OAAO,oBAAoB,KAAK,QAAQ;4BACtC,CAAC,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;4BACvC,CAAC,CAAC,oBAAoB,CAAC;wBAC3B,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;4BACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACjD,eAAe,CAAC,IAAI,CACrB,CAAC;4BACF,IAAI,CAAC,GAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;wBAC1C,CAAC;wBACD,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;wBACvD,MAAM,gBAAgB,GACpB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;wBAE1D,IAAI,YAAY,GAA6B,IAAI,CAAC;wBAClD,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,eAAe,EAAE,CAAC;4BACpD,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;gCAClD,WAAW;gCACX,OAAO,EAAE,gBAAgB;gCACzB,eAAe,EAAE,oBAAoB;gCACrC,IAAI,EAAE,SAAS;6BAChB,CAAC,CAAC;4BACH,IAAI,YAAY,EAAE,CAAC;gCACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gCAC/D,IAAI,QAAQ,EAAE,CAAC;oCACb,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;oCAC5D,OAAO,QAAQ,CAAC;gCAClB,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAI,UAAU,GAAsB,EAAE,CAAC;wBACvC,MAAM,mBAAmB,GACvB,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC3D,IAAI,mBAAmB,EAAE,CAAC;4BACxB,IAAI,CAAC,yBAAyB,EAAE,CAAC;wBACnC,CAAC;wBAED,IAAI,MAAmB,CAAC;wBACxB,IAAI,CAAC;4BACH,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gCACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,eAAe,EAAE,CAAC;gCAC/C,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CACxC,OAAO,EACP,eAAe,EACf,IAAI,CAAC,WAAW,EAAE,EAClB,CAAC,CAAC,YAAY,CACf,CAAC;gCACF,IAAI,YAAY,EAAE,CAAC;oCACjB,MAAM,gBAAgB,GACpB,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC;oCAChD,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;gCAChE,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;4BACvD,CAAC;4BACD,IAAI,mBAAmB,EAAE,CAAC;gCACxB,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;4BAC9C,CAAC;4BAED,IACE,mBAAmB;gCACnB,YAAY;gCACZ,MAAM,CAAC,OAAO;gCACd,UAAU,CAAC,MAAM,GAAG,CAAC,EACrB,CAAC;gCACD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;4BAChE,CAAC;4BAED,OAAO,MAAM,CAAC;wBAChB,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,IAAI,mBAAmB;gCAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC;4BAC5D,MAAM,GAAG,CAAC;wBACZ,CAAC;gCAAS,CAAC;4BACT,IAAI,mBAAmB,EAAE,CAAC;gCACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;4BACrC,CAAC;4BACD,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;wBAC5C,CAAC;oBACH,CAAC,CAAC;iBACL,CAAC;YACJ,CAAC;YAED,mCAAmC;YACnC,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC3E,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;YAE7C,OAAO;gBACL,OAAO,EAAE,KAAK,EACZ,oBAG6B,EACa,EAAE,CAC5C,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;oBACjD,4BAA4B,CAAC;wBAC3B,cAAc,EAAE,IAAI,CAAC,YAAY;wBACjC,WAAW,EAAE,OAAO;wBACpB,cAAc,EACZ,OAAO,oBAAoB,KAAK,QAAQ;4BACtC,CAAC,CAAC,oBAAoB;4BACtB,CAAC,CAAC,IAAI;wBACV,WAAW;qBACZ,CAAC,CAAC;oBACH,iBAAiB,CAAC,mBAAmB,CAAC;wBACpC,UAAU,EAAE,eAAe;wBAC3B,IAAI,EAAE,CAAC,oBAAoB,CAAC;qBAC7B,CAAC,CAAC;oBAEH,iBAAiB;oBACjB,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,GACzD,MAAM,IAAI,CAAC,qBAAqB,CAC9B,OAAO,EACP,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;wBAEJ,IAAI,YAAY,EAAE,CAAC;4BACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CACtD,YAAY,EACZ,SAAS,CACV,CAAC;4BACF,IAAI,QAAQ,EAAE,CAAC;gCACb,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gCAC5D,OAAO,QAAQ,CAAC;4BAClB,CAAC;wBACH,CAAC;wBAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CACvC,eAA4C,CAC7C,CAAC;wBAEF,IAAI,YAAY,EAAE,CAAC;4BACjB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACxD,YAAY,EACZ,YAAY,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,EACtC,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,EACpC,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CACzC,CAAC;4BACF,2EAA2E;4BAC3E,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;4BAC1C,OAAO,aAAa,CAAC;wBACvB,CAAC;wBAED,2EAA2E;wBAC3E,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;wBAC1C,OAAO,YAAY,CAAC;oBACtB,CAAC;oBAED,+BAA+B;oBAC/B,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,GACzD,MAAM,IAAI,CAAC,qBAAqB,CAC9B,OAAO,EACP,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;oBAEJ,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC9C,YAAY,EACZ,SAAS,CACV,CAAC;wBACF,IAAI,QAAQ,EAAE,CAAC;4BACb,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC5D,OAAO,QAAQ,CAAC;wBAClB,CAAC;oBACH,CAAC;oBAED,IAAI,UAAU,GAAsB,EAAE,CAAC;oBACvC,MAAM,mBAAmB,GACvB,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC3D,IAAI,mBAAmB,EAAE,CAAC;wBACxB,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBACnC,CAAC;oBACD,IAAI,MAAmB,CAAC;oBAExB,IAAI,CAAC;wBACH,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;4BACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,eAAe,EAAE,CAAC;4BAC/C,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CACxC,OAAO,IAAI,EAAE,EACb,eAAsC,EACtC,IAAI,CAAC,WAAW,EAAE,EAClB,CAAC,CAAC,YAAY,CACf,CAAC;4BACF,IAAI,YAAY,EAAE,CAAC;gCACjB,MAAM,gBAAgB,GACpB,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE,CAAC;gCAChD,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;4BAChE,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAC5B,eAAsC,CACvC,CAAC;wBACJ,CAAC;wBACD,IAAI,mBAAmB,EAAE,CAAC;4BACxB,UAAU,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAC9C,CAAC;wBAED,IACE,mBAAmB;4BACnB,YAAY;4BACZ,MAAM,CAAC,OAAO;4BACd,UAAU,CAAC,MAAM,GAAG,CAAC,EACrB,CAAC;4BACD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;wBAChE,CAAC;wBAED,OAAO,MAAM,CAAC;oBAChB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,mBAAmB;4BAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC;wBAC5D,MAAM,GAAG,CAAC;oBACZ,CAAC;4BAAS,CAAC;wBACT,IAAI,mBAAmB,EAAE,CAAC;4BACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;wBACrC,CAAC;wBACD,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;oBAC5C,CAAC;gBACH,CAAC,CAAC;aACL,CAAC;QACJ,CAAC;;;SA74DU,EAAE;AAg5Df,SAAS,eAAe,CAAC,CAAU;IACjC,OAAO,CACL,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,UAAU,IAAK,CAA6B,CAC7E,CAAC;AACJ,CAAC","sourcesContent":["import { EventEmitter } from \"events\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport path from \"path\";\nimport process from \"process\";\nimport { v7 as uuidv7 } from \"uuid\";\nimport { z } from \"zod\";\nimport {\n InferStagehandSchema,\n StagehandZodSchema,\n toJsonSchema,\n} from \"./zodCompat.js\";\nimport { loadApiKeyFromEnv } from \"../utils.js\";\nimport { extractModelName } from \"../modelUtils.js\";\nimport { StagehandLogger, LoggerOptions } from \"../logger.js\";\nimport { ActCache } from \"./cache/ActCache.js\";\nimport { AgentCache } from \"./cache/AgentCache.js\";\nimport { CacheStorage } from \"./cache/CacheStorage.js\";\nimport { ActHandler } from \"./handlers/actHandler.js\";\nimport { ExtractHandler } from \"./handlers/extractHandler.js\";\nimport { ObserveHandler } from \"./handlers/observeHandler.js\";\nimport { V3AgentHandler } from \"./handlers/v3AgentHandler.js\";\nimport { V3CuaAgentHandler } from \"./handlers/v3CuaAgentHandler.js\";\nimport { createBrowserbaseSession } from \"./launch/browserbase.js\";\nimport { launchLocalChrome } from \"./launch/local.js\";\nimport { LLMClient } from \"./llm/LLMClient.js\";\nimport { LLMProvider } from \"./llm/LLMProvider.js\";\nimport {\n bindInstanceLogger,\n unbindInstanceLogger,\n withInstanceLogContext,\n} from \"./logger.js\";\nimport { cleanupLocalBrowser } from \"./shutdown/cleanupLocal.js\";\nimport { startShutdownSupervisor } from \"./shutdown/supervisorClient.js\";\nimport { resolveTools } from \"./mcp/utils.js\";\nimport {\n ActHandlerParams,\n ExtractHandlerParams,\n ObserveHandlerParams,\n AgentReplayStep,\n InitState,\n AgentCacheContext,\n} from \"./types/private/index.js\";\nimport type {\n ShutdownSupervisorConfig,\n ShutdownSupervisorHandle,\n} from \"./types/private/shutdown.js\";\nimport {\n AgentConfig,\n AgentExecuteCallbacks,\n AgentExecuteOptions,\n AgentStreamExecuteOptions,\n AgentResult,\n AVAILABLE_CUA_MODELS,\n LogLine,\n StagehandMetrics,\n Action,\n ActOptions,\n ActResult,\n defaultExtractSchema,\n ExtractOptions,\n HistoryEntry,\n ObserveOptions,\n pageTextSchema,\n V3FunctionName,\n AvailableModel,\n ClientOptions,\n ModelConfiguration,\n LocalBrowserLaunchOptions,\n V3Options,\n AnyPage,\n PatchrightPage,\n PlaywrightPage,\n PuppeteerPage,\n CuaModelRequiredError,\n StagehandInvalidArgumentError,\n StagehandNotInitializedError,\n MissingEnvironmentVariableError,\n StagehandInitError,\n AgentStreamResult,\n} from \"./types/public/index.js\";\nimport { V3Context } from \"./understudy/context.js\";\nimport { Page } from \"./understudy/page.js\";\nimport { resolveModel } from \"../modelUtils.js\";\nimport { StagehandAPIClient } from \"./api.js\";\nimport { validateExperimentalFeatures } from \"./agent/utils/validateExperimentalFeatures.js\";\nimport { SessionFileLogger, logStagehandStep } from \"./flowLogger.js\";\nimport { createTimeoutGuard } from \"./handlers/handlerUtils/timeoutGuard.js\";\nimport { ActTimeoutError } from \"./types/public/sdkErrors.js\";\n\nconst DEFAULT_MODEL_NAME = \"openai/gpt-4.1-mini\";\nconst DEFAULT_VIEWPORT = { width: 1288, height: 711 };\n\ntype ResolvedModelConfiguration = {\n modelName: AvailableModel;\n clientOptions?: ClientOptions;\n};\n\nfunction resolveModelConfiguration(\n model?: V3Options[\"model\"],\n): ResolvedModelConfiguration {\n if (!model) {\n return { modelName: DEFAULT_MODEL_NAME };\n }\n\n if (typeof model === \"string\") {\n return { modelName: model as AvailableModel };\n }\n\n if (model && typeof model === \"object\") {\n const { modelName, ...clientOptions } = model;\n if (!modelName) {\n throw new StagehandInvalidArgumentError(\n \"model.modelName is required when providing client options.\",\n );\n }\n return {\n modelName,\n clientOptions: clientOptions as ClientOptions,\n };\n }\n\n return { modelName: DEFAULT_MODEL_NAME };\n}\n\n/**\n * V3\n *\n * Purpose:\n * A high-level orchestrator for Stagehand V3. Abstracts away whether the browser\n * runs **locally via Chrome** or remotely on **Browserbase**, and exposes simple\n * entrypoints (`act`, `extract`, `observe`) that delegate to the corresponding\n * handler classes.\n *\n * Responsibilities:\n * - Bootstraps Chrome or Browserbase, ensures a working CDP WebSocket, and builds a `V3Context`.\n * - Manages lifecycle: init, context access, cleanup.\n * - Bridges external page objects (Playwright/Puppeteer) into internal frameIds for handlers.\n * - Provides a stable API surface for downstream code regardless of runtime environment.\n */\nexport class V3 {\n private readonly opts: V3Options;\n private state: InitState = { kind: \"UNINITIALIZED\" };\n private actHandler: ActHandler | null = null;\n private extractHandler: ExtractHandler | null = null;\n private observeHandler: ObserveHandler | null = null;\n private ctx: V3Context | null = null;\n public llmClient!: LLMClient;\n\n /**\n * Event bus for internal communication.\n * Emits events like 'screenshot' when screenshots are captured during agent execution.\n */\n public readonly bus: EventEmitter = new EventEmitter();\n private modelName: AvailableModel;\n private modelClientOptions: ClientOptions;\n private llmProvider: LLMProvider;\n private overrideLlmClients: Map<string, LLMClient> = new Map();\n private readonly domSettleTimeoutMs?: number;\n private _isClosing = false;\n public browserbaseSessionId?: string;\n private browserbaseSessionUrl?: string;\n private browserbaseDebugUrl?: string;\n public get browserbaseSessionID(): string | undefined {\n return this.browserbaseSessionId;\n }\n public get browserbaseSessionURL(): string | undefined {\n return this.browserbaseSessionUrl;\n }\n public get browserbaseDebugURL(): string | undefined {\n return this.browserbaseDebugUrl;\n }\n /**\n * Returns true if the browser is running on Browserbase.\n */\n public get isBrowserbase(): boolean {\n return this.state.kind === \"BROWSERBASE\";\n }\n\n /**\n * Returns true if advancedStealth is enabled in Browserbase settings.\n */\n public get isAdvancedStealth(): boolean {\n return (\n this.opts.browserbaseSessionCreateParams?.browserSettings\n ?.advancedStealth === true\n );\n }\n\n /**\n * Returns the configured viewport dimensions from launch options.\n * Falls back to default 1288x711 if not configured.\n */\n public get configuredViewport(): { width: number; height: number } {\n const defaultWidth = 1288;\n const defaultHeight = 711;\n\n if (this.opts.env === \"BROWSERBASE\") {\n const vp =\n this.opts.browserbaseSessionCreateParams?.browserSettings?.viewport;\n return {\n width: vp?.width ?? defaultWidth,\n height: vp?.height ?? defaultHeight,\n };\n }\n\n // LOCAL env\n const vp = this.opts.localBrowserLaunchOptions?.viewport;\n return {\n width: vp?.width ?? defaultWidth,\n height: vp?.height ?? defaultHeight,\n };\n }\n\n private _onCdpClosed = (why: string) => {\n if (this.state.kind === \"BROWSERBASE\") {\n void this._logBrowserbaseSessionStatus();\n }\n\n // Single place to react to the transport closing\n this._immediateShutdown(`CDP transport closed: ${why}`).catch(() => {});\n };\n public readonly experimental: boolean = false;\n public readonly logInferenceToFile: boolean = false;\n public readonly disableAPI: boolean = false;\n private externalLogger?: (logLine: LogLine) => void;\n public verbose: 0 | 1 | 2 = 1;\n private stagehandLogger: StagehandLogger;\n private _history: Array<HistoryEntry> = [];\n private readonly instanceId: string;\n private static _processGuardsInstalled = false;\n private static _instances: Set<V3> = new Set();\n private cacheStorage: CacheStorage;\n private actCache: ActCache;\n private agentCache: AgentCache;\n private apiClient: StagehandAPIClient | null = null;\n private keepAlive?: boolean;\n private shutdownSupervisor: ShutdownSupervisorHandle | null = null;\n\n public stagehandMetrics: StagehandMetrics = {\n actPromptTokens: 0,\n actCompletionTokens: 0,\n actReasoningTokens: 0,\n actCachedInputTokens: 0,\n actInferenceTimeMs: 0,\n extractPromptTokens: 0,\n extractCompletionTokens: 0,\n extractReasoningTokens: 0,\n extractCachedInputTokens: 0,\n extractInferenceTimeMs: 0,\n observePromptTokens: 0,\n observeCompletionTokens: 0,\n observeReasoningTokens: 0,\n observeCachedInputTokens: 0,\n observeInferenceTimeMs: 0,\n agentPromptTokens: 0,\n agentCompletionTokens: 0,\n agentReasoningTokens: 0,\n agentCachedInputTokens: 0,\n agentInferenceTimeMs: 0,\n totalPromptTokens: 0,\n totalCompletionTokens: 0,\n totalReasoningTokens: 0,\n totalCachedInputTokens: 0,\n totalInferenceTimeMs: 0,\n };\n\n constructor(opts: V3Options) {\n this.externalLogger = opts.logger;\n this.verbose = opts.verbose ?? 1;\n this.instanceId = uuidv7();\n this.keepAlive =\n opts.keepAlive ?? opts.browserbaseSessionCreateParams?.keepAlive;\n\n // Create per-instance StagehandLogger (handles usePino, verbose, externalLogger)\n // This gives each V3 instance independent logger configuration\n // while still sharing the underlying Pino worker thread via StagehandLogger.sharedPinoLogger\n const loggerOptions: LoggerOptions = {\n pretty: true,\n level: \"info\", // Most permissive - filtering happens at instance level\n };\n\n if (opts.disablePino !== undefined) {\n loggerOptions.usePino = !opts.disablePino;\n }\n\n this.stagehandLogger = new StagehandLogger(loggerOptions, opts.logger);\n this.stagehandLogger.setVerbosity(this.verbose);\n\n // Also bind to AsyncLocalStorage for v3Logger() calls from handlers\n // This maintains backward compatibility with code that uses v3Logger() directly\n try {\n if (this.externalLogger) {\n // Use external logger directly when provided\n bindInstanceLogger(this.instanceId, this.externalLogger);\n } else {\n // Fall back to stagehandLogger when no external logger\n bindInstanceLogger(this.instanceId, (line) => {\n this.stagehandLogger.log(line);\n });\n }\n } catch {\n // ignore\n }\n const { modelName, clientOptions } = resolveModelConfiguration(opts.model);\n this.modelName = modelName;\n this.experimental = opts.experimental ?? false;\n this.logInferenceToFile = opts.logInferenceToFile ?? false;\n this.llmProvider = new LLMProvider(this.logger);\n this.domSettleTimeoutMs = opts.domSettleTimeout;\n this.disableAPI = opts.disableAPI ?? false;\n\n const baseClientOptions: ClientOptions = clientOptions\n ? ({ ...clientOptions } as ClientOptions)\n : ({} as ClientOptions);\n if (opts.llmClient) {\n this.llmClient = opts.llmClient;\n this.modelClientOptions = baseClientOptions;\n this.disableAPI = true;\n } else {\n // Ensure API key is set\n let apiKey = (baseClientOptions as { apiKey?: string }).apiKey;\n if (!apiKey) {\n try {\n apiKey = loadApiKeyFromEnv(\n this.modelName.split(\"/\")[0], // \"openai\", \"anthropic\", etc\n this.logger,\n );\n } catch (error) {\n this.logger({\n category: \"init\",\n message: `Error loading API key for model ${this.modelName}: ${error}. Continuing without LLM client.`,\n level: 0,\n });\n throw error;\n }\n }\n this.modelClientOptions = {\n ...baseClientOptions,\n apiKey,\n } as ClientOptions;\n\n // Get the default client for this model\n this.llmClient = this.llmProvider.getClient(\n this.modelName,\n this.modelClientOptions,\n { experimental: this.experimental, disableAPI: this.disableAPI },\n );\n }\n\n this.cacheStorage = CacheStorage.create(opts.cacheDir, this.logger, {\n label: \"cache directory\",\n });\n this.actCache = new ActCache({\n storage: this.cacheStorage,\n logger: this.logger,\n getActHandler: () => this.actHandler,\n getDefaultLlmClient: () => this.resolveLlmClient(),\n domSettleTimeoutMs: this.domSettleTimeoutMs,\n });\n this.agentCache = new AgentCache({\n storage: this.cacheStorage,\n logger: this.logger,\n getActHandler: () => this.actHandler,\n getContext: () => this.ctx,\n getDefaultLlmClient: () => this.resolveLlmClient(),\n getBaseModelName: () => this.modelName,\n getSystemPrompt: () => opts.systemPrompt,\n domSettleTimeoutMs: this.domSettleTimeoutMs,\n act: this.act.bind(this),\n });\n\n this.opts = opts;\n\n // Initialize session file logger\n SessionFileLogger.init(this.instanceId, opts);\n\n // Track instance for global process guard handling\n V3._instances.add(this);\n }\n\n /**\n * Async property for metrics so callers can `await v3.metrics`.\n * When using API mode, fetches metrics from the API. Otherwise returns local metrics.\n */\n public get metrics(): Promise<StagehandMetrics> {\n if (this.apiClient) {\n // Fetch metrics from the API\n return this.apiClient.getReplayMetrics().catch((error) => {\n this.logger({\n category: \"metrics\",\n message: `Failed to fetch metrics from API: ${error}`,\n level: 0,\n });\n // Fall back to local metrics on error\n return this.stagehandMetrics;\n });\n }\n // Return local metrics wrapped in a Promise for consistency\n return Promise.resolve(this.stagehandMetrics);\n }\n\n private resolveLlmClient(model?: ModelConfiguration): LLMClient {\n if (!model) {\n return this.llmClient;\n }\n\n let modelName: AvailableModel | string;\n let clientOptions: ClientOptions | undefined;\n\n if (typeof model === \"string\") {\n modelName = model;\n } else {\n const { modelName: overrideModelName, ...rest } = model;\n modelName = overrideModelName;\n clientOptions = rest as ClientOptions;\n }\n\n if (\n modelName === this.modelName &&\n (!clientOptions || Object.keys(clientOptions).length === 0)\n ) {\n return this.llmClient;\n }\n\n const overrideProvider = String(modelName).split(\"/\")[0];\n const baseProvider = String(this.modelName).split(\"/\")[0];\n\n const mergedOptions = {\n ...(overrideProvider === baseProvider ? this.modelClientOptions : {}),\n ...(clientOptions ?? {}),\n } as ClientOptions;\n\n const providerKey = overrideProvider;\n if (!(mergedOptions as { apiKey?: string }).apiKey) {\n const apiKey = loadApiKeyFromEnv(providerKey, this.logger);\n if (apiKey) {\n (mergedOptions as { apiKey?: string }).apiKey = apiKey;\n }\n }\n\n const cacheKey = JSON.stringify({\n modelName,\n clientOptions: mergedOptions,\n });\n\n const cached = this.overrideLlmClients.get(cacheKey);\n if (cached) {\n return cached;\n }\n\n const client = this.llmProvider.getClient(\n modelName as AvailableModel,\n mergedOptions,\n { experimental: this.experimental, disableAPI: this.disableAPI },\n );\n\n this.overrideLlmClients.set(cacheKey, client);\n return client;\n }\n\n private beginAgentReplayRecording(): void {\n this.agentCache.beginRecording();\n }\n\n private endAgentReplayRecording(): AgentReplayStep[] {\n return this.agentCache.endRecording();\n }\n\n private discardAgentReplayRecording(): void {\n this.agentCache.discardRecording();\n }\n\n private isAgentReplayRecording(): boolean {\n return this.agentCache.isRecording();\n }\n\n public isAgentReplayActive(): boolean {\n return this.agentCache.isReplayActive();\n }\n\n public recordAgentReplayStep(step: AgentReplayStep): void {\n this.agentCache.recordStep(step);\n }\n\n /**\n * Async property for history so callers can `await v3.history`.\n * Returns a frozen copy to avoid external mutation.\n */\n public get history(): Promise<ReadonlyArray<HistoryEntry>> {\n return Promise.resolve(Object.freeze([...this._history]));\n }\n\n public addToHistory(\n method: HistoryEntry[\"method\"],\n parameters: unknown,\n result?: unknown,\n ): void {\n this._history.push({\n method,\n parameters,\n result: result ?? null,\n timestamp: new Date().toISOString(),\n });\n }\n\n public updateMetrics(\n functionName: V3FunctionName,\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ): void {\n switch (functionName) {\n case V3FunctionName.ACT:\n this.stagehandMetrics.actPromptTokens += promptTokens;\n this.stagehandMetrics.actCompletionTokens += completionTokens;\n this.stagehandMetrics.actReasoningTokens += reasoningTokens;\n this.stagehandMetrics.actCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.actInferenceTimeMs += inferenceTimeMs;\n break;\n\n case V3FunctionName.EXTRACT:\n this.stagehandMetrics.extractPromptTokens += promptTokens;\n this.stagehandMetrics.extractCompletionTokens += completionTokens;\n this.stagehandMetrics.extractReasoningTokens += reasoningTokens;\n this.stagehandMetrics.extractCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.extractInferenceTimeMs += inferenceTimeMs;\n break;\n\n case V3FunctionName.OBSERVE:\n this.stagehandMetrics.observePromptTokens += promptTokens;\n this.stagehandMetrics.observeCompletionTokens += completionTokens;\n this.stagehandMetrics.observeReasoningTokens += reasoningTokens;\n this.stagehandMetrics.observeCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.observeInferenceTimeMs += inferenceTimeMs;\n break;\n\n case V3FunctionName.AGENT:\n this.stagehandMetrics.agentPromptTokens += promptTokens;\n this.stagehandMetrics.agentCompletionTokens += completionTokens;\n this.stagehandMetrics.agentReasoningTokens += reasoningTokens;\n this.stagehandMetrics.agentCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.agentInferenceTimeMs += inferenceTimeMs;\n break;\n }\n this.updateTotalMetrics(\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n );\n }\n\n private updateTotalMetrics(\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ): void {\n this.stagehandMetrics.totalPromptTokens += promptTokens;\n this.stagehandMetrics.totalCompletionTokens += completionTokens;\n this.stagehandMetrics.totalReasoningTokens += reasoningTokens;\n this.stagehandMetrics.totalCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.totalInferenceTimeMs += inferenceTimeMs;\n }\n\n private async _immediateShutdown(reason: string): Promise<void> {\n try {\n this.logger({\n category: \"v3\",\n message: `initiating shutdown → ${reason}`,\n level: 0,\n });\n } catch {\n //\n }\n\n try {\n this.logger({\n category: \"v3\",\n message: `closing resources → ${reason}`,\n level: 0,\n });\n await this.close({ force: true });\n } catch {\n // swallow — already shutting down\n }\n }\n\n /** Spawn a crash-only supervisor that cleans up when this process dies. */\n private startShutdownSupervisor(\n config: ShutdownSupervisorConfig,\n ): ShutdownSupervisorHandle | null {\n if (this.shutdownSupervisor) return this.shutdownSupervisor;\n this.shutdownSupervisor = startShutdownSupervisor(config, {\n onError: (error, context) => {\n try {\n this.logger({\n category: \"v3\",\n message:\n \"Shutdown supervisor unavailable; crash cleanup disabled. \" +\n \"If this process exits unexpectedly, local Chrome or Browserbase \" +\n \"sessions may remain running even with keepAlive=false.\",\n level: 0,\n auxiliary: {\n context: { value: context, type: \"string\" },\n error: { value: error.message, type: \"string\" },\n },\n });\n } catch {\n // ignore logging failures\n }\n },\n });\n return this.shutdownSupervisor;\n }\n\n /** Stop the supervisor during a normal shutdown. */\n private stopShutdownSupervisor(): void {\n if (!this.shutdownSupervisor) return;\n try {\n this.shutdownSupervisor.stop();\n } catch {\n // best-effort\n }\n this.shutdownSupervisor = null;\n }\n\n /**\n * Entrypoint: initializes handlers, launches Chrome or Browserbase,\n * and sets up a CDP context.\n */\n async init(): Promise<void> {\n try {\n return await withInstanceLogContext(this.instanceId, async () => {\n this.actHandler = new ActHandler(\n this.llmClient,\n this.modelName,\n this.modelClientOptions,\n (model) => this.resolveLlmClient(model),\n this.opts.systemPrompt ?? \"\",\n this.logInferenceToFile,\n this.opts.selfHeal ?? true,\n (\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ) =>\n this.updateMetrics(\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ),\n this.domSettleTimeoutMs,\n );\n this.extractHandler = new ExtractHandler(\n this.llmClient,\n this.modelName,\n this.modelClientOptions,\n (model) => this.resolveLlmClient(model),\n this.opts.systemPrompt ?? \"\",\n this.logInferenceToFile,\n this.experimental,\n (\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ) =>\n this.updateMetrics(\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ),\n );\n this.observeHandler = new ObserveHandler(\n this.llmClient,\n this.modelName,\n this.modelClientOptions,\n (model) => this.resolveLlmClient(model),\n this.opts.systemPrompt ?? \"\",\n this.logInferenceToFile,\n this.experimental,\n (\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ) =>\n this.updateMetrics(\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ),\n );\n if (this.opts.env === \"LOCAL\") {\n // chrome-launcher conditionally adds --headless when the environment variable\n // HEADLESS is set, without parsing its value.\n // if it is not equal to true, then we delete it from the process\n const envHeadless = process.env.HEADLESS;\n if (envHeadless !== undefined) {\n const normalized = envHeadless.trim().toLowerCase();\n if (normalized !== \"true\") {\n delete process.env.HEADLESS;\n }\n }\n const lbo: LocalBrowserLaunchOptions =\n this.opts.localBrowserLaunchOptions ?? {};\n\n // If a CDP URL is provided, attach instead of launching.\n if (lbo.cdpUrl) {\n this.logger({\n category: \"init\",\n message: \"Connecting to local browser\",\n level: 1,\n });\n this.ctx = await V3Context.create(lbo.cdpUrl, {\n env: \"LOCAL\",\n });\n const logCtx = SessionFileLogger.getContext();\n this.ctx.conn.cdpLogger = (info) =>\n SessionFileLogger.logCdpCallEvent(info, logCtx);\n this.ctx.conn.cdpEventLogger = (info) =>\n SessionFileLogger.logCdpMessageEvent(info, logCtx);\n this.ctx.conn.onTransportClosed(this._onCdpClosed);\n this.state = {\n kind: \"LOCAL\",\n // no LaunchedChrome when attaching externally; create a stub kill\n chrome: {\n kill: async () => {},\n } as unknown as import(\"chrome-launcher\").LaunchedChrome,\n ws: lbo.cdpUrl,\n };\n this.resetBrowserbaseSessionMetadata();\n // Post-connect settings (downloads and viewport) if provided\n await this._applyPostConnectLocalOptions(lbo);\n return;\n }\n this.logger({\n category: \"init\",\n message: \"Launching local browser\",\n level: 1,\n });\n\n // Determine or create user data dir\n let userDataDir = lbo.userDataDir;\n let createdTemp = false;\n if (!userDataDir) {\n const base = path.join(os.tmpdir(), \"stagehand-v3\");\n fs.mkdirSync(base, { recursive: true });\n userDataDir = fs.mkdtempSync(path.join(base, \"profile-\"));\n createdTemp = true;\n }\n\n // Build chrome flags\n const defaults = [\n \"--remote-allow-origins=*\",\n \"--no-first-run\",\n \"--no-default-browser-check\",\n \"--disable-dev-shm-usage\",\n \"--site-per-process\",\n ];\n let chromeFlags: string[] = [];\n const ignore = lbo.ignoreDefaultArgs;\n if (ignore === true) {\n // drop defaults\n chromeFlags = [];\n } else if (Array.isArray(ignore)) {\n chromeFlags = defaults.filter(\n (f) => !ignore.some((ex) => f.includes(ex)),\n );\n } else {\n chromeFlags = [...defaults];\n }\n\n // headless handled by launchLocalChrome\n if (lbo.devtools) chromeFlags.push(\"--auto-open-devtools-for-tabs\");\n if (lbo.locale) chromeFlags.push(`--lang=${lbo.locale}`);\n if (!lbo.viewport) {\n lbo.viewport = DEFAULT_VIEWPORT;\n }\n if (lbo.viewport?.width && lbo.viewport?.height) {\n chromeFlags.push(\n `--window-size=${lbo.viewport.width},${lbo.viewport.height + 87}`, // Added pixels to the window to account for the address bar\n );\n }\n if (typeof lbo.deviceScaleFactor === \"number\") {\n chromeFlags.push(\n `--force-device-scale-factor=${Math.max(0.1, lbo.deviceScaleFactor)}`,\n );\n }\n if (lbo.hasTouch) chromeFlags.push(\"--touch-events=enabled\");\n if (lbo.ignoreHTTPSErrors)\n chromeFlags.push(\"--ignore-certificate-errors\");\n if (lbo.proxy?.server)\n chromeFlags.push(`--proxy-server=${lbo.proxy.server}`);\n if (lbo.proxy?.bypass)\n chromeFlags.push(`--proxy-bypass-list=${lbo.proxy.bypass}`);\n\n // add user-supplied args last\n if (Array.isArray(lbo.args)) chromeFlags.push(...lbo.args);\n\n const keepAlive = this.keepAlive === true;\n const { ws, chrome } = await launchLocalChrome({\n chromePath: lbo.executablePath,\n chromeFlags,\n port: lbo.port,\n headless: lbo.headless,\n userDataDir,\n connectTimeoutMs: lbo.connectTimeoutMs,\n handleSIGINT: !keepAlive,\n });\n if (keepAlive) {\n try {\n chrome.process?.unref?.();\n } catch {\n // best-effort: avoid keeping the event loop alive\n }\n }\n this.ctx = await V3Context.create(ws, {\n env: \"LOCAL\",\n localBrowserLaunchOptions: lbo,\n });\n const logCtx = SessionFileLogger.getContext();\n this.ctx.conn.cdpLogger = (info) =>\n SessionFileLogger.logCdpCallEvent(info, logCtx);\n this.ctx.conn.cdpEventLogger = (info) =>\n SessionFileLogger.logCdpMessageEvent(info, logCtx);\n this.ctx.conn.onTransportClosed(this._onCdpClosed);\n this.state = {\n kind: \"LOCAL\",\n chrome,\n ws,\n userDataDir,\n createdTempProfile: createdTemp,\n preserveUserDataDir: !!lbo.preserveUserDataDir,\n };\n this.resetBrowserbaseSessionMetadata();\n const chromePid = chrome.process?.pid ?? chrome.pid;\n if (!keepAlive && chromePid) {\n this.startShutdownSupervisor({\n kind: \"LOCAL\",\n pid: chromePid,\n userDataDir,\n createdTempProfile: createdTemp,\n preserveUserDataDir: !!lbo.preserveUserDataDir,\n });\n }\n\n // Post-connect settings (downloads and viewport) if provided\n await this._applyPostConnectLocalOptions(lbo);\n return;\n }\n\n if (this.opts.env === \"BROWSERBASE\") {\n const { apiKey, projectId } = this.requireBrowserbaseCreds();\n if (!apiKey || !projectId) {\n throw new MissingEnvironmentVariableError(\n \"BROWSERBASE_API_KEY and BROWSERBASE_PROJECT_ID\",\n \"Browserbase environment\",\n );\n }\n this.logger({\n category: \"init\",\n message: \"Starting browserbase session\",\n level: 1,\n });\n const baseSessionParams =\n this.opts.browserbaseSessionCreateParams ?? {};\n const resolvedKeepAlive = this.keepAlive;\n const keepAlive = this.keepAlive === true;\n const effectiveSessionParams =\n resolvedKeepAlive !== undefined\n ? { ...baseSessionParams, keepAlive: resolvedKeepAlive }\n : baseSessionParams;\n if (!this.disableAPI && !this.experimental) {\n this.apiClient = new StagehandAPIClient({\n apiKey,\n projectId,\n logger: this.logger,\n });\n const createSessionPayload = {\n projectId: effectiveSessionParams.projectId ?? projectId,\n ...effectiveSessionParams,\n browserSettings: {\n ...(effectiveSessionParams.browserSettings ?? {}),\n viewport: effectiveSessionParams.browserSettings?.viewport ?? {\n width: 1288,\n height: 711,\n },\n },\n userMetadata: {\n ...(effectiveSessionParams.userMetadata ?? {}),\n stagehand: \"true\",\n },\n };\n const { sessionId, available } = await this.apiClient.init({\n modelName: this.modelName,\n modelApiKey: this.modelClientOptions.apiKey,\n domSettleTimeoutMs: this.domSettleTimeoutMs,\n verbose: this.verbose,\n systemPrompt: this.opts.systemPrompt,\n selfHeal: this.opts.selfHeal,\n browserbaseSessionCreateParams: createSessionPayload,\n browserbaseSessionID: this.opts.browserbaseSessionID,\n });\n if (!available) {\n this.apiClient = null;\n }\n this.opts.browserbaseSessionID = sessionId;\n }\n const { ws, sessionId, bb } = await createBrowserbaseSession(\n apiKey,\n projectId,\n effectiveSessionParams,\n this.opts.browserbaseSessionID,\n );\n this.ctx = await V3Context.create(ws, {\n env: \"BROWSERBASE\",\n apiClient: this.apiClient,\n });\n const logCtx = SessionFileLogger.getContext();\n this.ctx.conn.cdpLogger = (info) =>\n SessionFileLogger.logCdpCallEvent(info, logCtx);\n this.ctx.conn.cdpEventLogger = (info) =>\n SessionFileLogger.logCdpMessageEvent(info, logCtx);\n this.ctx.conn.onTransportClosed(this._onCdpClosed);\n this.state = { kind: \"BROWSERBASE\", sessionId, ws, bb };\n this.browserbaseSessionId = sessionId;\n if (!keepAlive && !this.disableAPI) {\n this.startShutdownSupervisor({\n kind: \"STAGEHAND_API\",\n sessionId,\n apiKey,\n projectId,\n });\n }\n\n await this._ensureBrowserbaseDownloadsEnabled();\n\n const resumed = !!this.opts.browserbaseSessionID;\n let debugUrl: string | undefined;\n try {\n const dbg = (await bb.sessions.debug(sessionId)) as unknown as {\n debuggerUrl?: string;\n };\n debugUrl = dbg?.debuggerUrl;\n } catch {\n // Ignore debug fetch failures; continue with sessionUrl only\n }\n const sessionUrl = `https://www.browserbase.com/sessions/${sessionId}`;\n this.browserbaseSessionUrl = sessionUrl;\n this.browserbaseDebugUrl = debugUrl;\n\n try {\n this.logger({\n category: \"init\",\n message: resumed\n ? this.apiClient\n ? \"Browserbase session started\"\n : \"Browserbase session resumed\"\n : \"Browserbase session started\",\n level: 1,\n auxiliary: {\n sessionUrl: { value: sessionUrl, type: \"string\" },\n ...(debugUrl && {\n debugUrl: { value: debugUrl, type: \"string\" },\n }),\n sessionId: { value: sessionId, type: \"string\" },\n },\n });\n } catch {\n // best-effort logging — ignore failures\n }\n return;\n }\n\n const neverEnv: never = this.opts.env;\n throw new StagehandInitError(`Unsupported env: ${neverEnv}`);\n });\n } catch (error) {\n // Cleanup instanceLoggers map on init failure to prevent memory leak\n if (this.externalLogger) {\n try {\n unbindInstanceLogger(this.instanceId);\n } catch {\n // ignore cleanup errors\n }\n }\n throw error;\n }\n }\n\n /** Apply post-connect local browser options that require CDP. */\n private async _applyPostConnectLocalOptions(\n lbo: LocalBrowserLaunchOptions,\n ): Promise<void> {\n try {\n // Downloads behavior\n if (lbo.downloadsPath || lbo.acceptDownloads !== undefined) {\n const behavior = lbo.acceptDownloads === false ? \"deny\" : \"allow\";\n await this.ctx?.conn\n .send(\"Browser.setDownloadBehavior\", {\n behavior,\n downloadPath: lbo.downloadsPath,\n eventsEnabled: true,\n })\n .catch(() => {});\n }\n } catch {\n // best-effort only\n }\n }\n\n private async _ensureBrowserbaseDownloadsEnabled(): Promise<void> {\n const conn = this.ctx?.conn;\n if (!conn) return;\n try {\n await conn.send(\"Browser.setDownloadBehavior\", {\n behavior: \"allow\",\n downloadPath: \"downloads\",\n eventsEnabled: true,\n });\n } catch {\n // best-effort only\n }\n }\n\n private resetBrowserbaseSessionMetadata(): void {\n this.browserbaseSessionId = undefined;\n this.browserbaseSessionUrl = undefined;\n this.browserbaseDebugUrl = undefined;\n }\n\n /**\n * Run an \"act\" instruction through the ActHandler.\n *\n * New API:\n * - act(instruction: string, options?: ActOptions)\n * - act(action: Action, options?: ActOptions)\n */\n async act(instruction: string, options?: ActOptions): Promise<ActResult>;\n async act(action: Action, options?: ActOptions): Promise<ActResult>;\n\n @logStagehandStep(\"Stagehand.act\", \"ACT\")\n async act(input: string | Action, options?: ActOptions): Promise<ActResult> {\n return await withInstanceLogContext(this.instanceId, async () => {\n if (!this.actHandler) throw new StagehandNotInitializedError(\"act()\");\n\n let actResult: ActResult;\n\n if (isObserveResult(input)) {\n // Resolve page: use provided page if any, otherwise default active page\n const v3Page = await this.resolvePage(options?.page);\n\n // Use selector as provided to support XPath, CSS, and other engines\n const selector = input.selector;\n if (this.apiClient) {\n actResult = await this.apiClient.act({\n input,\n options,\n frameId: v3Page.mainFrameId(),\n });\n } else {\n const effectiveTimeoutMs =\n typeof options?.timeout === \"number\" && options.timeout > 0\n ? options.timeout\n : undefined;\n const ensureTimeRemaining = createTimeoutGuard(\n effectiveTimeoutMs,\n (ms) => new ActTimeoutError(ms),\n );\n actResult = await this.actHandler.takeDeterministicAction(\n { ...input, selector },\n v3Page,\n this.domSettleTimeoutMs,\n this.resolveLlmClient(options?.model),\n ensureTimeRemaining,\n options?.variables,\n );\n }\n\n // history: record ObserveResult-based act call\n this.addToHistory(\n \"act\",\n {\n observeResult: input,\n },\n actResult,\n );\n return actResult;\n }\n // instruction path\n if (typeof input !== \"string\" || !input.trim()) {\n throw new StagehandInvalidArgumentError(\n \"act(): instruction string is required unless passing an Action\",\n );\n }\n\n // Resolve page from options or default\n const page = await this.resolvePage(options?.page);\n const actCacheLlmClient = options?.model\n ? this.resolveLlmClient(options.model)\n : undefined;\n\n let actCacheContext: Awaited<\n ReturnType<typeof this.actCache.prepareContext>\n > | null = null;\n const canUseCache =\n typeof input === \"string\" &&\n !this.isAgentReplayRecording() &&\n this.actCache.enabled;\n if (canUseCache) {\n actCacheContext = await this.actCache.prepareContext(\n input,\n page,\n options?.variables,\n );\n if (actCacheContext) {\n const cachedResult = await this.actCache.tryReplay(\n actCacheContext,\n page,\n options?.timeout,\n actCacheLlmClient,\n );\n if (cachedResult) {\n this.addToHistory(\n \"act\",\n {\n instruction: input,\n variables: options?.variables,\n timeout: options?.timeout,\n cacheHit: true,\n },\n cachedResult,\n );\n return cachedResult;\n }\n }\n }\n\n const handlerParams: ActHandlerParams = {\n instruction: input,\n page,\n variables: options?.variables,\n timeout: options?.timeout,\n model: options?.model,\n };\n if (this.apiClient) {\n const frameId = page.mainFrameId();\n actResult = await this.apiClient.act({ input, options, frameId });\n } else {\n actResult = await this.actHandler.act(handlerParams);\n }\n // history: record instruction-based act call (omit page object)\n this.addToHistory(\n \"act\",\n {\n instruction: input,\n variables: options?.variables,\n timeout: options?.timeout,\n },\n actResult,\n );\n\n if (\n actCacheContext &&\n actResult.success &&\n Array.isArray(actResult.actions) &&\n actResult.actions.length > 0\n ) {\n await this.actCache.store(actCacheContext, actResult);\n }\n return actResult;\n });\n }\n\n /**\n * Run an \"extract\" instruction through the ExtractHandler.\n *\n * Accepted forms:\n * - extract() → pageText\n * - extract(options) → pageText\n * - extract(instruction) → defaultExtractSchema\n * - extract(instruction, schema) → schema-inferred\n * - extract(instruction, schema, options)\n */\n\n async extract(): Promise<z.infer<typeof pageTextSchema>>;\n async extract(\n options: ExtractOptions,\n ): Promise<z.infer<typeof pageTextSchema>>;\n async extract(\n instruction: string,\n options?: ExtractOptions,\n ): Promise<z.infer<typeof defaultExtractSchema>>;\n async extract<T extends StagehandZodSchema>(\n instruction: string,\n schema: T,\n options?: ExtractOptions,\n ): Promise<InferStagehandSchema<T>>;\n\n @logStagehandStep(\"Stagehand.extract\", \"EXTRACT\")\n async extract(\n a?: string | ExtractOptions,\n b?: StagehandZodSchema | ExtractOptions,\n c?: ExtractOptions,\n ): Promise<unknown> {\n return await withInstanceLogContext(this.instanceId, async () => {\n if (!this.extractHandler) {\n throw new StagehandNotInitializedError(\"extract()\");\n }\n\n // Normalize args\n let instruction: string | undefined;\n let schema: StagehandZodSchema | undefined;\n let options: ExtractOptions | undefined;\n\n if (typeof a === \"string\") {\n instruction = a;\n const isZodSchema = (val: unknown): val is StagehandZodSchema =>\n !!val &&\n typeof val === \"object\" &&\n \"parse\" in val &&\n \"safeParse\" in val;\n if (isZodSchema(b)) {\n schema = b as StagehandZodSchema;\n options = c as ExtractOptions | undefined;\n } else {\n options = b as ExtractOptions | undefined;\n }\n } else {\n // a is options or undefined\n options = (a as ExtractOptions) || undefined;\n }\n\n if (!instruction && schema) {\n throw new StagehandInvalidArgumentError(\n \"extract(): schema provided without instruction\",\n );\n }\n\n // If instruction without schema → defaultExtractSchema\n const effectiveSchema =\n instruction && !schema ? defaultExtractSchema : schema;\n\n // Resolve page from options or use active page\n const page = await this.resolvePage(options?.page);\n\n const handlerParams: ExtractHandlerParams<StagehandZodSchema> = {\n instruction,\n schema: effectiveSchema as StagehandZodSchema | undefined,\n model: options?.model,\n timeout: options?.timeout,\n selector: options?.selector,\n page,\n };\n let result: z.infer<typeof effectiveSchema> | { pageText: string };\n if (this.apiClient) {\n const frameId = page.mainFrameId();\n result = await this.apiClient.extract({\n instruction: handlerParams.instruction,\n schema: handlerParams.schema,\n options,\n frameId,\n });\n } else {\n result =\n await this.extractHandler.extract<StagehandZodSchema>(handlerParams);\n }\n const historySchemaDescriptor = effectiveSchema\n ? toJsonSchema(effectiveSchema)\n : undefined;\n this.addToHistory(\n \"extract\",\n {\n instruction,\n selector: options?.selector,\n timeout: options?.timeout,\n schema: historySchemaDescriptor,\n },\n result,\n );\n return result;\n });\n }\n\n /**\n * Run an \"observe\" instruction through the ObserveHandler.\n */\n async observe(): Promise<Action[]>;\n async observe(options: ObserveOptions): Promise<Action[]>;\n async observe(\n instruction: string,\n options?: ObserveOptions,\n ): Promise<Action[]>;\n @logStagehandStep(\"Stagehand.observe\", \"OBSERVE\")\n async observe(\n a?: string | ObserveOptions,\n b?: ObserveOptions,\n ): Promise<Action[]> {\n return await withInstanceLogContext(this.instanceId, async () => {\n if (!this.observeHandler) {\n throw new StagehandNotInitializedError(\"observe()\");\n }\n\n // Normalize args\n let instruction: string | undefined;\n let options: ObserveOptions | undefined;\n if (typeof a === \"string\") {\n instruction = a;\n options = b;\n } else {\n options = a as ObserveOptions | undefined;\n }\n\n // Resolve to our internal Page type\n const page = await this.resolvePage(options?.page);\n\n const handlerParams: ObserveHandlerParams = {\n instruction,\n model: options?.model,\n timeout: options?.timeout,\n selector: options?.selector,\n page: page!,\n };\n\n let results: Action[];\n if (this.apiClient) {\n const frameId = page.mainFrameId();\n results = await this.apiClient.observe({\n instruction,\n options,\n frameId,\n });\n } else {\n results = await this.observeHandler.observe(handlerParams);\n }\n\n // history: record observe call (omit page object)\n this.addToHistory(\n \"observe\",\n {\n instruction,\n timeout: options?.timeout,\n },\n results,\n );\n return results;\n });\n }\n\n /** Return the browser-level CDP WebSocket endpoint. */\n connectURL(): string {\n if (this.state.kind === \"UNINITIALIZED\") {\n throw new StagehandNotInitializedError(\"connectURL()\");\n }\n return this.state.ws;\n }\n\n /** Expose the current CDP-backed context. */\n public get context(): V3Context {\n return this.ctx;\n }\n\n /** Best-effort cleanup of context and launched resources. */\n async close(opts?: { force?: boolean }): Promise<void> {\n // If we're already closing and this isn't a forced close, no-op.\n if (this._isClosing && !opts?.force) return;\n this._isClosing = true;\n\n const keepAlive = this.keepAlive === true;\n\n // End Browserbase session via API when keepAlive is not enabled\n if (!keepAlive && this.apiClient) {\n try {\n await this.apiClient.end();\n } catch {\n // best-effort cleanup\n }\n }\n\n try {\n // Close session file logger\n try {\n await SessionFileLogger.close();\n } catch {\n // ignore\n }\n\n // Unhook CDP transport close handler\n try {\n if (this.ctx?.conn && this._onCdpClosed) {\n this.ctx.conn.offTransportClosed?.(this._onCdpClosed);\n }\n } catch {\n // ignore\n }\n\n // Close CDP context\n try {\n await this.ctx?.close();\n } catch {\n // ignore\n }\n\n // Kill local Chrome and clean up temp profile when keepAlive is not enabled\n if (!keepAlive && this.state.kind === \"LOCAL\") {\n const localState = this.state;\n await cleanupLocalBrowser({\n killChrome: () => localState.chrome.kill(),\n userDataDir: localState.userDataDir,\n createdTempProfile: localState.createdTempProfile,\n preserveUserDataDir: localState.preserveUserDataDir,\n });\n }\n } finally {\n this.stopShutdownSupervisor();\n\n // Reset internal state\n this.state = { kind: \"UNINITIALIZED\" };\n this.ctx = null;\n this._isClosing = false;\n this.resetBrowserbaseSessionMetadata();\n try {\n unbindInstanceLogger(this.instanceId);\n } catch {\n // ignore\n }\n try {\n this.bus.removeAllListeners();\n } catch {\n // ignore\n }\n this._history = [];\n this.actHandler = null;\n this.extractHandler = null;\n this.observeHandler = null;\n V3._instances.delete(this);\n }\n }\n\n /** Guard: ensure Browserbase credentials exist in options. */\n private requireBrowserbaseCreds(): { apiKey: string; projectId: string } {\n let { apiKey, projectId } = this.opts;\n\n // Fall back to environment variables if not explicitly provided\n if (!apiKey)\n apiKey = process.env.BROWSERBASE_API_KEY ?? process.env.BB_API_KEY;\n if (!projectId)\n projectId =\n process.env.BROWSERBASE_PROJECT_ID ?? process.env.BB_PROJECT_ID;\n\n if (!apiKey || !projectId) {\n const missing: string[] = [];\n if (!apiKey) missing.push(\"BROWSERBASE_API_KEY\");\n if (!projectId) missing.push(\"BROWSERBASE_PROJECT_ID\");\n throw new MissingEnvironmentVariableError(\n missing.join(\", \"),\n \"Browserbase\",\n );\n }\n\n // Cache resolved values back into opts for consistency\n this.opts.apiKey = apiKey;\n this.opts.projectId = projectId;\n\n // Informational log\n this.logger({\n category: \"init\",\n message: \"Using Browserbase credentials\",\n level: 1,\n });\n\n return { apiKey, projectId };\n }\n\n public get logger(): (logLine: LogLine) => void {\n // Delegate to per-instance StagehandLogger\n // StagehandLogger handles: verbosity filtering, usePino selection, external logger routing\n // This provides per-instance configuration while maintaining shared Pino optimization\n return (logLine: LogLine) => {\n const line = { ...logLine, level: logLine.level ?? 1 };\n this.stagehandLogger.log(line);\n };\n }\n\n /**\n * Normalize a Playwright/Puppeteer page object into its top frame id,\n * so handlers can resolve it to a `Page` within our V3Context.\n */\n private async resolveTopFrameId(\n page: PlaywrightPage | PuppeteerPage | PatchrightPage,\n ): Promise<string> {\n if (this.isPlaywrightPage(page)) {\n const cdp = await page.context().newCDPSession(page);\n const { frameTree } = await cdp.send(\"Page.getFrameTree\");\n return frameTree.frame.id;\n }\n\n if (this.isPatchrightPage(page)) {\n const cdp = await page.context().newCDPSession(page);\n const { frameTree } = await cdp.send(\"Page.getFrameTree\");\n return frameTree.frame.id;\n }\n\n if (this.isPuppeteerPage(page)) {\n const cdp = await page.createCDPSession();\n const { frameTree } = await cdp.send(\"Page.getFrameTree\");\n this.logger({\n category: \"v3\",\n message: \"Puppeteer frame id\",\n level: 2,\n auxiliary: { frameId: { value: frameTree.frame.id, type: \"string\" } },\n });\n return frameTree.frame.id;\n }\n\n throw new StagehandInvalidArgumentError(\n \"Unsupported page object passed to V3.act()\",\n );\n }\n\n private isPlaywrightPage(p: unknown): p is PlaywrightPage {\n return (\n typeof p === \"object\" &&\n p !== null &&\n typeof (p as PlaywrightPage).context === \"function\"\n );\n }\n\n private isPatchrightPage(p: unknown): p is PatchrightPage {\n return (\n typeof p === \"object\" &&\n p !== null &&\n typeof (p as PatchrightPage).context === \"function\"\n );\n }\n\n private isPuppeteerPage(p: unknown): p is PuppeteerPage {\n return (\n typeof p === \"object\" &&\n p !== null &&\n typeof (p as PuppeteerPage).target === \"function\"\n );\n }\n\n /** Resolve an external page reference or fall back to the active V3 page. */\n private async resolvePage(page?: AnyPage): Promise<Page> {\n if (page) {\n return await this.normalizeToV3Page(page);\n }\n const ctx = this.ctx;\n if (!ctx) {\n throw new StagehandNotInitializedError(\"resolvePage()\");\n }\n return await ctx.awaitActivePage();\n }\n\n private async normalizeToV3Page(input: AnyPage): Promise<Page> {\n if (input instanceof (await import(\"./understudy/page.js\")).Page) {\n return input as Page;\n }\n if (this.isPlaywrightPage(input)) {\n const frameId = await this.resolveTopFrameId(input);\n const page = this.ctx!.resolvePageByMainFrameId(frameId);\n if (!page)\n throw new StagehandInitError(\n \"Failed to resolve V3 Page from Playwright page.\",\n );\n return page;\n }\n if (this.isPatchrightPage(input)) {\n const frameId = await this.resolveTopFrameId(input);\n const page = this.ctx!.resolvePageByMainFrameId(frameId);\n if (!page)\n throw new StagehandInitError(\n \"Failed to resolve V3 Page from Patchright page.\",\n );\n return page;\n }\n if (this.isPuppeteerPage(input)) {\n const frameId = await this.resolveTopFrameId(input);\n const page = this.ctx!.resolvePageByMainFrameId(frameId);\n if (!page)\n throw new StagehandInitError(\n \"Failed to resolve V3 Page from Puppeteer page.\",\n );\n return page;\n }\n throw new StagehandInvalidArgumentError(\"Unsupported page object.\");\n }\n\n private async _logBrowserbaseSessionStatus(): Promise<void> {\n if (this.state.kind !== \"BROWSERBASE\") {\n return;\n }\n\n try {\n const snapshot = (await this.state.bb.sessions.retrieve(\n this.state.sessionId,\n )) as { id?: string; status?: string };\n if (!snapshot?.status) return;\n\n const sessionId = snapshot.id ?? this.state.sessionId;\n const message =\n snapshot.status === \"TIMED_OUT\"\n ? `Browserbase session timed out (sessionId: ${sessionId})`\n : `Browserbase session status: ${snapshot.status}`;\n\n this.logger({\n category: \"v3\",\n message,\n level: 0,\n });\n } catch {\n // Ignore failures; nothing to log\n }\n }\n\n /**\n * Prepares shared context for agent execution (both execute and stream).\n * Extracts duplicated setup logic into a single helper.\n */\n private async prepareAgentExecution(\n options: AgentConfig | undefined,\n instructionOrOptions:\n | string\n | AgentExecuteOptions\n | AgentStreamExecuteOptions,\n agentConfigSignature: string,\n ): Promise<{\n handler: V3AgentHandler;\n resolvedOptions: AgentExecuteOptions | AgentStreamExecuteOptions;\n instruction: string;\n cacheContext: AgentCacheContext | null;\n llmClient: LLMClient;\n }> {\n // Note: experimental validation is done at the call site before this method\n // Warn if mode is not explicitly set (defaults to \"dom\")\n if (options?.mode === undefined) {\n this.logger({\n category: \"agent\",\n message:\n \"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\",\n level: 0,\n });\n }\n\n const tools = options?.integrations\n ? await resolveTools(options.integrations, options.tools)\n : (options?.tools ?? {});\n\n const agentLlmClient = options?.model\n ? this.resolveLlmClient(options.model)\n : this.llmClient;\n\n const resolvedExecutionModel = options?.executionModel ?? options?.model;\n\n const handler = new V3AgentHandler(\n this,\n this.logger,\n agentLlmClient,\n resolvedExecutionModel,\n options?.systemPrompt,\n tools,\n options?.mode,\n );\n\n const resolvedOptions: AgentExecuteOptions | AgentStreamExecuteOptions =\n typeof instructionOrOptions === \"string\"\n ? { instruction: instructionOrOptions }\n : instructionOrOptions;\n\n const callbacksWithSafety = resolvedOptions.callbacks as\n | AgentExecuteCallbacks\n | undefined;\n if (callbacksWithSafety?.onSafetyConfirmation) {\n throw new StagehandInvalidArgumentError(\n 'onSafetyConfirmation callback is only supported when using mode: \"cua\" agents.',\n );\n }\n\n if (resolvedOptions.page) {\n const normalizedPage = await this.normalizeToV3Page(resolvedOptions.page);\n this.ctx!.setActivePage(normalizedPage);\n }\n\n const instruction = resolvedOptions.instruction.trim();\n const sanitizedOptions =\n this.agentCache.sanitizeExecuteOptions(resolvedOptions);\n\n const cacheContext = this.agentCache.shouldAttemptCache(instruction)\n ? await this.agentCache.prepareContext({\n instruction,\n options: sanitizedOptions,\n configSignature: agentConfigSignature,\n page: await this.ctx!.awaitActivePage(),\n })\n : null;\n\n return {\n handler,\n resolvedOptions,\n instruction,\n cacheContext,\n llmClient: agentLlmClient,\n };\n }\n\n /**\n * Create a v3 agent instance (AISDK tool-based) with execute().\n * Mirrors the v2 Stagehand.agent() tool mode (no CUA provider here).\n *\n * @overload When stream: true, returns a streaming agent where execute() returns AgentStreamResult\n * @overload When stream is false/undefined, returns a non-streaming agent where execute() returns AgentResult\n */\n agent(options: AgentConfig & { stream: true }): {\n execute: (\n instructionOrOptions: string | AgentStreamExecuteOptions,\n ) => Promise<AgentStreamResult>;\n };\n agent(options?: AgentConfig & { stream?: false }): {\n execute: (\n instructionOrOptions: string | AgentExecuteOptions,\n ) => Promise<AgentResult>;\n };\n agent(options?: AgentConfig): {\n execute: (\n instructionOrOptions:\n | string\n | AgentExecuteOptions\n | AgentStreamExecuteOptions,\n ) => Promise<AgentResult | AgentStreamResult>;\n } {\n // Determine if CUA mode is enabled (via mode: \"cua\" or deprecated cua: true)\n const isCuaMode =\n options?.mode !== undefined\n ? options.mode === \"cua\"\n : options?.cua === true;\n\n // Emit deprecation warning for cua: true\n if (options?.cua === true) {\n this.logger({\n category: \"agent\",\n message:\n '[DEPRECATED] The \"cua: true\" option is deprecated. Use \"mode: \\'cua\\'\" instead. This option will be removed in a future version.',\n level: 0,\n });\n console.warn(\n '[Stagehand] DEPRECATED: The \"cua: true\" option is deprecated. Use \"mode: \\'cua\\'\" instead.',\n );\n }\n\n this.logger({\n category: \"agent\",\n message: \"Creating v3 agent instance\",\n level: 1,\n auxiliary: {\n cua: { value: isCuaMode ? \"true\" : \"false\", type: \"boolean\" },\n mode: { value: options?.mode ?? \"dom\", type: \"string\" },\n model: {\n value: extractModelName(options?.model) ?? this.llmClient.modelName,\n type: \"string\",\n },\n systemPrompt: { value: options?.systemPrompt ?? \"\", type: \"string\" },\n tools: { value: JSON.stringify(options?.tools ?? {}), type: \"object\" },\n ...(options?.integrations && {\n integrations: {\n value: JSON.stringify(options.integrations),\n type: \"object\",\n },\n }),\n },\n });\n\n // If CUA mode is enabled (via mode: \"cua\" or deprecated cua: true), use the computer-use agent path\n if (isCuaMode) {\n // Validate agent config at creation time (includes CUA+streaming conflict check)\n validateExperimentalFeatures({\n isExperimental: this.experimental,\n agentConfig: options,\n });\n\n const modelToUse = options?.model || {\n modelName: this.modelName,\n ...this.modelClientOptions,\n };\n\n const { modelName, isCua, clientOptions } = resolveModel(modelToUse);\n\n if (!isCua) {\n throw new CuaModelRequiredError(AVAILABLE_CUA_MODELS);\n }\n\n const agentConfigSignature =\n this.agentCache.buildConfigSignature(options);\n return {\n execute: async (instructionOrOptions: string | AgentExecuteOptions) =>\n withInstanceLogContext(this.instanceId, async () => {\n validateExperimentalFeatures({\n isExperimental: this.experimental,\n agentConfig: options,\n executeOptions:\n typeof instructionOrOptions === \"object\"\n ? instructionOrOptions\n : null,\n });\n\n SessionFileLogger.logAgentTaskStarted({\n invocation: \"Agent.execute\",\n args: [instructionOrOptions],\n });\n const tools = options?.integrations\n ? await resolveTools(options.integrations, options.tools)\n : (options?.tools ?? {});\n\n const handler = new V3CuaAgentHandler(\n this,\n this.logger,\n {\n modelName,\n clientOptions,\n userProvidedInstructions:\n options.systemPrompt ??\n `You are a helpful assistant that can use a web browser.\\nDo not ask follow up questions, the user will trust your judgement.`,\n },\n tools,\n );\n\n const resolvedOptions: AgentExecuteOptions =\n typeof instructionOrOptions === \"string\"\n ? { instruction: instructionOrOptions }\n : instructionOrOptions;\n if (resolvedOptions.page) {\n const normalizedPage = await this.normalizeToV3Page(\n resolvedOptions.page,\n );\n this.ctx!.setActivePage(normalizedPage);\n }\n const instruction = resolvedOptions.instruction.trim();\n const sanitizedOptions =\n this.agentCache.sanitizeExecuteOptions(resolvedOptions);\n\n let cacheContext: AgentCacheContext | null = null;\n if (this.agentCache.shouldAttemptCache(instruction)) {\n const startPage = await this.ctx!.awaitActivePage();\n cacheContext = await this.agentCache.prepareContext({\n instruction,\n options: sanitizedOptions,\n configSignature: agentConfigSignature,\n page: startPage,\n });\n if (cacheContext) {\n const replayed = await this.agentCache.tryReplay(cacheContext);\n if (replayed) {\n SessionFileLogger.logAgentTaskCompleted({ cacheHit: true });\n return replayed;\n }\n }\n }\n\n let agentSteps: AgentReplayStep[] = [];\n const shouldRecordLocally =\n !!cacheContext && (!this.apiClient || this.experimental);\n if (shouldRecordLocally) {\n this.beginAgentReplayRecording();\n }\n\n let result: AgentResult;\n try {\n if (this.apiClient && !this.experimental) {\n const page = await this.ctx!.awaitActivePage();\n result = await this.apiClient.agentExecute(\n options,\n resolvedOptions,\n page.mainFrameId(),\n !!cacheContext,\n );\n if (cacheContext) {\n const transferredEntry =\n this.apiClient.consumeLatestAgentCacheEntry();\n await this.agentCache.storeTransferredEntry(transferredEntry);\n }\n } else {\n result = await handler.execute(instructionOrOptions);\n }\n if (shouldRecordLocally) {\n agentSteps = this.endAgentReplayRecording();\n }\n\n if (\n shouldRecordLocally &&\n cacheContext &&\n result.success &&\n agentSteps.length > 0\n ) {\n await this.agentCache.store(cacheContext, agentSteps, result);\n }\n\n return result;\n } catch (err) {\n if (shouldRecordLocally) this.discardAgentReplayRecording();\n throw err;\n } finally {\n if (shouldRecordLocally) {\n this.discardAgentReplayRecording();\n }\n SessionFileLogger.logAgentTaskCompleted();\n }\n }),\n };\n }\n\n // Default: AISDK tools-based agent\n const agentConfigSignature = this.agentCache.buildConfigSignature(options);\n const isStreaming = options?.stream ?? false;\n\n return {\n execute: async (\n instructionOrOptions:\n | string\n | AgentExecuteOptions\n | AgentStreamExecuteOptions,\n ): Promise<AgentResult | AgentStreamResult> =>\n withInstanceLogContext(this.instanceId, async () => {\n validateExperimentalFeatures({\n isExperimental: this.experimental,\n agentConfig: options,\n executeOptions:\n typeof instructionOrOptions === \"object\"\n ? instructionOrOptions\n : null,\n isStreaming,\n });\n SessionFileLogger.logAgentTaskStarted({\n invocation: \"Agent.execute\",\n args: [instructionOrOptions],\n });\n\n // Streaming mode\n if (isStreaming) {\n const { handler, resolvedOptions, cacheContext, llmClient } =\n await this.prepareAgentExecution(\n options,\n instructionOrOptions,\n agentConfigSignature,\n );\n\n if (cacheContext) {\n const replayed = await this.agentCache.tryReplayAsStream(\n cacheContext,\n llmClient,\n );\n if (replayed) {\n SessionFileLogger.logAgentTaskCompleted({ cacheHit: true });\n return replayed;\n }\n }\n\n const streamResult = await handler.stream(\n resolvedOptions as AgentStreamExecuteOptions,\n );\n\n if (cacheContext) {\n const wrappedStream = this.agentCache.wrapStreamForCaching(\n cacheContext,\n streamResult,\n () => this.beginAgentReplayRecording(),\n () => this.endAgentReplayRecording(),\n () => this.discardAgentReplayRecording(),\n );\n // Log completion when stream is returned (stream completes asynchronously)\n SessionFileLogger.logAgentTaskCompleted();\n return wrappedStream;\n }\n\n // Log completion when stream is returned (stream completes asynchronously)\n SessionFileLogger.logAgentTaskCompleted();\n return streamResult;\n }\n\n // Non-streaming mode (default)\n const { handler, resolvedOptions, cacheContext, llmClient } =\n await this.prepareAgentExecution(\n options,\n instructionOrOptions,\n agentConfigSignature,\n );\n\n if (cacheContext) {\n const replayed = await this.agentCache.tryReplay(\n cacheContext,\n llmClient,\n );\n if (replayed) {\n SessionFileLogger.logAgentTaskCompleted({ cacheHit: true });\n return replayed;\n }\n }\n\n let agentSteps: AgentReplayStep[] = [];\n const shouldRecordLocally =\n !!cacheContext && (!this.apiClient || this.experimental);\n if (shouldRecordLocally) {\n this.beginAgentReplayRecording();\n }\n let result: AgentResult;\n\n try {\n if (this.apiClient && !this.experimental) {\n const page = await this.ctx!.awaitActivePage();\n result = await this.apiClient.agentExecute(\n options ?? {},\n resolvedOptions as AgentExecuteOptions,\n page.mainFrameId(),\n !!cacheContext,\n );\n if (cacheContext) {\n const transferredEntry =\n this.apiClient.consumeLatestAgentCacheEntry();\n await this.agentCache.storeTransferredEntry(transferredEntry);\n }\n } else {\n result = await handler.execute(\n resolvedOptions as AgentExecuteOptions,\n );\n }\n if (shouldRecordLocally) {\n agentSteps = this.endAgentReplayRecording();\n }\n\n if (\n shouldRecordLocally &&\n cacheContext &&\n result.success &&\n agentSteps.length > 0\n ) {\n await this.agentCache.store(cacheContext, agentSteps, result);\n }\n\n return result;\n } catch (err) {\n if (shouldRecordLocally) this.discardAgentReplayRecording();\n throw err;\n } finally {\n if (shouldRecordLocally) {\n this.discardAgentReplayRecording();\n }\n SessionFileLogger.logAgentTaskCompleted();\n }\n }),\n };\n }\n}\n\nfunction isObserveResult(v: unknown): v is Action {\n return (\n !!v && typeof v === \"object\" && \"selector\" in (v as Record<string, unknown>)\n );\n}\n"]}
1
+ {"version":3,"file":"v3.js","sourceRoot":"","sources":["../../../../lib/v3/v3.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"events\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport path from \"path\";\nimport process from \"process\";\nimport { v7 as uuidv7 } from \"uuid\";\nimport { z } from \"zod\";\nimport {\n InferStagehandSchema,\n StagehandZodSchema,\n toJsonSchema,\n} from \"./zodCompat.js\";\nimport { loadApiKeyFromEnv } from \"../utils.js\";\nimport { extractModelName } from \"../modelUtils.js\";\nimport { StagehandLogger, LoggerOptions } from \"../logger.js\";\nimport { ActCache } from \"./cache/ActCache.js\";\nimport { AgentCache } from \"./cache/AgentCache.js\";\nimport { CacheStorage } from \"./cache/CacheStorage.js\";\nimport { ActHandler } from \"./handlers/actHandler.js\";\nimport { ExtractHandler } from \"./handlers/extractHandler.js\";\nimport { ObserveHandler } from \"./handlers/observeHandler.js\";\nimport { V3AgentHandler } from \"./handlers/v3AgentHandler.js\";\nimport { V3CuaAgentHandler } from \"./handlers/v3CuaAgentHandler.js\";\nimport { createBrowserbaseSession } from \"./launch/browserbase.js\";\nimport { launchLocalChrome } from \"./launch/local.js\";\nimport { LLMClient } from \"./llm/LLMClient.js\";\nimport { LLMProvider } from \"./llm/LLMProvider.js\";\nimport {\n bindInstanceLogger,\n unbindInstanceLogger,\n withInstanceLogContext,\n} from \"./logger.js\";\nimport { cleanupLocalBrowser } from \"./shutdown/cleanupLocal.js\";\nimport { startShutdownSupervisor } from \"./shutdown/supervisorClient.js\";\nimport { resolveTools } from \"./mcp/utils.js\";\nimport {\n ActHandlerParams,\n ExtractHandlerParams,\n ObserveHandlerParams,\n AgentReplayStep,\n InitState,\n AgentCacheContext,\n} from \"./types/private/index.js\";\nimport type {\n ShutdownSupervisorConfig,\n ShutdownSupervisorHandle,\n} from \"./types/private/shutdown.js\";\nimport {\n AgentConfig,\n AgentExecuteCallbacks,\n AgentExecuteOptions,\n AgentStreamExecuteOptions,\n AgentResult,\n AVAILABLE_CUA_MODELS,\n LogLine,\n StagehandMetrics,\n Action,\n ActOptions,\n ActResult,\n defaultExtractSchema,\n ExtractOptions,\n HistoryEntry,\n ObserveOptions,\n pageTextSchema,\n V3FunctionName,\n AvailableModel,\n ClientOptions,\n ModelConfiguration,\n LocalBrowserLaunchOptions,\n V3Options,\n AnyPage,\n PatchrightPage,\n PlaywrightPage,\n PuppeteerPage,\n CuaModelRequiredError,\n StagehandInvalidArgumentError,\n StagehandNotInitializedError,\n MissingEnvironmentVariableError,\n StagehandInitError,\n AgentStreamResult,\n} from \"./types/public/index.js\";\nimport { V3Context } from \"./understudy/context.js\";\nimport { Page } from \"./understudy/page.js\";\nimport { resolveModel } from \"../modelUtils.js\";\nimport { StagehandAPIClient } from \"./api.js\";\nimport { validateExperimentalFeatures } from \"./agent/utils/validateExperimentalFeatures.js\";\nimport { flattenVariables } from \"./agent/utils/variables.js\";\nimport { SessionFileLogger, logStagehandStep } from \"./flowLogger.js\";\nimport { createTimeoutGuard } from \"./handlers/handlerUtils/timeoutGuard.js\";\nimport { ActTimeoutError } from \"./types/public/sdkErrors.js\";\n\nconst DEFAULT_MODEL_NAME = \"openai/gpt-4.1-mini\";\nconst DEFAULT_VIEWPORT = { width: 1288, height: 711 };\nconst DEFAULT_AGENT_TOOL_TIMEOUT_MS = 45000;\n\ntype ResolvedModelConfiguration = {\n modelName: AvailableModel;\n clientOptions?: ClientOptions;\n};\n\nfunction resolveModelConfiguration(\n model?: V3Options[\"model\"],\n): ResolvedModelConfiguration {\n if (!model) {\n return { modelName: DEFAULT_MODEL_NAME };\n }\n\n if (typeof model === \"string\") {\n return { modelName: model as AvailableModel };\n }\n\n if (model && typeof model === \"object\") {\n const { modelName, ...clientOptions } = model;\n if (!modelName) {\n throw new StagehandInvalidArgumentError(\n \"model.modelName is required when providing client options.\",\n );\n }\n return {\n modelName,\n clientOptions: clientOptions as ClientOptions,\n };\n }\n\n return { modelName: DEFAULT_MODEL_NAME };\n}\n\n/**\n * V3\n *\n * Purpose:\n * A high-level orchestrator for Stagehand V3. Abstracts away whether the browser\n * runs **locally via Chrome** or remotely on **Browserbase**, and exposes simple\n * entrypoints (`act`, `extract`, `observe`) that delegate to the corresponding\n * handler classes.\n *\n * Responsibilities:\n * - Bootstraps Chrome or Browserbase, ensures a working CDP WebSocket, and builds a `V3Context`.\n * - Manages lifecycle: init, context access, cleanup.\n * - Bridges external page objects (Playwright/Puppeteer) into internal frameIds for handlers.\n * - Provides a stable API surface for downstream code regardless of runtime environment.\n */\nexport class V3 {\n private readonly opts: V3Options;\n private state: InitState = { kind: \"UNINITIALIZED\" };\n private actHandler: ActHandler | null = null;\n private extractHandler: ExtractHandler | null = null;\n private observeHandler: ObserveHandler | null = null;\n private ctx: V3Context | null = null;\n public llmClient!: LLMClient;\n\n /**\n * Event bus for internal communication.\n * Emits events like 'screenshot' when screenshots are captured during agent execution.\n */\n public readonly bus: EventEmitter = new EventEmitter();\n private modelName: AvailableModel;\n private modelClientOptions: ClientOptions;\n private llmProvider: LLMProvider;\n private overrideLlmClients: Map<string, LLMClient> = new Map();\n private readonly domSettleTimeoutMs?: number;\n private _isClosing = false;\n public browserbaseSessionId?: string;\n private browserbaseSessionUrl?: string;\n private browserbaseDebugUrl?: string;\n public get browserbaseSessionID(): string | undefined {\n return this.browserbaseSessionId;\n }\n public get browserbaseSessionURL(): string | undefined {\n return this.browserbaseSessionUrl;\n }\n public get browserbaseDebugURL(): string | undefined {\n return this.browserbaseDebugUrl;\n }\n /**\n * Returns true if the browser is running on Browserbase.\n */\n public get isBrowserbase(): boolean {\n return this.state.kind === \"BROWSERBASE\";\n }\n\n /**\n * Returns true if advancedStealth is enabled in Browserbase settings.\n */\n public get isAdvancedStealth(): boolean {\n return (\n this.opts.browserbaseSessionCreateParams?.browserSettings\n ?.advancedStealth === true\n );\n }\n\n /**\n * Returns the configured viewport dimensions from launch options.\n * Falls back to default 1288x711 if not configured.\n */\n public get configuredViewport(): { width: number; height: number } {\n const defaultWidth = 1288;\n const defaultHeight = 711;\n\n if (this.opts.env === \"BROWSERBASE\") {\n const vp =\n this.opts.browserbaseSessionCreateParams?.browserSettings?.viewport;\n return {\n width: vp?.width ?? defaultWidth,\n height: vp?.height ?? defaultHeight,\n };\n }\n\n // LOCAL env\n const vp = this.opts.localBrowserLaunchOptions?.viewport;\n return {\n width: vp?.width ?? defaultWidth,\n height: vp?.height ?? defaultHeight,\n };\n }\n\n private _onCdpClosed = (why: string) => {\n if (this.state.kind === \"BROWSERBASE\") {\n void this._logBrowserbaseSessionStatus();\n }\n\n // Single place to react to the transport closing\n this._immediateShutdown(`CDP transport closed: ${why}`).catch(() => {});\n };\n public readonly experimental: boolean = false;\n public readonly logInferenceToFile: boolean = false;\n public readonly disableAPI: boolean = false;\n private externalLogger?: (logLine: LogLine) => void;\n public verbose: 0 | 1 | 2 = 1;\n private stagehandLogger: StagehandLogger;\n private _history: Array<HistoryEntry> = [];\n private readonly instanceId: string;\n private static _processGuardsInstalled = false;\n private static _instances: Set<V3> = new Set();\n private cacheStorage: CacheStorage;\n private actCache: ActCache;\n private agentCache: AgentCache;\n private apiClient: StagehandAPIClient | null = null;\n private keepAlive?: boolean;\n private shutdownSupervisor: ShutdownSupervisorHandle | null = null;\n\n public stagehandMetrics: StagehandMetrics = {\n actPromptTokens: 0,\n actCompletionTokens: 0,\n actReasoningTokens: 0,\n actCachedInputTokens: 0,\n actInferenceTimeMs: 0,\n extractPromptTokens: 0,\n extractCompletionTokens: 0,\n extractReasoningTokens: 0,\n extractCachedInputTokens: 0,\n extractInferenceTimeMs: 0,\n observePromptTokens: 0,\n observeCompletionTokens: 0,\n observeReasoningTokens: 0,\n observeCachedInputTokens: 0,\n observeInferenceTimeMs: 0,\n agentPromptTokens: 0,\n agentCompletionTokens: 0,\n agentReasoningTokens: 0,\n agentCachedInputTokens: 0,\n agentInferenceTimeMs: 0,\n totalPromptTokens: 0,\n totalCompletionTokens: 0,\n totalReasoningTokens: 0,\n totalCachedInputTokens: 0,\n totalInferenceTimeMs: 0,\n };\n\n constructor(opts: V3Options) {\n this.externalLogger = opts.logger;\n this.verbose = opts.verbose ?? 1;\n this.instanceId = uuidv7();\n this.keepAlive =\n opts.keepAlive ?? opts.browserbaseSessionCreateParams?.keepAlive;\n\n // Create per-instance StagehandLogger (handles usePino, verbose, externalLogger)\n // This gives each V3 instance independent logger configuration\n // while still sharing the underlying Pino worker thread via StagehandLogger.sharedPinoLogger\n const loggerOptions: LoggerOptions = {\n pretty: true,\n level: \"info\", // Most permissive - filtering happens at instance level\n };\n\n if (opts.disablePino !== undefined) {\n loggerOptions.usePino = !opts.disablePino;\n }\n\n this.stagehandLogger = new StagehandLogger(loggerOptions, opts.logger);\n this.stagehandLogger.setVerbosity(this.verbose);\n\n // Also bind to AsyncLocalStorage for v3Logger() calls from handlers\n // This maintains backward compatibility with code that uses v3Logger() directly\n try {\n if (this.externalLogger) {\n // Use external logger directly when provided\n bindInstanceLogger(this.instanceId, this.externalLogger);\n } else {\n // Fall back to stagehandLogger when no external logger\n bindInstanceLogger(this.instanceId, (line) => {\n this.stagehandLogger.log(line);\n });\n }\n } catch {\n // ignore\n }\n const { modelName, clientOptions } = resolveModelConfiguration(opts.model);\n this.modelName = modelName;\n this.experimental = opts.experimental ?? false;\n this.logInferenceToFile = opts.logInferenceToFile ?? false;\n this.llmProvider = new LLMProvider(this.logger);\n this.domSettleTimeoutMs = opts.domSettleTimeout;\n this.disableAPI = opts.disableAPI ?? false;\n\n const baseClientOptions: ClientOptions = clientOptions\n ? ({ ...clientOptions } as ClientOptions)\n : ({} as ClientOptions);\n if (opts.llmClient) {\n this.llmClient = opts.llmClient;\n this.modelClientOptions = baseClientOptions;\n this.disableAPI = true;\n } else {\n // Ensure API key is set\n let apiKey = (baseClientOptions as { apiKey?: string }).apiKey;\n if (!apiKey) {\n try {\n apiKey = loadApiKeyFromEnv(\n this.modelName.split(\"/\")[0], // \"openai\", \"anthropic\", etc\n this.logger,\n );\n } catch (error) {\n this.logger({\n category: \"init\",\n message: `Error loading API key for model ${this.modelName}: ${error}. Continuing without LLM client.`,\n level: 0,\n });\n throw error;\n }\n }\n this.modelClientOptions = {\n ...baseClientOptions,\n apiKey,\n } as ClientOptions;\n\n // Get the default client for this model\n this.llmClient = this.llmProvider.getClient(\n this.modelName,\n this.modelClientOptions,\n { experimental: this.experimental, disableAPI: this.disableAPI },\n );\n }\n\n this.cacheStorage = CacheStorage.create(opts.cacheDir, this.logger, {\n label: \"cache directory\",\n });\n this.actCache = new ActCache({\n storage: this.cacheStorage,\n logger: this.logger,\n getActHandler: () => this.actHandler,\n getDefaultLlmClient: () => this.resolveLlmClient(),\n domSettleTimeoutMs: this.domSettleTimeoutMs,\n });\n this.agentCache = new AgentCache({\n storage: this.cacheStorage,\n logger: this.logger,\n getActHandler: () => this.actHandler,\n getContext: () => this.ctx,\n getDefaultLlmClient: () => this.resolveLlmClient(),\n getBaseModelName: () => this.modelName,\n getSystemPrompt: () => opts.systemPrompt,\n domSettleTimeoutMs: this.domSettleTimeoutMs,\n act: this.act.bind(this),\n });\n\n this.opts = opts;\n\n // Initialize session file logger\n SessionFileLogger.init(this.instanceId, opts);\n\n // Track instance for global process guard handling\n V3._instances.add(this);\n }\n\n /**\n * Async property for metrics so callers can `await v3.metrics`.\n * When using API mode, fetches metrics from the API. Otherwise returns local metrics.\n */\n public get metrics(): Promise<StagehandMetrics> {\n if (this.apiClient) {\n // Fetch metrics from the API\n return this.apiClient.getReplayMetrics().catch((error) => {\n this.logger({\n category: \"metrics\",\n message: `Failed to fetch metrics from API: ${error}`,\n level: 0,\n });\n // Fall back to local metrics on error\n return this.stagehandMetrics;\n });\n }\n // Return local metrics wrapped in a Promise for consistency\n return Promise.resolve(this.stagehandMetrics);\n }\n\n private resolveLlmClient(model?: ModelConfiguration): LLMClient {\n if (!model) {\n return this.llmClient;\n }\n\n let modelName: AvailableModel | string;\n let clientOptions: ClientOptions | undefined;\n\n if (typeof model === \"string\") {\n modelName = model;\n } else {\n const { modelName: overrideModelName, ...rest } = model;\n modelName = overrideModelName;\n clientOptions = rest as ClientOptions;\n }\n\n if (\n modelName === this.modelName &&\n (!clientOptions || Object.keys(clientOptions).length === 0)\n ) {\n return this.llmClient;\n }\n\n const overrideProvider = String(modelName).split(\"/\")[0];\n const baseProvider = String(this.modelName).split(\"/\")[0];\n\n const mergedOptions = {\n ...(overrideProvider === baseProvider ? this.modelClientOptions : {}),\n ...(clientOptions ?? {}),\n } as ClientOptions;\n\n const providerKey = overrideProvider;\n if (!(mergedOptions as { apiKey?: string }).apiKey) {\n const apiKey = loadApiKeyFromEnv(providerKey, this.logger);\n if (apiKey) {\n (mergedOptions as { apiKey?: string }).apiKey = apiKey;\n }\n }\n\n const cacheKey = JSON.stringify({\n modelName,\n clientOptions: mergedOptions,\n });\n\n const cached = this.overrideLlmClients.get(cacheKey);\n if (cached) {\n return cached;\n }\n\n const client = this.llmProvider.getClient(\n modelName as AvailableModel,\n mergedOptions,\n { experimental: this.experimental, disableAPI: this.disableAPI },\n );\n\n this.overrideLlmClients.set(cacheKey, client);\n return client;\n }\n\n private beginAgentReplayRecording(): void {\n this.agentCache.beginRecording();\n }\n\n private endAgentReplayRecording(): AgentReplayStep[] {\n return this.agentCache.endRecording();\n }\n\n private discardAgentReplayRecording(): void {\n this.agentCache.discardRecording();\n }\n\n private isAgentReplayRecording(): boolean {\n return this.agentCache.isRecording();\n }\n\n public isAgentReplayActive(): boolean {\n return this.agentCache.isReplayActive();\n }\n\n public recordAgentReplayStep(step: AgentReplayStep): void {\n this.agentCache.recordStep(step);\n }\n\n /**\n * Async property for history so callers can `await v3.history`.\n * Returns a frozen copy to avoid external mutation.\n */\n public get history(): Promise<ReadonlyArray<HistoryEntry>> {\n return Promise.resolve(Object.freeze([...this._history]));\n }\n\n public addToHistory(\n method: HistoryEntry[\"method\"],\n parameters: unknown,\n result?: unknown,\n ): void {\n this._history.push({\n method,\n parameters,\n result: result ?? null,\n timestamp: new Date().toISOString(),\n });\n }\n\n public updateMetrics(\n functionName: V3FunctionName,\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ): void {\n switch (functionName) {\n case V3FunctionName.ACT:\n this.stagehandMetrics.actPromptTokens += promptTokens;\n this.stagehandMetrics.actCompletionTokens += completionTokens;\n this.stagehandMetrics.actReasoningTokens += reasoningTokens;\n this.stagehandMetrics.actCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.actInferenceTimeMs += inferenceTimeMs;\n break;\n\n case V3FunctionName.EXTRACT:\n this.stagehandMetrics.extractPromptTokens += promptTokens;\n this.stagehandMetrics.extractCompletionTokens += completionTokens;\n this.stagehandMetrics.extractReasoningTokens += reasoningTokens;\n this.stagehandMetrics.extractCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.extractInferenceTimeMs += inferenceTimeMs;\n break;\n\n case V3FunctionName.OBSERVE:\n this.stagehandMetrics.observePromptTokens += promptTokens;\n this.stagehandMetrics.observeCompletionTokens += completionTokens;\n this.stagehandMetrics.observeReasoningTokens += reasoningTokens;\n this.stagehandMetrics.observeCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.observeInferenceTimeMs += inferenceTimeMs;\n break;\n\n case V3FunctionName.AGENT:\n this.stagehandMetrics.agentPromptTokens += promptTokens;\n this.stagehandMetrics.agentCompletionTokens += completionTokens;\n this.stagehandMetrics.agentReasoningTokens += reasoningTokens;\n this.stagehandMetrics.agentCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.agentInferenceTimeMs += inferenceTimeMs;\n break;\n }\n this.updateTotalMetrics(\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n );\n }\n\n private updateTotalMetrics(\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ): void {\n this.stagehandMetrics.totalPromptTokens += promptTokens;\n this.stagehandMetrics.totalCompletionTokens += completionTokens;\n this.stagehandMetrics.totalReasoningTokens += reasoningTokens;\n this.stagehandMetrics.totalCachedInputTokens += cachedInputTokens;\n this.stagehandMetrics.totalInferenceTimeMs += inferenceTimeMs;\n }\n\n private async _immediateShutdown(reason: string): Promise<void> {\n try {\n this.logger({\n category: \"v3\",\n message: `initiating shutdown → ${reason}`,\n level: 0,\n });\n } catch {\n //\n }\n\n try {\n this.logger({\n category: \"v3\",\n message: `closing resources → ${reason}`,\n level: 0,\n });\n await this.close({ force: true });\n } catch {\n // swallow — already shutting down\n }\n }\n\n /** Spawn a crash-only supervisor that cleans up when this process dies. */\n private startShutdownSupervisor(\n config: ShutdownSupervisorConfig,\n ): ShutdownSupervisorHandle | null {\n if (this.shutdownSupervisor) return this.shutdownSupervisor;\n this.shutdownSupervisor = startShutdownSupervisor(config, {\n onError: (error, context) => {\n try {\n this.logger({\n category: \"v3\",\n message:\n \"Shutdown supervisor unavailable; crash cleanup disabled. \" +\n \"If this process exits unexpectedly, local Chrome or Browserbase \" +\n \"sessions may remain running even with keepAlive=false.\",\n level: 0,\n auxiliary: {\n context: { value: context, type: \"string\" },\n error: { value: error.message, type: \"string\" },\n },\n });\n } catch {\n // ignore logging failures\n }\n },\n });\n return this.shutdownSupervisor;\n }\n\n /** Stop the supervisor during a normal shutdown. */\n private stopShutdownSupervisor(): void {\n if (!this.shutdownSupervisor) return;\n try {\n this.shutdownSupervisor.stop();\n } catch {\n // best-effort\n }\n this.shutdownSupervisor = null;\n }\n\n /**\n * Entrypoint: initializes handlers, launches Chrome or Browserbase,\n * and sets up a CDP context.\n */\n async init(): Promise<void> {\n try {\n return await withInstanceLogContext(this.instanceId, async () => {\n this.actHandler = new ActHandler(\n this.llmClient,\n this.modelName,\n this.modelClientOptions,\n (model) => this.resolveLlmClient(model),\n this.opts.systemPrompt ?? \"\",\n this.logInferenceToFile,\n this.opts.selfHeal ?? true,\n (\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ) =>\n this.updateMetrics(\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ),\n this.domSettleTimeoutMs,\n );\n this.extractHandler = new ExtractHandler(\n this.llmClient,\n this.modelName,\n this.modelClientOptions,\n (model) => this.resolveLlmClient(model),\n this.opts.systemPrompt ?? \"\",\n this.logInferenceToFile,\n this.experimental,\n (\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ) =>\n this.updateMetrics(\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ),\n );\n this.observeHandler = new ObserveHandler(\n this.llmClient,\n this.modelName,\n this.modelClientOptions,\n (model) => this.resolveLlmClient(model),\n this.opts.systemPrompt ?? \"\",\n this.logInferenceToFile,\n this.experimental,\n (\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ) =>\n this.updateMetrics(\n functionName,\n promptTokens,\n completionTokens,\n reasoningTokens,\n cachedInputTokens,\n inferenceTimeMs,\n ),\n );\n if (this.opts.env === \"LOCAL\") {\n // chrome-launcher conditionally adds --headless when the environment variable\n // HEADLESS is set, without parsing its value.\n // if it is not equal to true, then we delete it from the process\n const envHeadless = process.env.HEADLESS;\n if (envHeadless !== undefined) {\n const normalized = envHeadless.trim().toLowerCase();\n if (normalized !== \"true\") {\n delete process.env.HEADLESS;\n }\n }\n const lbo: LocalBrowserLaunchOptions =\n this.opts.localBrowserLaunchOptions ?? {};\n\n if (lbo.cdpHeaders && !lbo.cdpUrl) {\n this.logger({\n category: \"init\",\n message:\n \"`cdpHeaders` was provided but `cdpUrl` is not set — cdpHeaders will be ignored. Set `cdpUrl` to connect to an existing browser via CDP.\",\n level: 2,\n });\n }\n\n // If a CDP URL is provided, attach instead of launching.\n if (lbo.cdpUrl) {\n this.logger({\n category: \"init\",\n message: \"Connecting to local browser\",\n level: 1,\n });\n this.ctx = await V3Context.create(lbo.cdpUrl, {\n env: \"LOCAL\",\n cdpHeaders: lbo.cdpHeaders,\n });\n const logCtx = SessionFileLogger.getContext();\n this.ctx.conn.cdpLogger = (info) =>\n SessionFileLogger.logCdpCallEvent(info, logCtx);\n this.ctx.conn.cdpEventLogger = (info) =>\n SessionFileLogger.logCdpMessageEvent(info, logCtx);\n this.ctx.conn.onTransportClosed(this._onCdpClosed);\n this.state = {\n kind: \"LOCAL\",\n // no LaunchedChrome when attaching externally; create a stub kill\n chrome: {\n kill: async () => {},\n } as unknown as import(\"chrome-launcher\").LaunchedChrome,\n ws: lbo.cdpUrl,\n };\n this.resetBrowserbaseSessionMetadata();\n // Post-connect settings (downloads and viewport) if provided\n await this._applyPostConnectLocalOptions(lbo);\n return;\n }\n this.logger({\n category: \"init\",\n message: \"Launching local browser\",\n level: 1,\n });\n\n // Determine or create user data dir\n let userDataDir = lbo.userDataDir;\n let createdTemp = false;\n if (!userDataDir) {\n const base = path.join(os.tmpdir(), \"stagehand-v3\");\n fs.mkdirSync(base, { recursive: true });\n userDataDir = fs.mkdtempSync(path.join(base, \"profile-\"));\n createdTemp = true;\n }\n\n // Build chrome flags\n const defaults = [\n \"--remote-allow-origins=*\",\n \"--no-first-run\",\n \"--no-default-browser-check\",\n \"--disable-dev-shm-usage\",\n \"--site-per-process\",\n ];\n let chromeFlags: string[];\n const ignore = lbo.ignoreDefaultArgs;\n if (ignore === true) {\n // drop defaults\n chromeFlags = [];\n } else if (Array.isArray(ignore)) {\n chromeFlags = defaults.filter(\n (f) => !ignore.some((ex) => f.includes(ex)),\n );\n } else {\n chromeFlags = [...defaults];\n }\n\n // headless handled by launchLocalChrome\n if (lbo.devtools) chromeFlags.push(\"--auto-open-devtools-for-tabs\");\n if (lbo.locale) chromeFlags.push(`--lang=${lbo.locale}`);\n if (!lbo.viewport) {\n lbo.viewport = DEFAULT_VIEWPORT;\n }\n if (lbo.viewport?.width && lbo.viewport?.height) {\n chromeFlags.push(\n `--window-size=${lbo.viewport.width},${lbo.viewport.height + 87}`, // Added pixels to the window to account for the address bar\n );\n }\n if (typeof lbo.deviceScaleFactor === \"number\") {\n chromeFlags.push(\n `--force-device-scale-factor=${Math.max(0.1, lbo.deviceScaleFactor)}`,\n );\n }\n if (lbo.hasTouch) chromeFlags.push(\"--touch-events=enabled\");\n if (lbo.ignoreHTTPSErrors)\n chromeFlags.push(\"--ignore-certificate-errors\");\n if (lbo.proxy?.server)\n chromeFlags.push(`--proxy-server=${lbo.proxy.server}`);\n if (lbo.proxy?.bypass)\n chromeFlags.push(`--proxy-bypass-list=${lbo.proxy.bypass}`);\n\n // add user-supplied args last\n if (Array.isArray(lbo.args)) chromeFlags.push(...lbo.args);\n\n const keepAlive = this.keepAlive === true;\n const { ws, chrome } = await launchLocalChrome({\n chromePath: lbo.executablePath,\n chromeFlags,\n port: lbo.port,\n headless: lbo.headless,\n userDataDir,\n connectTimeoutMs: lbo.connectTimeoutMs,\n handleSIGINT: !keepAlive,\n });\n if (keepAlive) {\n try {\n chrome.process?.unref?.();\n } catch {\n // best-effort: avoid keeping the event loop alive\n }\n }\n this.ctx = await V3Context.create(ws, {\n env: \"LOCAL\",\n localBrowserLaunchOptions: lbo,\n });\n const logCtx = SessionFileLogger.getContext();\n this.ctx.conn.cdpLogger = (info) =>\n SessionFileLogger.logCdpCallEvent(info, logCtx);\n this.ctx.conn.cdpEventLogger = (info) =>\n SessionFileLogger.logCdpMessageEvent(info, logCtx);\n this.ctx.conn.onTransportClosed(this._onCdpClosed);\n this.state = {\n kind: \"LOCAL\",\n chrome,\n ws,\n userDataDir,\n createdTempProfile: createdTemp,\n preserveUserDataDir: !!lbo.preserveUserDataDir,\n };\n this.resetBrowserbaseSessionMetadata();\n const chromePid = chrome.process?.pid ?? chrome.pid;\n if (!keepAlive && chromePid) {\n this.startShutdownSupervisor({\n kind: \"LOCAL\",\n pid: chromePid,\n userDataDir,\n createdTempProfile: createdTemp,\n preserveUserDataDir: !!lbo.preserveUserDataDir,\n });\n }\n\n // Post-connect settings (downloads and viewport) if provided\n await this._applyPostConnectLocalOptions(lbo);\n return;\n }\n\n if (this.opts.env === \"BROWSERBASE\") {\n const { apiKey, projectId } = this.requireBrowserbaseCreds();\n this.logger({\n category: \"init\",\n message: \"Starting browserbase session\",\n level: 1,\n });\n const baseSessionParams =\n this.opts.browserbaseSessionCreateParams ?? {};\n const resolvedKeepAlive = this.keepAlive;\n const keepAlive = this.keepAlive === true;\n const effectiveSessionParams =\n resolvedKeepAlive !== undefined\n ? { ...baseSessionParams, keepAlive: resolvedKeepAlive }\n : baseSessionParams;\n if (!this.disableAPI && !this.experimental) {\n this.apiClient = new StagehandAPIClient({\n apiKey,\n projectId,\n logger: this.logger,\n serverCache: this.opts.serverCache,\n });\n const {\n projectId: overrideProjectId,\n browserSettings,\n userMetadata,\n ...restSessionParams\n } = effectiveSessionParams;\n const resolvedProjectId = overrideProjectId ?? projectId;\n const createSessionPayload = {\n ...(resolvedProjectId ? { projectId: resolvedProjectId } : {}),\n ...restSessionParams,\n browserSettings: {\n ...(browserSettings ?? {}),\n viewport: browserSettings?.viewport ?? {\n width: 1288,\n height: 711,\n },\n },\n userMetadata: {\n ...(userMetadata ?? {}),\n stagehand: \"true\",\n },\n };\n const { sessionId, available } = await this.apiClient.init({\n modelName: this.modelName,\n modelApiKey: this.modelClientOptions.apiKey,\n domSettleTimeoutMs: this.domSettleTimeoutMs,\n verbose: this.verbose,\n systemPrompt: this.opts.systemPrompt,\n selfHeal: this.opts.selfHeal,\n browserbaseSessionCreateParams: createSessionPayload,\n browserbaseSessionID: this.opts.browserbaseSessionID,\n });\n if (!available) {\n this.apiClient = null;\n }\n this.opts.browserbaseSessionID = sessionId;\n }\n const { ws, sessionId, bb } = await createBrowserbaseSession(\n apiKey,\n projectId,\n effectiveSessionParams,\n this.opts.browserbaseSessionID,\n );\n this.ctx = await V3Context.create(ws, {\n env: \"BROWSERBASE\",\n apiClient: this.apiClient,\n });\n const logCtx = SessionFileLogger.getContext();\n this.ctx.conn.cdpLogger = (info) =>\n SessionFileLogger.logCdpCallEvent(info, logCtx);\n this.ctx.conn.cdpEventLogger = (info) =>\n SessionFileLogger.logCdpMessageEvent(info, logCtx);\n this.ctx.conn.onTransportClosed(this._onCdpClosed);\n this.state = { kind: \"BROWSERBASE\", sessionId, ws, bb };\n this.browserbaseSessionId = sessionId;\n if (!keepAlive && !this.disableAPI) {\n this.startShutdownSupervisor({\n kind: \"STAGEHAND_API\",\n sessionId,\n apiKey,\n projectId,\n });\n }\n\n await this._ensureBrowserbaseDownloadsEnabled();\n\n const resumed = !!this.opts.browserbaseSessionID;\n let debugUrl: string | undefined;\n try {\n const dbg = (await bb.sessions.debug(sessionId)) as unknown as {\n debuggerUrl?: string;\n };\n debugUrl = dbg?.debuggerUrl;\n } catch {\n // Ignore debug fetch failures; continue with sessionUrl only\n }\n const sessionUrl = `https://www.browserbase.com/sessions/${sessionId}`;\n this.browserbaseSessionUrl = sessionUrl;\n this.browserbaseDebugUrl = debugUrl;\n\n try {\n this.logger({\n category: \"init\",\n message: resumed\n ? this.apiClient\n ? \"Browserbase session started\"\n : \"Browserbase session resumed\"\n : \"Browserbase session started\",\n level: 1,\n auxiliary: {\n sessionUrl: { value: sessionUrl, type: \"string\" },\n ...(debugUrl && {\n debugUrl: { value: debugUrl, type: \"string\" },\n }),\n sessionId: { value: sessionId, type: \"string\" },\n },\n });\n } catch {\n // best-effort logging — ignore failures\n }\n return;\n }\n\n const neverEnv: never = this.opts.env;\n throw new StagehandInitError(`Unsupported env: ${neverEnv}`);\n });\n } catch (error) {\n // Cleanup instanceLoggers map on init failure to prevent memory leak\n if (this.externalLogger) {\n try {\n unbindInstanceLogger(this.instanceId);\n } catch {\n // ignore cleanup errors\n }\n }\n throw error;\n }\n }\n\n /** Apply post-connect local browser options that require CDP. */\n private async _applyPostConnectLocalOptions(\n lbo: LocalBrowserLaunchOptions,\n ): Promise<void> {\n try {\n // Downloads behavior\n if (lbo.downloadsPath || lbo.acceptDownloads !== undefined) {\n const behavior = lbo.acceptDownloads === false ? \"deny\" : \"allow\";\n await this.ctx?.conn\n .send(\"Browser.setDownloadBehavior\", {\n behavior,\n downloadPath: lbo.downloadsPath,\n eventsEnabled: true,\n })\n .catch(() => {});\n }\n } catch {\n // best-effort only\n }\n }\n\n private async _ensureBrowserbaseDownloadsEnabled(): Promise<void> {\n const conn = this.ctx?.conn;\n if (!conn) return;\n try {\n await conn.send(\"Browser.setDownloadBehavior\", {\n behavior: \"allow\",\n downloadPath: \"downloads\",\n eventsEnabled: true,\n });\n } catch {\n // best-effort only\n }\n }\n\n private resetBrowserbaseSessionMetadata(): void {\n this.browserbaseSessionId = undefined;\n this.browserbaseSessionUrl = undefined;\n this.browserbaseDebugUrl = undefined;\n }\n\n /**\n * Run an \"act\" instruction through the ActHandler.\n *\n * New API:\n * - act(instruction: string, options?: ActOptions)\n * - act(action: Action, options?: ActOptions)\n */\n async act(instruction: string, options?: ActOptions): Promise<ActResult>;\n async act(action: Action, options?: ActOptions): Promise<ActResult>;\n\n @logStagehandStep(\"Stagehand.act\", \"ACT\")\n async act(input: string | Action, options?: ActOptions): Promise<ActResult> {\n return await withInstanceLogContext(this.instanceId, async () => {\n if (!this.actHandler) throw new StagehandNotInitializedError(\"act()\");\n\n let actResult: ActResult;\n\n if (isObserveResult(input)) {\n // Resolve page: use provided page if any, otherwise default active page\n const v3Page = await this.resolvePage(options?.page);\n\n // Use selector as provided to support XPath, CSS, and other engines\n const selector = input.selector;\n if (this.apiClient) {\n actResult = await this.apiClient.act({\n input,\n options,\n frameId: v3Page.mainFrameId(),\n });\n } else {\n const ensureTimeRemaining = createTimeoutGuard(\n options?.timeout,\n (ms) => new ActTimeoutError(ms),\n );\n actResult = await this.actHandler.takeDeterministicAction(\n { ...input, selector },\n v3Page,\n this.domSettleTimeoutMs,\n this.resolveLlmClient(options?.model),\n ensureTimeRemaining,\n options?.variables,\n );\n }\n\n // history: record ObserveResult-based act call\n this.addToHistory(\n \"act\",\n {\n observeResult: input,\n },\n actResult,\n );\n return actResult;\n }\n // instruction path\n if (typeof input !== \"string\" || !input.trim()) {\n throw new StagehandInvalidArgumentError(\n \"act(): instruction string is required unless passing an Action\",\n );\n }\n\n // Resolve page from options or default\n const page = await this.resolvePage(options?.page);\n const actCacheLlmClient = options?.model\n ? this.resolveLlmClient(options.model)\n : undefined;\n\n let actCacheContext: Awaited<\n ReturnType<typeof this.actCache.prepareContext>\n > | null = null;\n const canUseCache =\n typeof input === \"string\" &&\n !this.isAgentReplayRecording() &&\n this.actCache.enabled;\n if (canUseCache) {\n actCacheContext = await this.actCache.prepareContext(\n input,\n page,\n flattenVariables(options?.variables),\n );\n if (actCacheContext) {\n const cachedResult = await this.actCache.tryReplay(\n actCacheContext,\n page,\n options?.timeout,\n actCacheLlmClient,\n );\n if (cachedResult) {\n this.addToHistory(\n \"act\",\n {\n instruction: input,\n variables: options?.variables,\n timeout: options?.timeout,\n cacheHit: true,\n },\n cachedResult,\n );\n return cachedResult;\n }\n }\n }\n\n const handlerParams: ActHandlerParams = {\n instruction: input,\n page,\n variables: options?.variables,\n timeout: options?.timeout,\n model: options?.model,\n };\n if (this.apiClient) {\n const frameId = page.mainFrameId();\n actResult = await this.apiClient.act({ input, options, frameId });\n } else {\n actResult = await this.actHandler.act(handlerParams);\n }\n // history: record instruction-based act call (omit page object)\n this.addToHistory(\n \"act\",\n {\n instruction: input,\n variables: options?.variables,\n timeout: options?.timeout,\n },\n actResult,\n );\n\n if (\n actCacheContext &&\n actResult.success &&\n Array.isArray(actResult.actions) &&\n actResult.actions.length > 0\n ) {\n await this.actCache.store(actCacheContext, actResult);\n }\n return actResult;\n });\n }\n\n /**\n * Run an \"extract\" instruction through the ExtractHandler.\n *\n * Accepted forms:\n * - extract() → pageText\n * - extract(options) → pageText\n * - extract(instruction) → defaultExtractSchema\n * - extract(instruction, schema) → schema-inferred\n * - extract(instruction, schema, options)\n */\n\n async extract(): Promise<z.infer<typeof pageTextSchema>>;\n async extract(\n options: ExtractOptions,\n ): Promise<z.infer<typeof pageTextSchema>>;\n async extract(\n instruction: string,\n options?: ExtractOptions,\n ): Promise<z.infer<typeof defaultExtractSchema>>;\n async extract<T extends StagehandZodSchema>(\n instruction: string,\n schema: T,\n options?: ExtractOptions,\n ): Promise<InferStagehandSchema<T>>;\n\n @logStagehandStep(\"Stagehand.extract\", \"EXTRACT\")\n async extract(\n a?: string | ExtractOptions,\n b?: StagehandZodSchema | ExtractOptions,\n c?: ExtractOptions,\n ): Promise<unknown> {\n return await withInstanceLogContext(this.instanceId, async () => {\n if (!this.extractHandler) {\n throw new StagehandNotInitializedError(\"extract()\");\n }\n\n // Normalize args\n let instruction: string | undefined;\n let schema: StagehandZodSchema | undefined;\n let options: ExtractOptions | undefined;\n\n if (typeof a === \"string\") {\n instruction = a;\n const isZodSchema = (val: unknown): val is StagehandZodSchema =>\n !!val &&\n typeof val === \"object\" &&\n \"parse\" in val &&\n \"safeParse\" in val;\n if (isZodSchema(b)) {\n schema = b as StagehandZodSchema;\n options = c as ExtractOptions | undefined;\n } else {\n options = b as ExtractOptions | undefined;\n }\n } else {\n // a is options or undefined\n options = (a as ExtractOptions) || undefined;\n }\n\n if (!instruction && schema) {\n throw new StagehandInvalidArgumentError(\n \"extract(): schema provided without instruction\",\n );\n }\n\n // If instruction without schema → defaultExtractSchema\n const effectiveSchema =\n instruction && !schema ? defaultExtractSchema : schema;\n\n // Resolve page from options or use active page\n const page = await this.resolvePage(options?.page);\n\n const handlerParams: ExtractHandlerParams<StagehandZodSchema> = {\n instruction,\n schema: effectiveSchema as StagehandZodSchema | undefined,\n model: options?.model,\n timeout: options?.timeout,\n selector: options?.selector,\n page,\n };\n let result: z.infer<typeof effectiveSchema> | { pageText: string };\n if (this.apiClient) {\n const frameId = page.mainFrameId();\n result = await this.apiClient.extract({\n instruction: handlerParams.instruction,\n schema: handlerParams.schema,\n options,\n frameId,\n });\n } else {\n result =\n await this.extractHandler.extract<StagehandZodSchema>(handlerParams);\n }\n const historySchemaDescriptor = effectiveSchema\n ? toJsonSchema(effectiveSchema)\n : undefined;\n this.addToHistory(\n \"extract\",\n {\n instruction,\n selector: options?.selector,\n timeout: options?.timeout,\n schema: historySchemaDescriptor,\n },\n result,\n );\n return result;\n });\n }\n\n /**\n * Run an \"observe\" instruction through the ObserveHandler.\n */\n async observe(): Promise<Action[]>;\n async observe(options: ObserveOptions): Promise<Action[]>;\n async observe(\n instruction: string,\n options?: ObserveOptions,\n ): Promise<Action[]>;\n @logStagehandStep(\"Stagehand.observe\", \"OBSERVE\")\n async observe(\n a?: string | ObserveOptions,\n b?: ObserveOptions,\n ): Promise<Action[]> {\n return await withInstanceLogContext(this.instanceId, async () => {\n if (!this.observeHandler) {\n throw new StagehandNotInitializedError(\"observe()\");\n }\n\n // Normalize args\n let instruction: string | undefined;\n let options: ObserveOptions | undefined;\n if (typeof a === \"string\") {\n instruction = a;\n options = b;\n } else {\n options = a as ObserveOptions | undefined;\n }\n\n // Resolve to our internal Page type\n const page = await this.resolvePage(options?.page);\n\n const handlerParams: ObserveHandlerParams = {\n instruction,\n model: options?.model,\n timeout: options?.timeout,\n selector: options?.selector,\n page: page!,\n };\n\n let results: Action[];\n if (this.apiClient) {\n const frameId = page.mainFrameId();\n results = await this.apiClient.observe({\n instruction,\n options,\n frameId,\n });\n } else {\n results = await this.observeHandler.observe(handlerParams);\n }\n\n // history: record observe call (omit page object)\n this.addToHistory(\n \"observe\",\n {\n instruction,\n timeout: options?.timeout,\n },\n results,\n );\n return results;\n });\n }\n\n /** Return the browser-level CDP WebSocket endpoint. */\n connectURL(): string {\n if (this.state.kind === \"UNINITIALIZED\") {\n throw new StagehandNotInitializedError(\"connectURL()\");\n }\n return this.state.ws;\n }\n\n /** Expose the current CDP-backed context. */\n public get context(): V3Context {\n return this.ctx;\n }\n\n /** Best-effort cleanup of context and launched resources. */\n async close(opts?: { force?: boolean }): Promise<void> {\n // If we're already closing and this isn't a forced close, no-op.\n if (this._isClosing && !opts?.force) return;\n this._isClosing = true;\n\n const keepAlive = this.keepAlive === true;\n\n // Unhook CDP transport close handler BEFORE ending the API session.\n // apiClient.end() can cause the hosted API to terminate the Browserbase\n // session, which closes the CDP WebSocket. If the handler is still\n // registered, _onCdpClosed fires and re-enters close() with force=true,\n // causing a double-close cascade.\n try {\n if (this.ctx?.conn && this._onCdpClosed) {\n this.ctx.conn.offTransportClosed?.(this._onCdpClosed);\n }\n } catch {\n // ignore\n }\n\n // End Browserbase session via API when keepAlive is not enabled\n if (!keepAlive && this.apiClient) {\n try {\n await this.apiClient.end();\n } catch {\n // best-effort cleanup\n }\n }\n\n try {\n // Close session file logger\n try {\n await SessionFileLogger.close();\n } catch {\n // ignore\n }\n\n // Close CDP context\n try {\n await this.ctx?.close();\n } catch {\n // ignore\n }\n\n // Kill local Chrome and clean up temp profile when keepAlive is not enabled\n if (!keepAlive && this.state.kind === \"LOCAL\") {\n const localState = this.state;\n await cleanupLocalBrowser({\n killChrome: () => localState.chrome.kill(),\n userDataDir: localState.userDataDir,\n createdTempProfile: localState.createdTempProfile,\n preserveUserDataDir: localState.preserveUserDataDir,\n });\n }\n } finally {\n this.stopShutdownSupervisor();\n\n // Reset internal state\n this.state = { kind: \"UNINITIALIZED\" };\n this.ctx = null;\n this._isClosing = false;\n this.resetBrowserbaseSessionMetadata();\n try {\n unbindInstanceLogger(this.instanceId);\n } catch {\n // ignore\n }\n try {\n this.bus.removeAllListeners();\n } catch {\n // ignore\n }\n this._history = [];\n this.actHandler = null;\n this.extractHandler = null;\n this.observeHandler = null;\n V3._instances.delete(this);\n }\n }\n\n /** Guard: ensure Browserbase credentials exist in options. */\n private requireBrowserbaseCreds(): {\n apiKey: string;\n projectId?: string;\n } {\n let { apiKey, projectId } = this.opts;\n\n // Fall back to environment variables if not explicitly provided\n if (!apiKey)\n apiKey = process.env.BROWSERBASE_API_KEY ?? process.env.BB_API_KEY;\n if (!projectId)\n projectId =\n process.env.BROWSERBASE_PROJECT_ID ?? process.env.BB_PROJECT_ID;\n\n if (!apiKey) {\n throw new MissingEnvironmentVariableError(\n \"BROWSERBASE_API_KEY\",\n \"Browserbase\",\n );\n }\n\n // Cache resolved values back into opts for consistency\n this.opts.apiKey = apiKey;\n if (projectId) this.opts.projectId = projectId;\n\n // Informational log\n this.logger({\n category: \"init\",\n message: \"Using Browserbase credentials\",\n level: 1,\n });\n\n return { apiKey, projectId };\n }\n\n public get logger(): (logLine: LogLine) => void {\n // Delegate to per-instance StagehandLogger\n // StagehandLogger handles: verbosity filtering, usePino selection, external logger routing\n // This provides per-instance configuration while maintaining shared Pino optimization\n return (logLine: LogLine) => {\n const line = { ...logLine, level: logLine.level ?? 1 };\n this.stagehandLogger.log(line);\n };\n }\n\n /**\n * Normalize a Playwright/Puppeteer page object into its top frame id,\n * so handlers can resolve it to a `Page` within our V3Context.\n */\n private async resolveTopFrameId(\n page: PlaywrightPage | PuppeteerPage | PatchrightPage,\n ): Promise<string> {\n if (this.isPlaywrightPage(page)) {\n const cdp = await page.context().newCDPSession(page);\n const { frameTree } = await cdp.send(\"Page.getFrameTree\");\n return frameTree.frame.id;\n }\n\n if (this.isPatchrightPage(page)) {\n const cdp = await page.context().newCDPSession(page);\n const { frameTree } = await cdp.send(\"Page.getFrameTree\");\n return frameTree.frame.id;\n }\n\n if (this.isPuppeteerPage(page)) {\n const cdp = await page.createCDPSession();\n const { frameTree } = await cdp.send(\"Page.getFrameTree\");\n this.logger({\n category: \"v3\",\n message: \"Puppeteer frame id\",\n level: 2,\n auxiliary: { frameId: { value: frameTree.frame.id, type: \"string\" } },\n });\n return frameTree.frame.id;\n }\n\n throw new StagehandInvalidArgumentError(\n \"Unsupported page object passed to V3.act()\",\n );\n }\n\n private isPlaywrightPage(p: unknown): p is PlaywrightPage {\n return (\n typeof p === \"object\" &&\n p !== null &&\n typeof (p as PlaywrightPage).context === \"function\"\n );\n }\n\n private isPatchrightPage(p: unknown): p is PatchrightPage {\n return (\n typeof p === \"object\" &&\n p !== null &&\n typeof (p as PatchrightPage).context === \"function\"\n );\n }\n\n private isPuppeteerPage(p: unknown): p is PuppeteerPage {\n return (\n typeof p === \"object\" &&\n p !== null &&\n typeof (p as PuppeteerPage).target === \"function\"\n );\n }\n\n /** Resolve an external page reference or fall back to the active V3 page. */\n private async resolvePage(page?: AnyPage): Promise<Page> {\n if (page) {\n return await this.normalizeToV3Page(page);\n }\n const ctx = this.ctx;\n if (!ctx) {\n throw new StagehandNotInitializedError(\"resolvePage()\");\n }\n return await ctx.awaitActivePage();\n }\n\n private async normalizeToV3Page(input: AnyPage): Promise<Page> {\n if (input instanceof (await import(\"./understudy/page.js\")).Page) {\n return input as Page;\n }\n if (this.isPlaywrightPage(input)) {\n const frameId = await this.resolveTopFrameId(input);\n const page = this.ctx!.resolvePageByMainFrameId(frameId);\n if (!page)\n throw new StagehandInitError(\n \"Failed to resolve V3 Page from Playwright page.\",\n );\n return page;\n }\n if (this.isPatchrightPage(input)) {\n const frameId = await this.resolveTopFrameId(input);\n const page = this.ctx!.resolvePageByMainFrameId(frameId);\n if (!page)\n throw new StagehandInitError(\n \"Failed to resolve V3 Page from Patchright page.\",\n );\n return page;\n }\n if (this.isPuppeteerPage(input)) {\n const frameId = await this.resolveTopFrameId(input);\n const page = this.ctx!.resolvePageByMainFrameId(frameId);\n if (!page)\n throw new StagehandInitError(\n \"Failed to resolve V3 Page from Puppeteer page.\",\n );\n return page;\n }\n throw new StagehandInvalidArgumentError(\"Unsupported page object.\");\n }\n\n private async _logBrowserbaseSessionStatus(): Promise<void> {\n if (this.state.kind !== \"BROWSERBASE\") {\n return;\n }\n\n try {\n const snapshot = (await this.state.bb.sessions.retrieve(\n this.state.sessionId,\n )) as { id?: string; status?: string };\n if (!snapshot?.status) return;\n\n const sessionId = snapshot.id ?? this.state.sessionId;\n const message =\n snapshot.status === \"TIMED_OUT\"\n ? `Browserbase session timed out (sessionId: ${sessionId})`\n : `Browserbase session status: ${snapshot.status}`;\n\n this.logger({\n category: \"v3\",\n message,\n level: 0,\n });\n } catch {\n // Ignore failures; nothing to log\n }\n }\n\n /**\n * Prepares shared context for agent execution (both execute and stream).\n * Extracts duplicated setup logic into a single helper.\n */\n private async prepareAgentExecution(\n options: AgentConfig | undefined,\n instructionOrOptions:\n | string\n | AgentExecuteOptions\n | AgentStreamExecuteOptions,\n agentConfigSignature: string,\n ): Promise<{\n handler: V3AgentHandler;\n resolvedOptions: AgentExecuteOptions | AgentStreamExecuteOptions;\n instruction: string;\n cacheContext: AgentCacheContext | null;\n llmClient: LLMClient;\n }> {\n // Note: experimental validation is done at the call site before this method\n // Warn if mode is not explicitly set (defaults to \"dom\")\n if (options?.mode === undefined) {\n this.logger({\n category: \"agent\",\n message:\n \"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\",\n level: 0,\n });\n }\n\n const tools = options?.integrations\n ? await resolveTools(options.integrations, options.tools)\n : (options?.tools ?? {});\n\n const agentLlmClient = options?.model\n ? this.resolveLlmClient(options.model)\n : this.llmClient;\n\n const resolvedExecutionModel = options?.executionModel ?? options?.model;\n\n const handler = new V3AgentHandler(\n this,\n this.logger,\n agentLlmClient,\n resolvedExecutionModel,\n options?.systemPrompt,\n tools,\n options?.mode,\n );\n\n const resolvedOptions: AgentExecuteOptions | AgentStreamExecuteOptions =\n typeof instructionOrOptions === \"string\"\n ? {\n instruction: instructionOrOptions,\n toolTimeout: DEFAULT_AGENT_TOOL_TIMEOUT_MS,\n }\n : {\n ...instructionOrOptions,\n toolTimeout:\n instructionOrOptions.toolTimeout ?? DEFAULT_AGENT_TOOL_TIMEOUT_MS,\n };\n\n const callbacksWithSafety = resolvedOptions.callbacks as\n | AgentExecuteCallbacks\n | undefined;\n if (callbacksWithSafety?.onSafetyConfirmation) {\n throw new StagehandInvalidArgumentError(\n 'onSafetyConfirmation callback is only supported when using mode: \"cua\" agents.',\n );\n }\n\n if (resolvedOptions.page) {\n const normalizedPage = await this.normalizeToV3Page(resolvedOptions.page);\n this.ctx!.setActivePage(normalizedPage);\n }\n\n const instruction = resolvedOptions.instruction.trim();\n const sanitizedOptions =\n this.agentCache.sanitizeExecuteOptions(resolvedOptions);\n\n const cacheVariables = flattenVariables(resolvedOptions.variables);\n\n const cacheContext = this.agentCache.shouldAttemptCache(instruction)\n ? await this.agentCache.prepareContext({\n instruction,\n options: sanitizedOptions,\n configSignature: agentConfigSignature,\n page: await this.ctx!.awaitActivePage(),\n variables: cacheVariables,\n })\n : null;\n\n return {\n handler,\n resolvedOptions,\n instruction,\n cacheContext,\n llmClient: agentLlmClient,\n };\n }\n\n /**\n * Create a v3 agent instance (AISDK tool-based) with execute().\n * Mirrors the v2 Stagehand.agent() tool mode (no CUA provider here).\n *\n * @overload When stream: true, returns a streaming agent where execute() returns AgentStreamResult\n * @overload When stream is false/undefined, returns a non-streaming agent where execute() returns AgentResult\n */\n agent(options: AgentConfig & { stream: true }): {\n execute: (\n instructionOrOptions: string | AgentStreamExecuteOptions,\n ) => Promise<AgentStreamResult>;\n };\n agent(options?: AgentConfig & { stream?: false }): {\n execute: (\n instructionOrOptions: string | AgentExecuteOptions,\n ) => Promise<AgentResult>;\n };\n agent(options?: AgentConfig): {\n execute: (\n instructionOrOptions:\n | string\n | AgentExecuteOptions\n | AgentStreamExecuteOptions,\n ) => Promise<AgentResult | AgentStreamResult>;\n } {\n // Determine if CUA mode is enabled (via mode: \"cua\" or deprecated cua: true)\n const isCuaMode =\n options?.mode !== undefined\n ? options.mode === \"cua\"\n : options?.cua === true;\n\n // Emit deprecation warning for cua: true\n if (options?.cua === true) {\n this.logger({\n category: \"agent\",\n message:\n '[DEPRECATED] The \"cua: true\" option is deprecated. Use \"mode: \\'cua\\'\" instead. This option will be removed in a future version.',\n level: 0,\n });\n console.warn(\n '[Stagehand] DEPRECATED: The \"cua: true\" option is deprecated. Use \"mode: \\'cua\\'\" instead.',\n );\n }\n\n this.logger({\n category: \"agent\",\n message: \"Creating v3 agent instance\",\n level: 1,\n auxiliary: {\n cua: { value: isCuaMode ? \"true\" : \"false\", type: \"boolean\" },\n mode: { value: options?.mode ?? \"dom\", type: \"string\" },\n model: {\n value: extractModelName(options?.model) ?? this.llmClient.modelName,\n type: \"string\",\n },\n systemPrompt: { value: options?.systemPrompt ?? \"\", type: \"string\" },\n tools: { value: JSON.stringify(options?.tools ?? {}), type: \"object\" },\n ...(options?.integrations && {\n integrations: {\n value: JSON.stringify(options.integrations),\n type: \"object\",\n },\n }),\n },\n });\n\n // If CUA mode is enabled (via mode: \"cua\" or deprecated cua: true), use the computer-use agent path\n if (isCuaMode) {\n // Validate agent config at creation time (includes CUA+streaming conflict check)\n validateExperimentalFeatures({\n isExperimental: this.experimental,\n agentConfig: options,\n });\n\n const modelToUse = options?.model || {\n modelName: this.modelName,\n ...this.modelClientOptions,\n };\n\n const { modelName, isCua, clientOptions } = resolveModel(modelToUse);\n\n if (!isCua) {\n throw new CuaModelRequiredError(AVAILABLE_CUA_MODELS);\n }\n\n const agentConfigSignature =\n this.agentCache.buildConfigSignature(options);\n return {\n execute: async (instructionOrOptions: string | AgentExecuteOptions) =>\n withInstanceLogContext(this.instanceId, async () => {\n validateExperimentalFeatures({\n isExperimental: this.experimental,\n agentConfig: options,\n executeOptions:\n typeof instructionOrOptions === \"object\"\n ? instructionOrOptions\n : null,\n });\n\n SessionFileLogger.logAgentTaskStarted({\n invocation: \"Agent.execute\",\n args: [instructionOrOptions],\n });\n const tools = options?.integrations\n ? await resolveTools(options.integrations, options.tools)\n : (options?.tools ?? {});\n\n const handler = new V3CuaAgentHandler(\n this,\n this.logger,\n {\n modelName,\n clientOptions,\n userProvidedInstructions:\n options.systemPrompt ??\n `You are a helpful assistant that can use a web browser.\\nDo not ask follow up questions, the user will trust your judgement.`,\n },\n tools,\n );\n\n const resolvedOptions: AgentExecuteOptions =\n typeof instructionOrOptions === \"string\"\n ? {\n instruction: instructionOrOptions,\n toolTimeout: DEFAULT_AGENT_TOOL_TIMEOUT_MS,\n }\n : {\n ...instructionOrOptions,\n toolTimeout:\n instructionOrOptions.toolTimeout ??\n DEFAULT_AGENT_TOOL_TIMEOUT_MS,\n };\n if (resolvedOptions.page) {\n const normalizedPage = await this.normalizeToV3Page(\n resolvedOptions.page,\n );\n this.ctx!.setActivePage(normalizedPage);\n }\n const instruction = resolvedOptions.instruction.trim();\n const sanitizedOptions =\n this.agentCache.sanitizeExecuteOptions(resolvedOptions);\n\n const cacheVariables = flattenVariables(resolvedOptions.variables);\n\n let cacheContext: AgentCacheContext | null = null;\n if (this.agentCache.shouldAttemptCache(instruction)) {\n const startPage = await this.ctx!.awaitActivePage();\n cacheContext = await this.agentCache.prepareContext({\n instruction,\n options: sanitizedOptions,\n configSignature: agentConfigSignature,\n page: startPage,\n variables: cacheVariables,\n });\n if (cacheContext) {\n const replayed = await this.agentCache.tryReplay(cacheContext);\n if (replayed) {\n SessionFileLogger.logAgentTaskCompleted({ cacheHit: true });\n return replayed;\n }\n }\n }\n\n let agentSteps: AgentReplayStep[] = [];\n const shouldRecordLocally =\n !!cacheContext && (!this.apiClient || this.experimental);\n if (shouldRecordLocally) {\n this.beginAgentReplayRecording();\n }\n\n let result: AgentResult;\n try {\n if (this.apiClient && !this.experimental) {\n const page = await this.ctx!.awaitActivePage();\n result = await this.apiClient.agentExecute(\n options,\n resolvedOptions,\n page.mainFrameId(),\n !!cacheContext,\n );\n if (cacheContext) {\n const transferredEntry =\n this.apiClient.consumeLatestAgentCacheEntry();\n await this.agentCache.storeTransferredEntry(transferredEntry);\n }\n } else {\n result = await handler.execute(instructionOrOptions);\n }\n if (shouldRecordLocally) {\n agentSteps = this.endAgentReplayRecording();\n }\n\n if (\n shouldRecordLocally &&\n cacheContext &&\n result.success &&\n agentSteps.length > 0\n ) {\n await this.agentCache.store(cacheContext, agentSteps, result);\n }\n\n return result;\n } catch (err) {\n if (shouldRecordLocally) this.discardAgentReplayRecording();\n throw err;\n } finally {\n if (shouldRecordLocally) {\n this.discardAgentReplayRecording();\n }\n SessionFileLogger.logAgentTaskCompleted();\n }\n }),\n };\n }\n\n // Default: AISDK tools-based agent\n const agentConfigSignature = this.agentCache.buildConfigSignature(options);\n const isStreaming = options?.stream ?? false;\n\n return {\n execute: async (\n instructionOrOptions:\n | string\n | AgentExecuteOptions\n | AgentStreamExecuteOptions,\n ): Promise<AgentResult | AgentStreamResult> =>\n withInstanceLogContext(this.instanceId, async () => {\n validateExperimentalFeatures({\n isExperimental: this.experimental,\n agentConfig: options,\n executeOptions:\n typeof instructionOrOptions === \"object\"\n ? instructionOrOptions\n : null,\n isStreaming,\n });\n SessionFileLogger.logAgentTaskStarted({\n invocation: \"Agent.execute\",\n args: [instructionOrOptions],\n });\n\n // Streaming mode\n if (isStreaming) {\n const { handler, resolvedOptions, cacheContext, llmClient } =\n await this.prepareAgentExecution(\n options,\n instructionOrOptions,\n agentConfigSignature,\n );\n\n if (cacheContext) {\n const replayed = await this.agentCache.tryReplayAsStream(\n cacheContext,\n llmClient,\n );\n if (replayed) {\n SessionFileLogger.logAgentTaskCompleted({ cacheHit: true });\n return replayed;\n }\n }\n\n const streamResult = await handler.stream(\n resolvedOptions as AgentStreamExecuteOptions,\n );\n\n if (cacheContext) {\n const wrappedStream = this.agentCache.wrapStreamForCaching(\n cacheContext,\n streamResult,\n () => this.beginAgentReplayRecording(),\n () => this.endAgentReplayRecording(),\n () => this.discardAgentReplayRecording(),\n );\n // Log completion when stream is returned (stream completes asynchronously)\n SessionFileLogger.logAgentTaskCompleted();\n return wrappedStream;\n }\n\n // Log completion when stream is returned (stream completes asynchronously)\n SessionFileLogger.logAgentTaskCompleted();\n return streamResult;\n }\n\n // Non-streaming mode (default)\n const { handler, resolvedOptions, cacheContext, llmClient } =\n await this.prepareAgentExecution(\n options,\n instructionOrOptions,\n agentConfigSignature,\n );\n\n if (cacheContext) {\n const replayed = await this.agentCache.tryReplay(\n cacheContext,\n llmClient,\n );\n if (replayed) {\n SessionFileLogger.logAgentTaskCompleted({ cacheHit: true });\n return replayed;\n }\n }\n\n let agentSteps: AgentReplayStep[] = [];\n const shouldRecordLocally =\n !!cacheContext && (!this.apiClient || this.experimental);\n if (shouldRecordLocally) {\n this.beginAgentReplayRecording();\n }\n let result: AgentResult;\n\n try {\n if (this.apiClient && !this.experimental) {\n const page = await this.ctx!.awaitActivePage();\n result = await this.apiClient.agentExecute(\n options ?? {},\n resolvedOptions as AgentExecuteOptions,\n page.mainFrameId(),\n !!cacheContext,\n );\n if (cacheContext) {\n const transferredEntry =\n this.apiClient.consumeLatestAgentCacheEntry();\n await this.agentCache.storeTransferredEntry(transferredEntry);\n }\n } else {\n result = await handler.execute(\n resolvedOptions as AgentExecuteOptions,\n );\n }\n if (shouldRecordLocally) {\n agentSteps = this.endAgentReplayRecording();\n }\n\n if (\n shouldRecordLocally &&\n cacheContext &&\n result.success &&\n agentSteps.length > 0\n ) {\n await this.agentCache.store(cacheContext, agentSteps, result);\n }\n\n return result;\n } catch (err) {\n if (shouldRecordLocally) this.discardAgentReplayRecording();\n throw err;\n } finally {\n if (shouldRecordLocally) {\n this.discardAgentReplayRecording();\n }\n SessionFileLogger.logAgentTaskCompleted();\n }\n }),\n };\n }\n}\n\nfunction isObserveResult(v: unknown): v is Action {\n return (\n !!v && typeof v === \"object\" && \"selector\" in (v as Record<string, unknown>)\n );\n}\n"]}
@@ -2,4 +2,4 @@
2
2
  * AUTO-GENERATED — DO NOT EDIT BY HAND
3
3
  * Run `pnpm run gen-version` to refresh.
4
4
  */
5
- export declare const STAGEHAND_VERSION: "3.0.8";
5
+ export declare const STAGEHAND_VERSION: "3.1.0";
@@ -2,5 +2,5 @@
2
2
  * AUTO-GENERATED — DO NOT EDIT BY HAND
3
3
  * Run `pnpm run gen-version` to refresh.
4
4
  */
5
- export const STAGEHAND_VERSION = "3.0.8";
5
+ export const STAGEHAND_VERSION = "3.1.0";
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../lib/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAgB,CAAC","sourcesContent":["/**\n * AUTO-GENERATED — DO NOT EDIT BY HAND\n * Run `pnpm run gen-version` to refresh.\n */\nexport const STAGEHAND_VERSION = \"3.0.8\" as const;\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../lib/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAgB,CAAC","sourcesContent":["/**\n * AUTO-GENERATED — DO NOT EDIT BY HAND\n * Run `pnpm run gen-version` to refresh.\n */\nexport const STAGEHAND_VERSION = \"3.1.0\" as const;\n"]}
@@ -0,0 +1 @@
1
+ export {};