@browserbasehq/orca 3.0.9-alpha-4 → 3.1.0-patch.0

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 (655) hide show
  1. package/dist/esm/index.d.ts +3 -0
  2. package/dist/esm/index.js +3 -0
  3. package/dist/esm/lib/inference.d.ts +65 -0
  4. package/dist/esm/lib/inference.js +333 -0
  5. package/dist/esm/lib/inference.js.map +1 -0
  6. package/dist/esm/lib/inferenceLogUtils.d.ts +12 -0
  7. package/dist/esm/lib/inferenceLogUtils.js +92 -0
  8. package/dist/esm/lib/inferenceLogUtils.js.map +1 -0
  9. package/dist/esm/lib/logger.d.ts +69 -0
  10. package/dist/esm/lib/logger.js +323 -0
  11. package/dist/esm/lib/logger.js.map +1 -0
  12. package/dist/esm/lib/modelUtils.d.ts +14 -0
  13. package/dist/esm/lib/modelUtils.js +48 -0
  14. package/dist/esm/lib/modelUtils.js.map +1 -0
  15. package/dist/esm/lib/prompt.d.ts +14 -0
  16. package/dist/esm/lib/prompt.js +230 -0
  17. package/dist/esm/lib/prompt.js.map +1 -0
  18. package/dist/esm/lib/utils.d.ts +68 -0
  19. package/dist/esm/lib/utils.js +654 -0
  20. package/dist/esm/lib/utils.js.map +1 -0
  21. package/dist/esm/lib/v3/agent/AgentClient.d.ts +19 -0
  22. package/dist/esm/lib/v3/agent/AgentClient.js +17 -0
  23. package/dist/esm/lib/v3/agent/AgentClient.js.map +1 -0
  24. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +20 -0
  25. package/dist/esm/lib/v3/agent/AgentProvider.js +77 -0
  26. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -0
  27. package/dist/esm/lib/v3/agent/AnthropicCUAClient.d.ts +57 -0
  28. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +822 -0
  29. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
  30. package/dist/esm/lib/v3/agent/GoogleCUAClient.d.ts +74 -0
  31. package/dist/esm/lib/v3/agent/GoogleCUAClient.js +799 -0
  32. package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -0
  33. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.d.ts +71 -0
  34. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +770 -0
  35. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
  36. package/dist/esm/lib/v3/agent/OpenAICUAClient.d.ts +69 -0
  37. package/dist/esm/lib/v3/agent/OpenAICUAClient.js +615 -0
  38. package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -0
  39. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +12 -0
  40. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +186 -0
  41. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
  42. package/dist/esm/lib/v3/agent/tools/act.d.ts +13 -0
  43. package/dist/esm/lib/v3/agent/tools/act.js +49 -0
  44. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -0
  45. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +5 -0
  46. package/dist/esm/lib/v3/agent/tools/ariaTree.js +31 -0
  47. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -0
  48. package/dist/esm/lib/v3/agent/tools/click.d.ts +6 -0
  49. package/dist/esm/lib/v3/agent/tools/click.js +104 -0
  50. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -0
  51. package/dist/esm/lib/v3/agent/tools/clickAndHold.d.ts +14 -0
  52. package/dist/esm/lib/v3/agent/tools/clickAndHold.js +68 -0
  53. package/dist/esm/lib/v3/agent/tools/clickAndHold.js.map +1 -0
  54. package/dist/esm/lib/v3/agent/tools/dragAndDrop.d.ts +7 -0
  55. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +105 -0
  56. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
  57. package/dist/esm/lib/v3/agent/tools/extract.d.ts +21 -0
  58. package/dist/esm/lib/v3/agent/tools/extract.js +93 -0
  59. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -0
  60. package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +12 -0
  61. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +143 -0
  62. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -0
  63. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +13 -0
  64. package/dist/esm/lib/v3/agent/tools/fillform.js +56 -0
  65. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -0
  66. package/dist/esm/lib/v3/agent/tools/goto.d.ts +12 -0
  67. package/dist/esm/lib/v3/agent/tools/goto.js +31 -0
  68. package/dist/esm/lib/v3/agent/tools/goto.js.map +1 -0
  69. package/dist/esm/lib/v3/agent/tools/index.d.ts +92 -0
  70. package/dist/esm/lib/v3/agent/tools/index.js +74 -0
  71. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -0
  72. package/dist/esm/lib/v3/agent/tools/keys.d.ts +24 -0
  73. package/dist/esm/lib/v3/agent/tools/keys.js +60 -0
  74. package/dist/esm/lib/v3/agent/tools/keys.js.map +1 -0
  75. package/dist/esm/lib/v3/agent/tools/navback.d.ts +6 -0
  76. package/dist/esm/lib/v3/agent/tools/navback.js +23 -0
  77. package/dist/esm/lib/v3/agent/tools/navback.js.map +1 -0
  78. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +6 -0
  79. package/dist/esm/lib/v3/agent/tools/screenshot.js +26 -0
  80. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -0
  81. package/dist/esm/lib/v3/agent/tools/scroll.d.ts +19 -0
  82. package/dist/esm/lib/v3/agent/tools/scroll.js +142 -0
  83. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -0
  84. package/dist/esm/lib/v3/agent/tools/search.d.ts +15 -0
  85. package/dist/esm/lib/v3/agent/tools/search.js +73 -0
  86. package/dist/esm/lib/v3/agent/tools/search.js.map +1 -0
  87. package/dist/esm/lib/v3/agent/tools/think.d.ts +6 -0
  88. package/dist/esm/lib/v3/agent/tools/think.js +24 -0
  89. package/dist/esm/lib/v3/agent/tools/think.js.map +1 -0
  90. package/dist/esm/lib/v3/agent/tools/type.d.ts +7 -0
  91. package/dist/esm/lib/v3/agent/tools/type.js +106 -0
  92. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -0
  93. package/dist/esm/lib/v3/agent/tools/wait.d.ts +5 -0
  94. package/dist/esm/lib/v3/agent/tools/wait.js +53 -0
  95. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -0
  96. package/dist/esm/lib/v3/agent/utils/actionMapping.d.ts +3 -0
  97. package/dist/esm/lib/v3/agent/utils/actionMapping.js +100 -0
  98. package/dist/esm/lib/v3/agent/utils/actionMapping.js.map +1 -0
  99. package/dist/esm/lib/v3/agent/utils/coordinateNormalization.d.ts +13 -0
  100. package/dist/esm/lib/v3/agent/utils/coordinateNormalization.js +28 -0
  101. package/dist/esm/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
  102. package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.d.ts +10 -0
  103. package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.js +62 -0
  104. package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
  105. package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.d.ts +25 -0
  106. package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.js +145 -0
  107. package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
  108. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.d.ts +22 -0
  109. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +101 -0
  110. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
  111. package/dist/esm/lib/v3/agent/utils/imageCompression.d.ts +53 -0
  112. package/dist/esm/lib/v3/agent/utils/imageCompression.js +204 -0
  113. package/dist/esm/lib/v3/agent/utils/imageCompression.js.map +1 -0
  114. package/dist/esm/lib/v3/agent/utils/messageProcessing.d.ts +12 -0
  115. package/dist/esm/lib/v3/agent/utils/messageProcessing.js +164 -0
  116. package/dist/esm/lib/v3/agent/utils/messageProcessing.js.map +1 -0
  117. package/dist/esm/lib/v3/agent/utils/screenshotHandler.d.ts +10 -0
  118. package/dist/esm/lib/v3/agent/utils/screenshotHandler.js +26 -0
  119. package/dist/esm/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
  120. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.d.ts +26 -0
  121. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +79 -0
  122. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
  123. package/dist/esm/lib/v3/agent/utils/xpath.d.ts +11 -0
  124. package/dist/esm/lib/v3/agent/utils/xpath.js +19 -0
  125. package/dist/esm/lib/v3/agent/utils/xpath.js.map +1 -0
  126. package/dist/esm/lib/v3/api.d.ts +86 -0
  127. package/dist/esm/lib/v3/api.js +484 -0
  128. package/dist/esm/lib/v3/api.js.map +1 -0
  129. package/dist/esm/lib/v3/cache/ActCache.d.ts +23 -0
  130. package/dist/esm/lib/v3/cache/ActCache.js +292 -0
  131. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -0
  132. package/dist/esm/lib/v3/cache/AgentCache.d.ts +109 -0
  133. package/dist/esm/lib/v3/cache/AgentCache.js +640 -0
  134. package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -0
  135. package/dist/esm/lib/v3/cache/CacheStorage.d.ts +17 -0
  136. package/dist/esm/lib/v3/cache/CacheStorage.js +98 -0
  137. package/dist/esm/lib/v3/cache/CacheStorage.js.map +1 -0
  138. package/dist/esm/lib/v3/cache/serverAgentCache.d.ts +7 -0
  139. package/dist/esm/lib/v3/cache/serverAgentCache.js +49 -0
  140. package/dist/esm/lib/v3/cache/serverAgentCache.js.map +1 -0
  141. package/dist/esm/lib/v3/cache/utils.d.ts +15 -0
  142. package/dist/esm/lib/v3/cache/utils.js +39 -0
  143. package/dist/esm/lib/v3/cache/utils.js.map +1 -0
  144. package/dist/esm/lib/v3/dom/a11yScripts/index.d.ts +11 -0
  145. package/dist/esm/lib/v3/dom/a11yScripts/index.js +117 -0
  146. package/dist/esm/lib/v3/dom/a11yScripts/index.js.map +1 -0
  147. package/dist/esm/lib/v3/dom/build/a11yScripts.generated.d.ts +16 -0
  148. package/dist/esm/lib/v3/dom/build/a11yScripts.generated.js +20 -0
  149. package/dist/esm/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
  150. package/dist/esm/lib/v3/dom/build/locatorScripts.generated.d.ts +52 -0
  151. package/dist/esm/lib/v3/dom/build/locatorScripts.generated.js +56 -0
  152. package/dist/esm/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
  153. package/dist/esm/lib/v3/dom/build/reRenderScriptContent.d.ts +1 -0
  154. package/dist/esm/lib/v3/dom/build/reRenderScriptContent.js +2 -0
  155. package/dist/esm/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
  156. package/dist/esm/lib/v3/dom/build/rerender-index.js +1 -0
  157. package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.d.ts +4 -0
  158. package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.js +8 -0
  159. package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
  160. package/dist/esm/lib/v3/dom/build/scriptV3Content.d.ts +1 -0
  161. package/dist/esm/lib/v3/dom/build/scriptV3Content.js +2 -0
  162. package/dist/esm/lib/v3/dom/build/scriptV3Content.js.map +1 -0
  163. package/dist/esm/lib/v3/dom/build/v3-index.js +1 -0
  164. package/dist/esm/lib/v3/dom/genA11yScripts.d.ts +1 -0
  165. package/dist/esm/lib/v3/dom/genA11yScripts.js +54 -0
  166. package/dist/esm/lib/v3/dom/genA11yScripts.js.map +1 -0
  167. package/dist/esm/lib/v3/dom/genDomScripts.d.ts +1 -0
  168. package/dist/esm/lib/v3/dom/genDomScripts.js +38 -0
  169. package/dist/esm/lib/v3/dom/genDomScripts.js.map +1 -0
  170. package/dist/esm/lib/v3/dom/genLocatorScripts.d.ts +1 -0
  171. package/dist/esm/lib/v3/dom/genLocatorScripts.js +51 -0
  172. package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +1 -0
  173. package/dist/esm/lib/v3/dom/genScreenshotScripts.d.ts +1 -0
  174. package/dist/esm/lib/v3/dom/genScreenshotScripts.js +37 -0
  175. package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +1 -0
  176. package/dist/esm/lib/v3/dom/index.d.ts +1 -0
  177. package/dist/esm/lib/v3/dom/index.js +2 -0
  178. package/dist/esm/lib/v3/dom/index.js.map +1 -0
  179. package/dist/esm/lib/v3/dom/locatorScripts/counts.d.ts +15 -0
  180. package/dist/esm/lib/v3/dom/locatorScripts/counts.js +272 -0
  181. package/dist/esm/lib/v3/dom/locatorScripts/counts.js.map +1 -0
  182. package/dist/esm/lib/v3/dom/locatorScripts/index.d.ts +4 -0
  183. package/dist/esm/lib/v3/dom/locatorScripts/index.js +5 -0
  184. package/dist/esm/lib/v3/dom/locatorScripts/index.js.map +1 -0
  185. package/dist/esm/lib/v3/dom/locatorScripts/scripts.d.ts +37 -0
  186. package/dist/esm/lib/v3/dom/locatorScripts/scripts.js +458 -0
  187. package/dist/esm/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
  188. package/dist/esm/lib/v3/dom/locatorScripts/selectors.d.ts +4 -0
  189. package/dist/esm/lib/v3/dom/locatorScripts/selectors.js +283 -0
  190. package/dist/esm/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
  191. package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.d.ts +19 -0
  192. package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.js +283 -0
  193. package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
  194. package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.d.ts +76 -0
  195. package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.js +376 -0
  196. package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
  197. package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.d.ts +9 -0
  198. package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.js +196 -0
  199. package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
  200. package/dist/esm/lib/v3/dom/piercer.entry.d.ts +1 -0
  201. package/dist/esm/lib/v3/dom/piercer.entry.js +3 -0
  202. package/dist/esm/lib/v3/dom/piercer.entry.js.map +1 -0
  203. package/dist/esm/lib/v3/dom/piercer.runtime.d.ts +23 -0
  204. package/dist/esm/lib/v3/dom/piercer.runtime.js +90 -0
  205. package/dist/esm/lib/v3/dom/piercer.runtime.js.map +1 -0
  206. package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.d.ts +1 -0
  207. package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.js +3 -0
  208. package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
  209. package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.d.ts +1 -0
  210. package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.js +40 -0
  211. package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
  212. package/dist/esm/lib/v3/dom/screenshotScripts/index.d.ts +1 -0
  213. package/dist/esm/lib/v3/dom/screenshotScripts/index.js +2 -0
  214. package/dist/esm/lib/v3/dom/screenshotScripts/index.js.map +1 -0
  215. package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.d.ts +8 -0
  216. package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.js +82 -0
  217. package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
  218. package/dist/esm/lib/v3/external_clients/aisdk.d.ts +11 -0
  219. package/dist/esm/lib/v3/external_clients/aisdk.js +103 -0
  220. package/dist/esm/lib/v3/external_clients/aisdk.js.map +1 -0
  221. package/dist/esm/lib/v3/external_clients/customOpenAI.d.ts +18 -0
  222. package/dist/esm/lib/v3/external_clients/customOpenAI.js +220 -0
  223. package/dist/esm/lib/v3/external_clients/customOpenAI.js.map +1 -0
  224. package/dist/esm/lib/v3/flowLogger.d.ts +139 -0
  225. package/dist/esm/lib/v3/flowLogger.js +868 -0
  226. package/dist/esm/lib/v3/flowLogger.js.map +1 -0
  227. package/dist/esm/lib/v3/handlers/actHandler.d.ts +21 -0
  228. package/dist/esm/lib/v3/handlers/actHandler.js +340 -0
  229. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -0
  230. package/dist/esm/lib/v3/handlers/extractHandler.d.ts +31 -0
  231. package/dist/esm/lib/v3/handlers/extractHandler.js +139 -0
  232. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -0
  233. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.d.ts +24 -0
  234. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +623 -0
  235. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
  236. package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.d.ts +2 -0
  237. package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.js +14 -0
  238. package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
  239. package/dist/esm/lib/v3/handlers/observeHandler.d.ts +17 -0
  240. package/dist/esm/lib/v3/handlers/observeHandler.js +156 -0
  241. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -0
  242. package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +32 -0
  243. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +461 -0
  244. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -0
  245. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +33 -0
  246. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +528 -0
  247. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
  248. package/dist/esm/lib/v3/index.d.ts +17 -0
  249. package/dist/esm/lib/v3/index.js +13 -0
  250. package/dist/esm/lib/v3/index.js.map +1 -0
  251. package/dist/esm/lib/v3/launch/browserbase.d.ts +7 -0
  252. package/dist/esm/lib/v3/launch/browserbase.js +46 -0
  253. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -0
  254. package/dist/esm/lib/v3/launch/local.d.ts +15 -0
  255. package/dist/esm/lib/v3/launch/local.js +98 -0
  256. package/dist/esm/lib/v3/launch/local.js.map +1 -0
  257. package/dist/esm/lib/v3/llm/AnthropicClient.d.ts +16 -0
  258. package/dist/esm/lib/v3/llm/AnthropicClient.js +239 -0
  259. package/dist/esm/lib/v3/llm/AnthropicClient.js.map +1 -0
  260. package/dist/esm/lib/v3/llm/CerebrasClient.d.ts +17 -0
  261. package/dist/esm/lib/v3/llm/CerebrasClient.js +235 -0
  262. package/dist/esm/lib/v3/llm/CerebrasClient.js.map +1 -0
  263. package/dist/esm/lib/v3/llm/GoogleClient.d.ts +19 -0
  264. package/dist/esm/lib/v3/llm/GoogleClient.js +369 -0
  265. package/dist/esm/lib/v3/llm/GoogleClient.js.map +1 -0
  266. package/dist/esm/lib/v3/llm/GroqClient.d.ts +17 -0
  267. package/dist/esm/lib/v3/llm/GroqClient.js +236 -0
  268. package/dist/esm/lib/v3/llm/GroqClient.js.map +1 -0
  269. package/dist/esm/lib/v3/llm/LLMClient.d.ts +121 -0
  270. package/dist/esm/lib/v3/llm/LLMClient.js +23 -0
  271. package/dist/esm/lib/v3/llm/LLMClient.js.map +1 -0
  272. package/dist/esm/lib/v3/llm/LLMProvider.d.ts +13 -0
  273. package/dist/esm/lib/v3/llm/LLMProvider.js +194 -0
  274. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -0
  275. package/dist/esm/lib/v3/llm/OpenAIClient.d.ts +15 -0
  276. package/dist/esm/lib/v3/llm/OpenAIClient.js +329 -0
  277. package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -0
  278. package/dist/esm/lib/v3/llm/aisdk.d.ts +15 -0
  279. package/dist/esm/lib/v3/llm/aisdk.js +348 -0
  280. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -0
  281. package/dist/esm/lib/v3/logger.d.ts +9 -0
  282. package/dist/esm/lib/v3/logger.js +96 -0
  283. package/dist/esm/lib/v3/logger.js.map +1 -0
  284. package/dist/esm/lib/v3/mcp/connection.d.ts +11 -0
  285. package/dist/esm/lib/v3/mcp/connection.js +49 -0
  286. package/dist/esm/lib/v3/mcp/connection.js.map +1 -0
  287. package/dist/esm/lib/v3/mcp/utils.d.ts +3 -0
  288. package/dist/esm/lib/v3/mcp/utils.js +36 -0
  289. package/dist/esm/lib/v3/mcp/utils.js.map +1 -0
  290. package/dist/esm/lib/v3/shutdown/cleanupLocal.d.ts +14 -0
  291. package/dist/esm/lib/v3/shutdown/cleanupLocal.js +30 -0
  292. package/dist/esm/lib/v3/shutdown/cleanupLocal.js.map +1 -0
  293. package/dist/esm/lib/v3/shutdown/supervisor.d.ts +9 -0
  294. package/dist/esm/lib/v3/shutdown/supervisor.js +156 -0
  295. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -0
  296. package/dist/esm/lib/v3/shutdown/supervisorClient.d.ts +15 -0
  297. package/dist/esm/lib/v3/shutdown/supervisorClient.js +97 -0
  298. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -0
  299. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +113 -0
  300. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +7 -0
  301. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +80 -0
  302. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +7 -0
  303. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +374 -0
  304. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +7 -0
  305. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +357 -0
  306. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +7 -0
  307. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +247 -0
  308. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +7 -0
  309. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +105 -0
  310. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +7 -0
  311. package/dist/esm/lib/v3/tests/agent-streaming.spec.js +126 -0
  312. package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +7 -0
  313. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +44 -0
  314. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +7 -0
  315. package/dist/esm/lib/v3/tests/click-count.spec.js +112 -0
  316. package/dist/esm/lib/v3/tests/click-count.spec.js.map +7 -0
  317. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +54 -0
  318. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +7 -0
  319. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +176 -0
  320. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +7 -0
  321. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +53 -0
  322. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +7 -0
  323. package/dist/esm/lib/v3/tests/downloads.spec.js +58 -0
  324. package/dist/esm/lib/v3/tests/downloads.spec.js.map +7 -0
  325. package/dist/esm/lib/v3/tests/envReporter.js +57 -0
  326. package/dist/esm/lib/v3/tests/envReporter.js.map +7 -0
  327. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +53 -0
  328. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +7 -0
  329. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +447 -0
  330. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +7 -0
  331. package/dist/esm/lib/v3/tests/keep-alive.child.js +92 -0
  332. package/dist/esm/lib/v3/tests/keep-alive.child.js.map +7 -0
  333. package/dist/esm/lib/v3/tests/keep-alive.helpers.js +532 -0
  334. package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +7 -0
  335. package/dist/esm/lib/v3/tests/keep-alive.spec.js +19 -0
  336. package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +7 -0
  337. package/dist/esm/lib/v3/tests/keyboard.spec.js +296 -0
  338. package/dist/esm/lib/v3/tests/keyboard.spec.js.map +7 -0
  339. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +159 -0
  340. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +7 -0
  341. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +191 -0
  342. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +7 -0
  343. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +108 -0
  344. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +7 -0
  345. package/dist/esm/lib/v3/tests/locator-count.spec.js +71 -0
  346. package/dist/esm/lib/v3/tests/locator-count.spec.js.map +7 -0
  347. package/dist/esm/lib/v3/tests/locator-fill.spec.js +118 -0
  348. package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +7 -0
  349. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +136 -0
  350. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +7 -0
  351. package/dist/esm/lib/v3/tests/locator-nth.spec.js +157 -0
  352. package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +7 -0
  353. package/dist/esm/lib/v3/tests/locator-select-option.spec.js +242 -0
  354. package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +7 -0
  355. package/dist/esm/lib/v3/tests/logger-initialization.spec.js +552 -0
  356. package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +7 -0
  357. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +269 -0
  358. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +7 -0
  359. package/dist/esm/lib/v3/tests/nested-div.spec.js +23 -0
  360. package/dist/esm/lib/v3/tests/nested-div.spec.js.map +7 -0
  361. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +90 -0
  362. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +7 -0
  363. package/dist/esm/lib/v3/tests/page-console.spec.js +56 -0
  364. package/dist/esm/lib/v3/tests/page-console.spec.js.map +7 -0
  365. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +418 -0
  366. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +7 -0
  367. package/dist/esm/lib/v3/tests/page-goto-response.spec.js +35 -0
  368. package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +7 -0
  369. package/dist/esm/lib/v3/tests/page-hover.spec.js +167 -0
  370. package/dist/esm/lib/v3/tests/page-hover.spec.js.map +7 -0
  371. package/dist/esm/lib/v3/tests/page-screenshot.spec.js +273 -0
  372. package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +7 -0
  373. package/dist/esm/lib/v3/tests/page-scroll.spec.js +182 -0
  374. package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +7 -0
  375. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +46 -0
  376. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +7 -0
  377. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +98 -0
  378. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +7 -0
  379. package/dist/esm/lib/v3/tests/setinputfiles.spec.js +126 -0
  380. package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +7 -0
  381. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +134 -0
  382. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +7 -0
  383. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +134 -0
  384. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +7 -0
  385. package/dist/esm/lib/v3/tests/testUtils.js +31 -0
  386. package/dist/esm/lib/v3/tests/testUtils.js.map +7 -0
  387. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +100 -0
  388. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +7 -0
  389. package/dist/esm/lib/v3/tests/timeouts.spec.js +32 -0
  390. package/dist/esm/lib/v3/tests/timeouts.spec.js.map +7 -0
  391. package/dist/esm/lib/v3/tests/user-data-dir.spec.js +43 -0
  392. package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +7 -0
  393. package/dist/esm/lib/v3/tests/v3.config.js +15 -0
  394. package/dist/esm/lib/v3/tests/v3.config.js.map +7 -0
  395. package/dist/esm/lib/v3/tests/v3.dynamic.config.js +43 -0
  396. package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +7 -0
  397. package/dist/esm/lib/v3/tests/v3.playwright.config.js +98 -0
  398. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +7 -0
  399. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +593 -0
  400. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +7 -0
  401. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +97 -0
  402. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +7 -0
  403. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +77 -0
  404. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +7 -0
  405. package/dist/esm/lib/v3/timeoutConfig.d.ts +2 -0
  406. package/dist/esm/lib/v3/timeoutConfig.js +27 -0
  407. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -0
  408. package/dist/esm/lib/v3/types/private/agent.d.ts +6 -0
  409. package/dist/esm/lib/v3/types/private/agent.js +2 -0
  410. package/dist/esm/lib/v3/types/private/agent.js.map +1 -0
  411. package/dist/esm/lib/v3/types/private/api.d.ts +11 -0
  412. package/dist/esm/lib/v3/types/private/api.js +2 -0
  413. package/dist/esm/lib/v3/types/private/api.js.map +1 -0
  414. package/dist/esm/lib/v3/types/private/cache.d.ts +128 -0
  415. package/dist/esm/lib/v3/types/private/cache.js +2 -0
  416. package/dist/esm/lib/v3/types/private/cache.js.map +1 -0
  417. package/dist/esm/lib/v3/types/private/evaluator.d.ts +40 -0
  418. package/dist/esm/lib/v3/types/private/evaluator.js +2 -0
  419. package/dist/esm/lib/v3/types/private/evaluator.js.map +1 -0
  420. package/dist/esm/lib/v3/types/private/handlers.d.ts +38 -0
  421. package/dist/esm/lib/v3/types/private/handlers.js +16 -0
  422. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -0
  423. package/dist/esm/lib/v3/types/private/index.d.ts +7 -0
  424. package/dist/esm/lib/v3/types/private/index.js +8 -0
  425. package/dist/esm/lib/v3/types/private/index.js.map +1 -0
  426. package/dist/esm/lib/v3/types/private/internal.d.ts +39 -0
  427. package/dist/esm/lib/v3/types/private/internal.js +2 -0
  428. package/dist/esm/lib/v3/types/private/internal.js.map +1 -0
  429. package/dist/esm/lib/v3/types/private/locator.d.ts +9 -0
  430. package/dist/esm/lib/v3/types/private/locator.js +2 -0
  431. package/dist/esm/lib/v3/types/private/locator.js.map +1 -0
  432. package/dist/esm/lib/v3/types/private/network.d.ts +34 -0
  433. package/dist/esm/lib/v3/types/private/network.js +3 -0
  434. package/dist/esm/lib/v3/types/private/network.js.map +1 -0
  435. package/dist/esm/lib/v3/types/private/shutdown.d.ts +31 -0
  436. package/dist/esm/lib/v3/types/private/shutdown.js +5 -0
  437. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -0
  438. package/dist/esm/lib/v3/types/private/shutdownErrors.d.ts +12 -0
  439. package/dist/esm/lib/v3/types/private/shutdownErrors.js +22 -0
  440. package/dist/esm/lib/v3/types/private/shutdownErrors.js.map +1 -0
  441. package/dist/esm/lib/v3/types/private/snapshot.d.ts +117 -0
  442. package/dist/esm/lib/v3/types/private/snapshot.js +2 -0
  443. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -0
  444. package/dist/esm/lib/v3/types/public/agent.d.ts +595 -0
  445. package/dist/esm/lib/v3/types/public/agent.js +15 -0
  446. package/dist/esm/lib/v3/types/public/agent.js.map +1 -0
  447. package/dist/esm/lib/v3/types/public/api.d.ts +1211 -0
  448. package/dist/esm/lib/v3/types/public/api.js +915 -0
  449. package/dist/esm/lib/v3/types/public/api.js.map +1 -0
  450. package/dist/esm/lib/v3/types/public/apiErrors.d.ts +18 -0
  451. package/dist/esm/lib/v3/types/public/apiErrors.js +32 -0
  452. package/dist/esm/lib/v3/types/public/apiErrors.js.map +1 -0
  453. package/dist/esm/lib/v3/types/public/index.d.ts +12 -0
  454. package/dist/esm/lib/v3/types/public/index.js +14 -0
  455. package/dist/esm/lib/v3/types/public/index.js.map +1 -0
  456. package/dist/esm/lib/v3/types/public/locator.d.ts +9 -0
  457. package/dist/esm/lib/v3/types/public/locator.js +2 -0
  458. package/dist/esm/lib/v3/types/public/locator.js.map +1 -0
  459. package/dist/esm/lib/v3/types/public/logs.d.ts +23 -0
  460. package/dist/esm/lib/v3/types/public/logs.js +13 -0
  461. package/dist/esm/lib/v3/types/public/logs.js.map +1 -0
  462. package/dist/esm/lib/v3/types/public/methods.d.ts +56 -0
  463. package/dist/esm/lib/v3/types/public/methods.js +15 -0
  464. package/dist/esm/lib/v3/types/public/methods.js.map +1 -0
  465. package/dist/esm/lib/v3/types/public/metrics.d.ts +27 -0
  466. package/dist/esm/lib/v3/types/public/metrics.js +2 -0
  467. package/dist/esm/lib/v3/types/public/metrics.js.map +1 -0
  468. package/dist/esm/lib/v3/types/public/model.d.ts +65 -0
  469. package/dist/esm/lib/v3/types/public/model.js +2 -0
  470. package/dist/esm/lib/v3/types/public/model.js.map +1 -0
  471. package/dist/esm/lib/v3/types/public/options.d.ts +70 -0
  472. package/dist/esm/lib/v3/types/public/options.js +4 -0
  473. package/dist/esm/lib/v3/types/public/options.js.map +1 -0
  474. package/dist/esm/lib/v3/types/public/page.d.ts +18 -0
  475. package/dist/esm/lib/v3/types/public/page.js +3 -0
  476. package/dist/esm/lib/v3/types/public/page.js.map +1 -0
  477. package/dist/esm/lib/v3/types/public/screenshotTypes.d.ts +25 -0
  478. package/dist/esm/lib/v3/types/public/screenshotTypes.js +2 -0
  479. package/dist/esm/lib/v3/types/public/screenshotTypes.js.map +1 -0
  480. package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +152 -0
  481. package/dist/esm/lib/v3/types/public/sdkErrors.js +305 -0
  482. package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -0
  483. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.d.ts +15 -0
  484. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +196 -0
  485. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
  486. package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.d.ts +8 -0
  487. package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.js +121 -0
  488. package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
  489. package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.d.ts +77 -0
  490. package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js +336 -0
  491. package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
  492. package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.d.ts +7 -0
  493. package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +129 -0
  494. package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
  495. package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.d.ts +46 -0
  496. package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.js +274 -0
  497. package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
  498. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +24 -0
  499. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +216 -0
  500. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
  501. package/dist/esm/lib/v3/understudy/a11y/snapshot/index.d.ts +4 -0
  502. package/dist/esm/lib/v3/understudy/a11y/snapshot/index.js +5 -0
  503. package/dist/esm/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
  504. package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.d.ts +16 -0
  505. package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.js +22 -0
  506. package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
  507. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.d.ts +28 -0
  508. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +135 -0
  509. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
  510. package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.d.ts +26 -0
  511. package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.js +102 -0
  512. package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
  513. package/dist/esm/lib/v3/understudy/a11yInvocation.d.ts +8 -0
  514. package/dist/esm/lib/v3/understudy/a11yInvocation.js +12 -0
  515. package/dist/esm/lib/v3/understudy/a11yInvocation.js.map +1 -0
  516. package/dist/esm/lib/v3/understudy/cdp.d.ts +69 -0
  517. package/dist/esm/lib/v3/understudy/cdp.js +251 -0
  518. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -0
  519. package/dist/esm/lib/v3/understudy/consoleMessage.d.ts +22 -0
  520. package/dist/esm/lib/v3/understudy/consoleMessage.js +66 -0
  521. package/dist/esm/lib/v3/understudy/consoleMessage.js.map +1 -0
  522. package/dist/esm/lib/v3/understudy/context.d.ts +132 -0
  523. package/dist/esm/lib/v3/understudy/context.js +687 -0
  524. package/dist/esm/lib/v3/understudy/context.js.map +1 -0
  525. package/dist/esm/lib/v3/understudy/deepLocator.d.ts +87 -0
  526. package/dist/esm/lib/v3/understudy/deepLocator.js +218 -0
  527. package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -0
  528. package/dist/esm/lib/v3/understudy/executionContextRegistry.d.ts +15 -0
  529. package/dist/esm/lib/v3/understudy/executionContextRegistry.js +83 -0
  530. package/dist/esm/lib/v3/understudy/executionContextRegistry.js.map +1 -0
  531. package/dist/esm/lib/v3/understudy/fileUploadUtils.d.ts +13 -0
  532. package/dist/esm/lib/v3/understudy/fileUploadUtils.js +81 -0
  533. package/dist/esm/lib/v3/understudy/fileUploadUtils.js.map +1 -0
  534. package/dist/esm/lib/v3/understudy/frame.d.ts +69 -0
  535. package/dist/esm/lib/v3/understudy/frame.js +211 -0
  536. package/dist/esm/lib/v3/understudy/frame.js.map +1 -0
  537. package/dist/esm/lib/v3/understudy/frameLocator.d.ts +50 -0
  538. package/dist/esm/lib/v3/understudy/frameLocator.js +255 -0
  539. package/dist/esm/lib/v3/understudy/frameLocator.js.map +1 -0
  540. package/dist/esm/lib/v3/understudy/frameRegistry.d.ts +101 -0
  541. package/dist/esm/lib/v3/understudy/frameRegistry.js +298 -0
  542. package/dist/esm/lib/v3/understudy/frameRegistry.js.map +1 -0
  543. package/dist/esm/lib/v3/understudy/initScripts.d.ts +2 -0
  544. package/dist/esm/lib/v3/understudy/initScripts.js +33 -0
  545. package/dist/esm/lib/v3/understudy/initScripts.js.map +1 -0
  546. package/dist/esm/lib/v3/understudy/lifecycleWatcher.d.ts +64 -0
  547. package/dist/esm/lib/v3/understudy/lifecycleWatcher.js +245 -0
  548. package/dist/esm/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
  549. package/dist/esm/lib/v3/understudy/locator.d.ts +194 -0
  550. package/dist/esm/lib/v3/understudy/locator.js +753 -0
  551. package/dist/esm/lib/v3/understudy/locator.js.map +1 -0
  552. package/dist/esm/lib/v3/understudy/locatorInvocation.d.ts +8 -0
  553. package/dist/esm/lib/v3/understudy/locatorInvocation.js +12 -0
  554. package/dist/esm/lib/v3/understudy/locatorInvocation.js.map +1 -0
  555. package/dist/esm/lib/v3/understudy/navigationResponseTracker.d.ts +84 -0
  556. package/dist/esm/lib/v3/understudy/navigationResponseTracker.js +224 -0
  557. package/dist/esm/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
  558. package/dist/esm/lib/v3/understudy/networkManager.d.ts +53 -0
  559. package/dist/esm/lib/v3/understudy/networkManager.js +306 -0
  560. package/dist/esm/lib/v3/understudy/networkManager.js.map +1 -0
  561. package/dist/esm/lib/v3/understudy/page.d.ts +354 -0
  562. package/dist/esm/lib/v3/understudy/page.js +1941 -0
  563. package/dist/esm/lib/v3/understudy/page.js.map +1 -0
  564. package/dist/esm/lib/v3/understudy/piercer.d.ts +4 -0
  565. package/dist/esm/lib/v3/understudy/piercer.js +61 -0
  566. package/dist/esm/lib/v3/understudy/piercer.js.map +1 -0
  567. package/dist/esm/lib/v3/understudy/response.d.ts +137 -0
  568. package/dist/esm/lib/v3/understudy/response.js +330 -0
  569. package/dist/esm/lib/v3/understudy/response.js.map +1 -0
  570. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +16 -0
  571. package/dist/esm/lib/v3/understudy/screenshotUtils.js +352 -0
  572. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -0
  573. package/dist/esm/lib/v3/understudy/selectorResolver.d.ts +38 -0
  574. package/dist/esm/lib/v3/understudy/selectorResolver.js +296 -0
  575. package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -0
  576. package/dist/esm/lib/v3/v3.d.ts +191 -0
  577. package/dist/esm/lib/v3/v3.js +1572 -0
  578. package/dist/esm/lib/v3/v3.js.map +1 -0
  579. package/dist/esm/lib/v3/zodCompat.d.ts +12 -0
  580. package/dist/esm/lib/v3/zodCompat.js +17 -0
  581. package/dist/esm/lib/v3/zodCompat.js.map +1 -0
  582. package/dist/esm/lib/v3Evaluator.d.ts +19 -0
  583. package/dist/esm/lib/v3Evaluator.js +210 -0
  584. package/dist/esm/lib/v3Evaluator.js.map +1 -0
  585. package/dist/esm/lib/version.d.ts +5 -0
  586. package/dist/esm/lib/version.js +6 -0
  587. package/dist/esm/lib/version.js.map +1 -0
  588. package/dist/esm/package.json +3 -0
  589. package/dist/esm/tests/agent-execution-model.test.js +139 -0
  590. package/dist/esm/tests/agent-execution-model.test.js.map +7 -0
  591. package/dist/esm/tests/browserbase-session-accessors.test.js +101 -0
  592. package/dist/esm/tests/browserbase-session-accessors.test.js.map +7 -0
  593. package/dist/esm/tests/cache-llm-resolution.test.js +187 -0
  594. package/dist/esm/tests/cache-llm-resolution.test.js.map +7 -0
  595. package/dist/esm/tests/helpers/mockCDPSession.js +27 -0
  596. package/dist/esm/tests/helpers/mockCDPSession.js.map +7 -0
  597. package/dist/esm/tests/llm-provider.test.js +57 -0
  598. package/dist/esm/tests/llm-provider.test.js.map +7 -0
  599. package/dist/esm/tests/model-deprecation.test.js +135 -0
  600. package/dist/esm/tests/model-deprecation.test.js.map +7 -0
  601. package/dist/esm/tests/model-utils.test.js +43 -0
  602. package/dist/esm/tests/model-utils.test.js.map +7 -0
  603. package/dist/esm/tests/page-snapshot.test.js +36 -0
  604. package/dist/esm/tests/page-snapshot.test.js.map +7 -0
  605. package/dist/esm/tests/public-api/export-surface.test.js +53 -0
  606. package/dist/esm/tests/public-api/export-surface.test.js.map +7 -0
  607. package/dist/esm/tests/public-api/llm-and-agents.test.js +128 -0
  608. package/dist/esm/tests/public-api/llm-and-agents.test.js.map +7 -0
  609. package/dist/esm/tests/public-api/public-error-types.test.js +71 -0
  610. package/dist/esm/tests/public-api/public-error-types.test.js.map +7 -0
  611. package/dist/esm/tests/public-api/public-types.test.js +74 -0
  612. package/dist/esm/tests/public-api/public-types.test.js.map +7 -0
  613. package/dist/esm/tests/public-api/runtime-utils.test.js +31 -0
  614. package/dist/esm/tests/public-api/runtime-utils.test.js.map +7 -0
  615. package/dist/esm/tests/public-api/schema-utils.test.js +78 -0
  616. package/dist/esm/tests/public-api/schema-utils.test.js.map +7 -0
  617. package/dist/esm/tests/public-api/timeout-error-types.test.js +81 -0
  618. package/dist/esm/tests/public-api/timeout-error-types.test.js.map +7 -0
  619. package/dist/esm/tests/public-api/tool-type-export.test.js +25 -0
  620. package/dist/esm/tests/public-api/tool-type-export.test.js.map +7 -0
  621. package/dist/esm/tests/public-api/v3-core.test.js +82 -0
  622. package/dist/esm/tests/public-api/v3-core.test.js.map +7 -0
  623. package/dist/esm/tests/safety-confirmation.test.js +134 -0
  624. package/dist/esm/tests/safety-confirmation.test.js.map +7 -0
  625. package/dist/esm/tests/snapshot-a11y-resolvers.test.js +348 -0
  626. package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +7 -0
  627. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +300 -0
  628. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +7 -0
  629. package/dist/esm/tests/snapshot-capture-orchestration.test.js +381 -0
  630. package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +7 -0
  631. package/dist/esm/tests/snapshot-cbor.test.js +197 -0
  632. package/dist/esm/tests/snapshot-cbor.test.js.map +7 -0
  633. package/dist/esm/tests/snapshot-dom-session-builders.test.js +251 -0
  634. package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +7 -0
  635. package/dist/esm/tests/snapshot-dom-tree-utils.test.js +109 -0
  636. package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +7 -0
  637. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +49 -0
  638. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +7 -0
  639. package/dist/esm/tests/snapshot-frame-merge.test.js +391 -0
  640. package/dist/esm/tests/snapshot-frame-merge.test.js.map +7 -0
  641. package/dist/esm/tests/snapshot-tree-format-utils.test.js +113 -0
  642. package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +7 -0
  643. package/dist/esm/tests/snapshot-xpath-utils.test.js +79 -0
  644. package/dist/esm/tests/snapshot-xpath-utils.test.js.map +7 -0
  645. package/dist/esm/tests/timeout-handlers.test.js +850 -0
  646. package/dist/esm/tests/timeout-handlers.test.js.map +7 -0
  647. package/dist/esm/tests/xpath-parser.test.js +317 -0
  648. package/dist/esm/tests/xpath-parser.test.js.map +7 -0
  649. package/dist/esm/tests/xpath-resolver.test.js +73 -0
  650. package/dist/esm/tests/xpath-resolver.test.js.map +7 -0
  651. package/dist/esm/tests/zod-enum-compatibility.test.js +97 -0
  652. package/dist/esm/tests/zod-enum-compatibility.test.js.map +7 -0
  653. package/package.json +37 -24
  654. package/dist/index.d.ts +0 -4363
  655. package/dist/index.js +0 -76530
@@ -0,0 +1,357 @@
1
+ import { test, expect } from "@playwright/test";
2
+ import { z } from "zod";
3
+ import { tool } from "ai";
4
+ import { V3 } from "../v3.js";
5
+ import { v3TestConfig } from "./v3.config.js";
6
+ import {
7
+ ExperimentalNotConfiguredError,
8
+ StagehandInvalidArgumentError
9
+ } from "../types/public/sdkErrors.js";
10
+ const mockCustomTool = tool({
11
+ description: "A mock tool for testing",
12
+ inputSchema: z.object({
13
+ input: z.string().describe("The input string")
14
+ }),
15
+ execute: async ({ input }) => {
16
+ return `Processed: ${input}`;
17
+ }
18
+ });
19
+ test.describe("Stagehand agent experimental feature validation", () => {
20
+ test.describe("Invalid argument errors", () => {
21
+ let v3;
22
+ test.beforeEach(async () => {
23
+ v3 = new V3({
24
+ ...v3TestConfig,
25
+ experimental: false
26
+ });
27
+ await v3.init();
28
+ });
29
+ test.afterEach(async () => {
30
+ await v3?.close?.().catch(() => {
31
+ });
32
+ });
33
+ test("throws StagehandInvalidArgumentError when CUA and streaming are both enabled", async () => {
34
+ try {
35
+ v3.agent({
36
+ cua: true,
37
+ stream: true,
38
+ model: "anthropic/claude-sonnet-4-20250514"
39
+ });
40
+ throw new Error("Expected error to be thrown");
41
+ } catch (error) {
42
+ expect(error).toBeInstanceOf(StagehandInvalidArgumentError);
43
+ expect(error.message).toContain("streaming");
44
+ expect(error.message).toContain("not supported with CUA");
45
+ }
46
+ });
47
+ test("throws StagehandInvalidArgumentError for CUA + streaming even with experimental: true", async () => {
48
+ await v3.close();
49
+ const v3Experimental = new V3({
50
+ ...v3TestConfig,
51
+ experimental: true
52
+ });
53
+ await v3Experimental.init();
54
+ try {
55
+ v3Experimental.agent({
56
+ cua: true,
57
+ stream: true,
58
+ model: "anthropic/claude-sonnet-4-20250514"
59
+ });
60
+ throw new Error("Expected error to be thrown");
61
+ } catch (error) {
62
+ expect(error).toBeInstanceOf(StagehandInvalidArgumentError);
63
+ expect(error.message).toContain("streaming");
64
+ expect(error.message).toContain("not supported with CUA");
65
+ } finally {
66
+ await v3Experimental.close();
67
+ }
68
+ });
69
+ });
70
+ test.describe("Experimental feature errors without experimental: true", () => {
71
+ let v3;
72
+ test.beforeEach(async () => {
73
+ v3 = new V3({
74
+ ...v3TestConfig,
75
+ experimental: false
76
+ });
77
+ await v3.init();
78
+ });
79
+ test.afterEach(async () => {
80
+ await v3?.close?.().catch(() => {
81
+ });
82
+ });
83
+ test("throws ExperimentalNotConfiguredError for MCP integrations", async () => {
84
+ const agent = v3.agent({
85
+ model: "anthropic/claude-sonnet-4-20250514",
86
+ integrations: ["https://mcp.example.com"]
87
+ });
88
+ try {
89
+ await agent.execute("test");
90
+ throw new Error("Expected error to be thrown");
91
+ } catch (error) {
92
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
93
+ expect(error.message).toContain(
94
+ "MCP integrations and custom tools"
95
+ );
96
+ }
97
+ });
98
+ test("throws ExperimentalNotConfiguredError for custom tools", async () => {
99
+ const agent = v3.agent({
100
+ model: "anthropic/claude-sonnet-4-20250514",
101
+ tools: {
102
+ mockCustomTool
103
+ }
104
+ });
105
+ try {
106
+ await agent.execute("test");
107
+ throw new Error("Expected error to be thrown");
108
+ } catch (error) {
109
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
110
+ expect(error.message).toContain(
111
+ "MCP integrations and custom tools"
112
+ );
113
+ }
114
+ });
115
+ test("throws ExperimentalNotConfiguredError for streaming mode", async () => {
116
+ try {
117
+ const agent = v3.agent({
118
+ stream: true,
119
+ model: "anthropic/claude-sonnet-4-20250514"
120
+ });
121
+ await agent.execute("test instruction");
122
+ throw new Error("Expected error to be thrown");
123
+ } catch (error) {
124
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
125
+ expect(error.message).toContain("streaming");
126
+ }
127
+ });
128
+ test("throws ExperimentalNotConfiguredError for callbacks", async () => {
129
+ const agent = v3.agent({
130
+ model: "anthropic/claude-sonnet-4-20250514"
131
+ });
132
+ try {
133
+ await agent.execute({
134
+ instruction: "test",
135
+ callbacks: {
136
+ onStepFinish: async () => {
137
+ }
138
+ }
139
+ });
140
+ throw new Error("Expected error to be thrown");
141
+ } catch (error) {
142
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
143
+ expect(error.message).toContain("callbacks");
144
+ }
145
+ });
146
+ test("throws ExperimentalNotConfiguredError for abort signal", async () => {
147
+ const agent = v3.agent({
148
+ model: "anthropic/claude-sonnet-4-20250514"
149
+ });
150
+ const controller = new AbortController();
151
+ try {
152
+ await agent.execute({
153
+ instruction: "test",
154
+ signal: controller.signal
155
+ });
156
+ throw new Error("Expected error to be thrown");
157
+ } catch (error) {
158
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
159
+ expect(error.message).toContain("abort signal");
160
+ }
161
+ });
162
+ test("throws ExperimentalNotConfiguredError for message continuation", async () => {
163
+ const agent = v3.agent({
164
+ model: "anthropic/claude-sonnet-4-20250514"
165
+ });
166
+ try {
167
+ await agent.execute({
168
+ instruction: "test",
169
+ messages: [{ role: "user", content: "previous message" }]
170
+ });
171
+ throw new Error("Expected error to be thrown");
172
+ } catch (error) {
173
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
174
+ expect(error.message).toContain("message continuation");
175
+ }
176
+ });
177
+ test("throws ExperimentalNotConfiguredError listing multiple features", async () => {
178
+ const agent = v3.agent({
179
+ model: "anthropic/claude-sonnet-4-20250514"
180
+ });
181
+ const controller = new AbortController();
182
+ try {
183
+ await agent.execute({
184
+ instruction: "test",
185
+ callbacks: { onStepFinish: async () => {
186
+ } },
187
+ signal: controller.signal,
188
+ messages: [{ role: "user", content: "previous" }]
189
+ });
190
+ throw new Error("Expected error to be thrown");
191
+ } catch (error) {
192
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
193
+ const message = error.message;
194
+ expect(message).toContain("callbacks");
195
+ expect(message).toContain("abort signal");
196
+ expect(message).toContain("message continuation");
197
+ }
198
+ });
199
+ });
200
+ test.describe("CUA agent unsupported features", () => {
201
+ let v3;
202
+ test.beforeEach(async () => {
203
+ v3 = new V3({
204
+ ...v3TestConfig,
205
+ experimental: false
206
+ });
207
+ await v3.init();
208
+ });
209
+ test.afterEach(async () => {
210
+ await v3?.close?.().catch(() => {
211
+ });
212
+ });
213
+ test("throws ExperimentalNotConfiguredError for CUA with integrations", async () => {
214
+ try {
215
+ v3.agent({
216
+ cua: true,
217
+ model: "anthropic/claude-sonnet-4-20250514",
218
+ integrations: ["https://mcp.example.com"]
219
+ });
220
+ throw new Error("Expected error to be thrown");
221
+ } catch (error) {
222
+ expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);
223
+ expect(error.message).toContain(
224
+ "MCP integrations and custom tools"
225
+ );
226
+ }
227
+ });
228
+ test("throws StagehandInvalidArgumentError for CUA with abort signal (not supported)", async () => {
229
+ const agent = v3.agent({
230
+ cua: true,
231
+ model: "anthropic/claude-sonnet-4-20250514"
232
+ });
233
+ const controller = new AbortController();
234
+ try {
235
+ await agent.execute({
236
+ instruction: "test",
237
+ signal: controller.signal
238
+ });
239
+ throw new Error("Expected error to be thrown");
240
+ } catch (error) {
241
+ expect(error).toBeInstanceOf(StagehandInvalidArgumentError);
242
+ expect(error.message).toContain("abort signal");
243
+ expect(error.message).toContain("not supported with CUA");
244
+ }
245
+ });
246
+ test("throws StagehandInvalidArgumentError for CUA with message continuation (not supported)", async () => {
247
+ const agent = v3.agent({
248
+ cua: true,
249
+ model: "anthropic/claude-sonnet-4-20250514"
250
+ });
251
+ try {
252
+ await agent.execute({
253
+ instruction: "test",
254
+ messages: [{ role: "user", content: "previous message" }]
255
+ });
256
+ throw new Error("Expected error to be thrown");
257
+ } catch (error) {
258
+ expect(error).toBeInstanceOf(StagehandInvalidArgumentError);
259
+ expect(error.message).toContain("message continuation");
260
+ expect(error.message).toContain("not supported with CUA");
261
+ }
262
+ });
263
+ test("throws StagehandInvalidArgumentError for CUA with multiple unsupported features", async () => {
264
+ const agent = v3.agent({
265
+ cua: true,
266
+ model: "anthropic/claude-sonnet-4-20250514"
267
+ });
268
+ const controller = new AbortController();
269
+ try {
270
+ await agent.execute({
271
+ instruction: "test",
272
+ signal: controller.signal,
273
+ messages: [{ role: "user", content: "previous message" }]
274
+ });
275
+ throw new Error("Expected error to be thrown");
276
+ } catch (error) {
277
+ expect(error).toBeInstanceOf(StagehandInvalidArgumentError);
278
+ const message = error.message;
279
+ expect(message).toContain("abort signal");
280
+ expect(message).toContain("message continuation");
281
+ expect(message).toContain("are not supported with CUA");
282
+ }
283
+ });
284
+ test("throws StagehandInvalidArgumentError for CUA unsupported features even with experimental: true", async () => {
285
+ await v3.close();
286
+ const v3Experimental = new V3({
287
+ ...v3TestConfig,
288
+ experimental: true
289
+ });
290
+ await v3Experimental.init();
291
+ const agent = v3Experimental.agent({
292
+ cua: true,
293
+ model: "anthropic/claude-sonnet-4-20250514"
294
+ });
295
+ const controller = new AbortController();
296
+ try {
297
+ await agent.execute({
298
+ instruction: "test",
299
+ signal: controller.signal
300
+ });
301
+ throw new Error("Expected error to be thrown");
302
+ } catch (error) {
303
+ expect(error).toBeInstanceOf(StagehandInvalidArgumentError);
304
+ expect(error.message).toContain("not supported with CUA");
305
+ } finally {
306
+ await v3Experimental.close();
307
+ }
308
+ });
309
+ });
310
+ test.describe("Valid configurations with experimental: true", () => {
311
+ let v3;
312
+ test.beforeEach(async () => {
313
+ v3 = new V3({
314
+ ...v3TestConfig,
315
+ experimental: true
316
+ });
317
+ await v3.init();
318
+ });
319
+ test.afterEach(async () => {
320
+ await v3?.close?.().catch(() => {
321
+ });
322
+ });
323
+ test("allows CUA without streaming", () => {
324
+ expect(
325
+ () => v3.agent({
326
+ cua: true,
327
+ model: "anthropic/claude-sonnet-4-20250514"
328
+ })
329
+ ).not.toThrow();
330
+ });
331
+ test("allows streaming mode", () => {
332
+ expect(
333
+ () => v3.agent({
334
+ stream: true,
335
+ model: "anthropic/claude-sonnet-4-20250514"
336
+ })
337
+ ).not.toThrow();
338
+ });
339
+ test("allows basic agent without experimental features", async () => {
340
+ const v3NonExperimental = new V3({
341
+ ...v3TestConfig,
342
+ experimental: false
343
+ });
344
+ await v3NonExperimental.init();
345
+ try {
346
+ expect(
347
+ () => v3NonExperimental.agent({
348
+ model: "anthropic/claude-sonnet-4-20250514"
349
+ })
350
+ ).not.toThrow();
351
+ } finally {
352
+ await v3NonExperimental.close();
353
+ }
354
+ });
355
+ });
356
+ });
357
+ //# sourceMappingURL=agent-experimental-validation.spec.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../lib/v3/tests/agent-experimental-validation.spec.ts"],
4
+ "sourcesContent": ["import { test, expect } from \"@playwright/test\";\nimport { z } from \"zod\";\nimport { tool } from \"ai\";\nimport { V3 } from \"../v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\nimport {\n ExperimentalNotConfiguredError,\n StagehandInvalidArgumentError,\n} from \"../types/public/sdkErrors.js\";\n\n// Define a mock custom tool for testing\nconst mockCustomTool = tool({\n description: \"A mock tool for testing\",\n inputSchema: z.object({\n input: z.string().describe(\"The input string\"),\n }),\n execute: async ({ input }) => {\n return `Processed: ${input}`;\n },\n});\n\ntest.describe(\"Stagehand agent experimental feature validation\", () => {\n test.describe(\"Invalid argument errors\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3({\n ...v3TestConfig,\n experimental: false,\n });\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"throws StagehandInvalidArgumentError when CUA and streaming are both enabled\", async () => {\n try {\n v3.agent({\n cua: true,\n stream: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StagehandInvalidArgumentError);\n expect((error as Error).message).toContain(\"streaming\");\n expect((error as Error).message).toContain(\"not supported with CUA\");\n }\n });\n\n test(\"throws StagehandInvalidArgumentError for CUA + streaming even with experimental: true\", async () => {\n // Close the non-experimental instance\n await v3.close();\n\n // Create an experimental instance\n const v3Experimental = new V3({\n ...v3TestConfig,\n experimental: true,\n });\n await v3Experimental.init();\n\n try {\n v3Experimental.agent({\n cua: true,\n stream: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StagehandInvalidArgumentError);\n expect((error as Error).message).toContain(\"streaming\");\n expect((error as Error).message).toContain(\"not supported with CUA\");\n } finally {\n await v3Experimental.close();\n }\n });\n });\n\n test.describe(\"Experimental feature errors without experimental: true\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3({\n ...v3TestConfig,\n experimental: false,\n });\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"throws ExperimentalNotConfiguredError for MCP integrations\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n integrations: [\"https://mcp.example.com\"],\n });\n\n try {\n await agent.execute(\"test\");\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\n \"MCP integrations and custom tools\",\n );\n }\n });\n\n test(\"throws ExperimentalNotConfiguredError for custom tools\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n tools: {\n mockCustomTool,\n },\n });\n\n try {\n await agent.execute(\"test\");\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\n \"MCP integrations and custom tools\",\n );\n }\n });\n\n test(\"throws ExperimentalNotConfiguredError for streaming mode\", async () => {\n try {\n const agent = v3.agent({\n stream: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n await agent.execute(\"test instruction\");\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\"streaming\");\n }\n });\n\n test(\"throws ExperimentalNotConfiguredError for callbacks\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: {\n onStepFinish: async () => {},\n },\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\"callbacks\");\n }\n });\n\n test(\"throws ExperimentalNotConfiguredError for abort signal\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n const controller = new AbortController();\n try {\n await agent.execute({\n instruction: \"test\",\n signal: controller.signal,\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\"abort signal\");\n }\n });\n\n test(\"throws ExperimentalNotConfiguredError for message continuation\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n try {\n await agent.execute({\n instruction: \"test\",\n messages: [{ role: \"user\", content: \"previous message\" }],\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\"message continuation\");\n }\n });\n\n test(\"throws ExperimentalNotConfiguredError listing multiple features\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n const controller = new AbortController();\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: { onStepFinish: async () => {} },\n signal: controller.signal,\n messages: [{ role: \"user\", content: \"previous\" }],\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n const message = (error as Error).message;\n expect(message).toContain(\"callbacks\");\n expect(message).toContain(\"abort signal\");\n expect(message).toContain(\"message continuation\");\n }\n });\n });\n\n test.describe(\"CUA agent unsupported features\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3({\n ...v3TestConfig,\n experimental: false,\n });\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"throws ExperimentalNotConfiguredError for CUA with integrations\", async () => {\n // MCP integrations are still an experimental feature check (not unsupported)\n try {\n v3.agent({\n cua: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n integrations: [\"https://mcp.example.com\"],\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExperimentalNotConfiguredError);\n expect((error as Error).message).toContain(\n \"MCP integrations and custom tools\",\n );\n }\n });\n\n test(\"throws StagehandInvalidArgumentError for CUA with abort signal (not supported)\", async () => {\n const agent = v3.agent({\n cua: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n const controller = new AbortController();\n try {\n await agent.execute({\n instruction: \"test\",\n signal: controller.signal,\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StagehandInvalidArgumentError);\n expect((error as Error).message).toContain(\"abort signal\");\n expect((error as Error).message).toContain(\"not supported with CUA\");\n }\n });\n\n test(\"throws StagehandInvalidArgumentError for CUA with message continuation (not supported)\", async () => {\n const agent = v3.agent({\n cua: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n try {\n await agent.execute({\n instruction: \"test\",\n messages: [{ role: \"user\", content: \"previous message\" }],\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StagehandInvalidArgumentError);\n expect((error as Error).message).toContain(\"message continuation\");\n expect((error as Error).message).toContain(\"not supported with CUA\");\n }\n });\n\n test(\"throws StagehandInvalidArgumentError for CUA with multiple unsupported features\", async () => {\n const agent = v3.agent({\n cua: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n const controller = new AbortController();\n try {\n await agent.execute({\n instruction: \"test\",\n signal: controller.signal,\n messages: [{ role: \"user\", content: \"previous message\" }],\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StagehandInvalidArgumentError);\n const message = (error as Error).message;\n expect(message).toContain(\"abort signal\");\n expect(message).toContain(\"message continuation\");\n expect(message).toContain(\"are not supported with CUA\");\n }\n });\n\n test(\"throws StagehandInvalidArgumentError for CUA unsupported features even with experimental: true\", async () => {\n // Close the non-experimental instance\n await v3.close();\n\n // Create an experimental instance\n const v3Experimental = new V3({\n ...v3TestConfig,\n experimental: true,\n });\n await v3Experimental.init();\n\n const agent = v3Experimental.agent({\n cua: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n });\n\n const controller = new AbortController();\n try {\n await agent.execute({\n instruction: \"test\",\n signal: controller.signal,\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StagehandInvalidArgumentError);\n expect((error as Error).message).toContain(\"not supported with CUA\");\n } finally {\n await v3Experimental.close();\n }\n });\n });\n\n test.describe(\"Valid configurations with experimental: true\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3({\n ...v3TestConfig,\n experimental: true,\n });\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"allows CUA without streaming\", () => {\n expect(() =>\n v3.agent({\n cua: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n }),\n ).not.toThrow();\n });\n\n test(\"allows streaming mode\", () => {\n expect(() =>\n v3.agent({\n stream: true,\n model: \"anthropic/claude-sonnet-4-20250514\",\n }),\n ).not.toThrow();\n });\n\n test(\"allows basic agent without experimental features\", async () => {\n const v3NonExperimental = new V3({\n ...v3TestConfig,\n experimental: false,\n });\n await v3NonExperimental.init();\n\n try {\n // This should work - just creating a basic agent with no experimental features\n expect(() =>\n v3NonExperimental.agent({\n model: \"anthropic/claude-sonnet-4-20250514\",\n }),\n ).not.toThrow();\n } finally {\n await v3NonExperimental.close();\n }\n });\n });\n});\n"],
5
+ "mappings": "AAAA,SAAS,MAAM,cAAc;AAC7B,SAAS,SAAS;AAClB,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB,SAAS,oBAAoB;AAC7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAGP,MAAM,iBAAiB,KAAK;AAAA,EAC1B,aAAa;AAAA,EACb,aAAa,EAAE,OAAO;AAAA,IACpB,OAAO,EAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA,EAC/C,CAAC;AAAA,EACD,SAAS,OAAO,EAAE,MAAM,MAAM;AAC5B,WAAO,cAAc,KAAK;AAAA,EAC5B;AACF,CAAC;AAED,KAAK,SAAS,mDAAmD,MAAM;AACrE,OAAK,SAAS,2BAA2B,MAAM;AAC7C,QAAI;AAEJ,SAAK,WAAW,YAAY;AAC1B,WAAK,IAAI,GAAG;AAAA,QACV,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,GAAG,KAAK;AAAA,IAChB,CAAC;AAED,SAAK,UAAU,YAAY;AACzB,YAAM,IAAI,QAAQ,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IACpC,CAAC;AAED,SAAK,gFAAgF,YAAY;AAC/F,UAAI;AACF,WAAG,MAAM;AAAA,UACP,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,6BAA6B;AAC1D,eAAQ,MAAgB,OAAO,EAAE,UAAU,WAAW;AACtD,eAAQ,MAAgB,OAAO,EAAE,UAAU,wBAAwB;AAAA,MACrE;AAAA,IACF,CAAC;AAED,SAAK,yFAAyF,YAAY;AAExG,YAAM,GAAG,MAAM;AAGf,YAAM,iBAAiB,IAAI,GAAG;AAAA,QAC5B,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,eAAe,KAAK;AAE1B,UAAI;AACF,uBAAe,MAAM;AAAA,UACnB,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,6BAA6B;AAC1D,eAAQ,MAAgB,OAAO,EAAE,UAAU,WAAW;AACtD,eAAQ,MAAgB,OAAO,EAAE,UAAU,wBAAwB;AAAA,MACrE,UAAE;AACA,cAAM,eAAe,MAAM;AAAA,MAC7B;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,OAAK,SAAS,0DAA0D,MAAM;AAC5E,QAAI;AAEJ,SAAK,WAAW,YAAY;AAC1B,WAAK,IAAI,GAAG;AAAA,QACV,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,GAAG,KAAK;AAAA,IAChB,CAAC;AAED,SAAK,UAAU,YAAY;AACzB,YAAM,IAAI,QAAQ,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IACpC,CAAC;AAED,SAAK,8DAA8D,YAAY;AAC7E,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,OAAO;AAAA,QACP,cAAc,CAAC,yBAAyB;AAAA,MAC1C,CAAC;AAED,UAAI;AACF,cAAM,MAAM,QAAQ,MAAM;AAC1B,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,0DAA0D,YAAY;AACzE,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,UACL;AAAA,QACF;AAAA,MACF,CAAC;AAED,UAAI;AACF,cAAM,MAAM,QAAQ,MAAM;AAC1B,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,4DAA4D,YAAY;AAC3E,UAAI;AACF,cAAM,QAAQ,GAAG,MAAM;AAAA,UACrB,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AACD,cAAM,MAAM,QAAQ,kBAAkB;AACtC,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE,UAAU,WAAW;AAAA,MACxD;AAAA,IACF,CAAC;AAED,SAAK,uDAAuD,YAAY;AACtE,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,OAAO;AAAA,MACT,CAAC;AAED,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,WAAW;AAAA,YACT,cAAc,YAAY;AAAA,YAAC;AAAA,UAC7B;AAAA,QACF,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE,UAAU,WAAW;AAAA,MACxD;AAAA,IACF,CAAC;AAED,SAAK,0DAA0D,YAAY;AACzE,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,OAAO;AAAA,MACT,CAAC;AAED,YAAM,aAAa,IAAI,gBAAgB;AACvC,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,QAAQ,WAAW;AAAA,QACrB,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE,UAAU,cAAc;AAAA,MAC3D;AAAA,IACF,CAAC;AAED,SAAK,kEAAkE,YAAY;AACjF,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,OAAO;AAAA,MACT,CAAC;AAED,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,UAAU,CAAC,EAAE,MAAM,QAAQ,SAAS,mBAAmB,CAAC;AAAA,QAC1D,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE,UAAU,sBAAsB;AAAA,MACnE;AAAA,IACF,CAAC;AAED,SAAK,mEAAmE,YAAY;AAClF,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,OAAO;AAAA,MACT,CAAC;AAED,YAAM,aAAa,IAAI,gBAAgB;AACvC,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,WAAW,EAAE,cAAc,YAAY;AAAA,UAAC,EAAE;AAAA,UAC1C,QAAQ,WAAW;AAAA,UACnB,UAAU,CAAC,EAAE,MAAM,QAAQ,SAAS,WAAW,CAAC;AAAA,QAClD,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,cAAM,UAAW,MAAgB;AACjC,eAAO,OAAO,EAAE,UAAU,WAAW;AACrC,eAAO,OAAO,EAAE,UAAU,cAAc;AACxC,eAAO,OAAO,EAAE,UAAU,sBAAsB;AAAA,MAClD;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,OAAK,SAAS,kCAAkC,MAAM;AACpD,QAAI;AAEJ,SAAK,WAAW,YAAY;AAC1B,WAAK,IAAI,GAAG;AAAA,QACV,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,GAAG,KAAK;AAAA,IAChB,CAAC;AAED,SAAK,UAAU,YAAY;AACzB,YAAM,IAAI,QAAQ,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IACpC,CAAC;AAED,SAAK,mEAAmE,YAAY;AAElF,UAAI;AACF,WAAG,MAAM;AAAA,UACP,KAAK;AAAA,UACL,OAAO;AAAA,UACP,cAAc,CAAC,yBAAyB;AAAA,QAC1C,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,8BAA8B;AAC3D,eAAQ,MAAgB,OAAO,EAAE;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,kFAAkF,YAAY;AACjG,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,KAAK;AAAA,QACL,OAAO;AAAA,MACT,CAAC;AAED,YAAM,aAAa,IAAI,gBAAgB;AACvC,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,QAAQ,WAAW;AAAA,QACrB,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,6BAA6B;AAC1D,eAAQ,MAAgB,OAAO,EAAE,UAAU,cAAc;AACzD,eAAQ,MAAgB,OAAO,EAAE,UAAU,wBAAwB;AAAA,MACrE;AAAA,IACF,CAAC;AAED,SAAK,0FAA0F,YAAY;AACzG,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,KAAK;AAAA,QACL,OAAO;AAAA,MACT,CAAC;AAED,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,UAAU,CAAC,EAAE,MAAM,QAAQ,SAAS,mBAAmB,CAAC;AAAA,QAC1D,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,6BAA6B;AAC1D,eAAQ,MAAgB,OAAO,EAAE,UAAU,sBAAsB;AACjE,eAAQ,MAAgB,OAAO,EAAE,UAAU,wBAAwB;AAAA,MACrE;AAAA,IACF,CAAC;AAED,SAAK,mFAAmF,YAAY;AAClG,YAAM,QAAQ,GAAG,MAAM;AAAA,QACrB,KAAK;AAAA,QACL,OAAO;AAAA,MACT,CAAC;AAED,YAAM,aAAa,IAAI,gBAAgB;AACvC,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,QAAQ,WAAW;AAAA,UACnB,UAAU,CAAC,EAAE,MAAM,QAAQ,SAAS,mBAAmB,CAAC;AAAA,QAC1D,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,6BAA6B;AAC1D,cAAM,UAAW,MAAgB;AACjC,eAAO,OAAO,EAAE,UAAU,cAAc;AACxC,eAAO,OAAO,EAAE,UAAU,sBAAsB;AAChD,eAAO,OAAO,EAAE,UAAU,4BAA4B;AAAA,MACxD;AAAA,IACF,CAAC;AAED,SAAK,kGAAkG,YAAY;AAEjH,YAAM,GAAG,MAAM;AAGf,YAAM,iBAAiB,IAAI,GAAG;AAAA,QAC5B,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,eAAe,KAAK;AAE1B,YAAM,QAAQ,eAAe,MAAM;AAAA,QACjC,KAAK;AAAA,QACL,OAAO;AAAA,MACT,CAAC;AAED,YAAM,aAAa,IAAI,gBAAgB;AACvC,UAAI;AACF,cAAM,MAAM,QAAQ;AAAA,UAClB,aAAa;AAAA,UACb,QAAQ,WAAW;AAAA,QACrB,CAAC;AACD,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C,SAAS,OAAO;AACd,eAAO,KAAK,EAAE,eAAe,6BAA6B;AAC1D,eAAQ,MAAgB,OAAO,EAAE,UAAU,wBAAwB;AAAA,MACrE,UAAE;AACA,cAAM,eAAe,MAAM;AAAA,MAC7B;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,OAAK,SAAS,gDAAgD,MAAM;AAClE,QAAI;AAEJ,SAAK,WAAW,YAAY;AAC1B,WAAK,IAAI,GAAG;AAAA,QACV,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,GAAG,KAAK;AAAA,IAChB,CAAC;AAED,SAAK,UAAU,YAAY;AACzB,YAAM,IAAI,QAAQ,EAAE,MAAM,MAAM;AAAA,MAAC,CAAC;AAAA,IACpC,CAAC;AAED,SAAK,gCAAgC,MAAM;AACzC;AAAA,QAAO,MACL,GAAG,MAAM;AAAA,UACP,KAAK;AAAA,UACL,OAAO;AAAA,QACT,CAAC;AAAA,MACH,EAAE,IAAI,QAAQ;AAAA,IAChB,CAAC;AAED,SAAK,yBAAyB,MAAM;AAClC;AAAA,QAAO,MACL,GAAG,MAAM;AAAA,UACP,QAAQ;AAAA,UACR,OAAO;AAAA,QACT,CAAC;AAAA,MACH,EAAE,IAAI,QAAQ;AAAA,IAChB,CAAC;AAED,SAAK,oDAAoD,YAAY;AACnE,YAAM,oBAAoB,IAAI,GAAG;AAAA,QAC/B,GAAG;AAAA,QACH,cAAc;AAAA,MAChB,CAAC;AACD,YAAM,kBAAkB,KAAK;AAE7B,UAAI;AAEF;AAAA,UAAO,MACL,kBAAkB,MAAM;AAAA,YACtB,OAAO;AAAA,UACT,CAAC;AAAA,QACH,EAAE,IAAI,QAAQ;AAAA,MAChB,UAAE;AACA,cAAM,kBAAkB,MAAM;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,247 @@
1
+ import { test, expect } from "@playwright/test";
2
+ import { V3 } from "../v3.js";
3
+ import { v3TestConfig } from "./v3.config.js";
4
+ import { createAgentTools } from "../agent/tools/index.js";
5
+ import { buildAgentSystemPrompt } from "../agent/prompts/agentSystemPrompt.js";
6
+ test.describe("Stagehand agent hybrid mode", () => {
7
+ let v3;
8
+ test.beforeEach(async () => {
9
+ v3 = new V3({
10
+ ...v3TestConfig,
11
+ experimental: true
12
+ });
13
+ await v3.init();
14
+ });
15
+ test.afterEach(async () => {
16
+ await v3?.close?.().catch(() => {
17
+ });
18
+ });
19
+ test.describe("Tool filtering by mode", () => {
20
+ test("DOM mode includes DOM-based tools and excludes coordinate-based tools", () => {
21
+ const tools = createAgentTools(v3, { mode: "dom" });
22
+ expect(tools).toHaveProperty("act");
23
+ expect(tools).toHaveProperty("fillForm");
24
+ expect(tools).toHaveProperty("ariaTree");
25
+ expect(tools).toHaveProperty("screenshot");
26
+ expect(tools).toHaveProperty("extract");
27
+ expect(tools).toHaveProperty("goto");
28
+ expect(tools).toHaveProperty("scroll");
29
+ expect(tools).toHaveProperty("wait");
30
+ expect(tools).toHaveProperty("navback");
31
+ expect(tools).toHaveProperty("keys");
32
+ expect(tools).toHaveProperty("think");
33
+ expect(tools).not.toHaveProperty("click");
34
+ expect(tools).not.toHaveProperty("type");
35
+ expect(tools).not.toHaveProperty("dragAndDrop");
36
+ expect(tools).not.toHaveProperty("clickAndHold");
37
+ expect(tools).not.toHaveProperty("fillFormVision");
38
+ });
39
+ test("Hybrid mode includes coordinate-based tools and excludes DOM fillForm", () => {
40
+ const tools = createAgentTools(v3, { mode: "hybrid" });
41
+ expect(tools).toHaveProperty("click");
42
+ expect(tools).toHaveProperty("type");
43
+ expect(tools).toHaveProperty("dragAndDrop");
44
+ expect(tools).toHaveProperty("clickAndHold");
45
+ expect(tools).toHaveProperty("fillFormVision");
46
+ expect(tools).toHaveProperty("act");
47
+ expect(tools).toHaveProperty("ariaTree");
48
+ expect(tools).toHaveProperty("screenshot");
49
+ expect(tools).toHaveProperty("extract");
50
+ expect(tools).toHaveProperty("goto");
51
+ expect(tools).toHaveProperty("scroll");
52
+ expect(tools).toHaveProperty("wait");
53
+ expect(tools).toHaveProperty("navback");
54
+ expect(tools).toHaveProperty("keys");
55
+ expect(tools).toHaveProperty("think");
56
+ expect(tools).not.toHaveProperty("fillForm");
57
+ });
58
+ test("Default mode is DOM when not specified", () => {
59
+ const tools = createAgentTools(v3, {});
60
+ expect(tools).toHaveProperty("fillForm");
61
+ expect(tools).not.toHaveProperty("click");
62
+ expect(tools).not.toHaveProperty("type");
63
+ });
64
+ });
65
+ test.describe("System prompt generation", () => {
66
+ test("DOM mode system prompt emphasizes ariaTree and act tool", () => {
67
+ const prompt = buildAgentSystemPrompt({
68
+ url: "https://example.com",
69
+ executionInstruction: "Test instruction",
70
+ mode: "dom"
71
+ });
72
+ expect(prompt).toContain("ariaTree");
73
+ expect(prompt).toContain("act");
74
+ expect(prompt).toContain("fillForm");
75
+ expect(prompt).toContain("Use act tool for all clicking and typing");
76
+ expect(prompt).toContain("Always check ariaTree first");
77
+ });
78
+ test("Hybrid mode system prompt emphasizes screenshot and coordinate tools", () => {
79
+ const prompt = buildAgentSystemPrompt({
80
+ url: "https://example.com",
81
+ executionInstruction: "Test instruction",
82
+ mode: "hybrid"
83
+ });
84
+ expect(prompt).toContain("click");
85
+ expect(prompt).toContain("type");
86
+ expect(prompt).toContain("fillFormVision");
87
+ expect(prompt).toContain("dragAndDrop");
88
+ expect(prompt).toContain(
89
+ "Use specific tools (click, type) when elements are visible"
90
+ );
91
+ expect(prompt).toContain("Always use screenshot");
92
+ });
93
+ test("System prompt includes custom instructions when provided", () => {
94
+ const customInstructions = "Always be polite and thorough";
95
+ const prompt = buildAgentSystemPrompt({
96
+ url: "https://example.com",
97
+ executionInstruction: "Test instruction",
98
+ mode: "dom",
99
+ systemInstructions: customInstructions
100
+ });
101
+ expect(prompt).toContain("customInstructions");
102
+ expect(prompt).toContain(customInstructions);
103
+ });
104
+ test("System prompt includes Browserbase captcha message when isBrowserbase is true", () => {
105
+ const prompt = buildAgentSystemPrompt({
106
+ url: "https://example.com",
107
+ executionInstruction: "Test instruction",
108
+ mode: "dom",
109
+ isBrowserbase: true
110
+ });
111
+ expect(prompt).toContain("captcha");
112
+ expect(prompt).toContain("automatically be solved");
113
+ });
114
+ test("System prompt does not include captcha message when isBrowserbase is false", () => {
115
+ const prompt = buildAgentSystemPrompt({
116
+ url: "https://example.com",
117
+ executionInstruction: "Test instruction",
118
+ mode: "dom",
119
+ isBrowserbase: false
120
+ });
121
+ expect(prompt).not.toContain("automatically be solved");
122
+ });
123
+ });
124
+ test.describe("Agent creation with mode", () => {
125
+ test("agent({ mode: 'dom' }) creates DOM-mode agent", () => {
126
+ const agent = v3.agent({
127
+ mode: "dom",
128
+ model: "anthropic/claude-haiku-4-5-20251001"
129
+ });
130
+ expect(agent).toHaveProperty("execute");
131
+ });
132
+ test("agent({ mode: 'hybrid' }) creates hybrid-mode agent", () => {
133
+ const agent = v3.agent({
134
+ mode: "hybrid",
135
+ model: "anthropic/claude-haiku-4-5-20251001"
136
+ });
137
+ expect(agent).toHaveProperty("execute");
138
+ });
139
+ test("agent without mode defaults to DOM mode", () => {
140
+ const agent = v3.agent({
141
+ model: "anthropic/claude-haiku-4-5-20251001"
142
+ });
143
+ expect(agent).toHaveProperty("execute");
144
+ });
145
+ test("hybrid mode can be combined with streaming", () => {
146
+ const agent = v3.agent({
147
+ mode: "hybrid",
148
+ stream: true,
149
+ model: "anthropic/claude-haiku-4-5-20251001"
150
+ });
151
+ expect(agent).toHaveProperty("execute");
152
+ });
153
+ });
154
+ test.describe("Hybrid mode execution", () => {
155
+ test("hybrid mode agent uses coordinate-based tools when available", async () => {
156
+ test.setTimeout(9e4);
157
+ const toolCalls = [];
158
+ const agent = v3.agent({
159
+ mode: "hybrid",
160
+ model: "anthropic/claude-haiku-4-5-20251001"
161
+ });
162
+ const page = v3.context.pages()[0];
163
+ await page.goto("https://example.com");
164
+ await agent.execute({
165
+ instruction: "Take a screenshot to see the page, then describe what you see briefly and mark the task as complete.",
166
+ maxSteps: 5,
167
+ callbacks: {
168
+ onStepFinish: async (event) => {
169
+ if (event.toolCalls) {
170
+ for (const tc of event.toolCalls) {
171
+ toolCalls.push({
172
+ toolName: tc.toolName,
173
+ input: tc.input
174
+ });
175
+ }
176
+ }
177
+ }
178
+ }
179
+ });
180
+ expect(toolCalls.length).toBeGreaterThan(0);
181
+ const toolNames = toolCalls.map((tc) => tc.toolName);
182
+ expect(toolNames).toContain("screenshot");
183
+ });
184
+ test("DOM mode agent uses DOM-based tools", async () => {
185
+ test.setTimeout(9e4);
186
+ const toolCalls = [];
187
+ const agent = v3.agent({
188
+ mode: "dom",
189
+ model: "anthropic/claude-haiku-4-5-20251001"
190
+ });
191
+ const page = v3.context.pages()[0];
192
+ await page.goto("https://example.com");
193
+ await agent.execute({
194
+ instruction: "Use the ariaTree to understand the page, then provide the final requested output or a summary of the page.",
195
+ maxSteps: 5,
196
+ callbacks: {
197
+ onStepFinish: async (event) => {
198
+ if (event.toolCalls) {
199
+ for (const tc of event.toolCalls) {
200
+ toolCalls.push({
201
+ toolName: tc.toolName,
202
+ input: tc.input
203
+ });
204
+ }
205
+ }
206
+ }
207
+ }
208
+ });
209
+ expect(toolCalls.length).toBeGreaterThan(0);
210
+ const toolNames = toolCalls.map((tc) => tc.toolName);
211
+ expect(toolNames).toContain("ariaTree");
212
+ });
213
+ });
214
+ test.describe("Scroll tool variants by mode", () => {
215
+ test("DOM mode uses simple scroll tool without coordinates", () => {
216
+ const tools = createAgentTools(v3, { mode: "dom" });
217
+ expect(tools).toHaveProperty("scroll");
218
+ expect(typeof tools.scroll).toBe("object");
219
+ });
220
+ test("Hybrid mode uses vision scroll tool with optional coordinates", () => {
221
+ const tools = createAgentTools(v3, { mode: "hybrid" });
222
+ expect(tools).toHaveProperty("scroll");
223
+ expect(typeof tools.scroll).toBe("object");
224
+ });
225
+ });
226
+ test.describe("Keys tool availability in both modes", () => {
227
+ test("Keys tool is available in DOM mode", () => {
228
+ const tools = createAgentTools(v3, { mode: "dom" });
229
+ expect(tools).toHaveProperty("keys");
230
+ });
231
+ test("Keys tool is available in hybrid mode", () => {
232
+ const tools = createAgentTools(v3, { mode: "hybrid" });
233
+ expect(tools).toHaveProperty("keys");
234
+ });
235
+ });
236
+ test.describe("Think tool availability", () => {
237
+ test("Think tool is available in DOM mode", () => {
238
+ const tools = createAgentTools(v3, { mode: "dom" });
239
+ expect(tools).toHaveProperty("think");
240
+ });
241
+ test("Think tool is available in hybrid mode", () => {
242
+ const tools = createAgentTools(v3, { mode: "hybrid" });
243
+ expect(tools).toHaveProperty("think");
244
+ });
245
+ });
246
+ });
247
+ //# sourceMappingURL=agent-hybrid-mode.spec.js.map