@browserbasehq/orca 3.1.0-patch.0 → 3.1.0-patch.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 (387) hide show
  1. package/dist/cjs/cli.js +183 -0
  2. package/dist/cjs/cli.js.map +7 -0
  3. package/dist/cjs/index.d.ts +1 -0
  4. package/dist/cjs/index.js +24956 -0
  5. package/dist/cjs/index.js.map +7 -0
  6. package/dist/cjs/lib/inference.d.ts +65 -0
  7. package/dist/cjs/lib/inferenceLogUtils.d.ts +12 -0
  8. package/dist/cjs/lib/logger.d.ts +69 -0
  9. package/dist/cjs/lib/modelUtils.d.ts +11 -0
  10. package/dist/cjs/lib/prompt.d.ts +14 -0
  11. package/dist/cjs/lib/utils.d.ts +68 -0
  12. package/dist/cjs/lib/v3/agent/AgentClient.d.ts +19 -0
  13. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +20 -0
  14. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.d.ts +57 -0
  15. package/dist/cjs/lib/v3/agent/GoogleCUAClient.d.ts +74 -0
  16. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.d.ts +71 -0
  17. package/dist/cjs/lib/v3/agent/OpenAICUAClient.d.ts +69 -0
  18. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +12 -0
  19. package/dist/cjs/lib/v3/agent/tools/act.d.ts +12 -0
  20. package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +5 -0
  21. package/dist/cjs/lib/v3/agent/tools/click.d.ts +6 -0
  22. package/dist/cjs/lib/v3/agent/tools/clickAndHold.d.ts +14 -0
  23. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.d.ts +7 -0
  24. package/dist/cjs/lib/v3/agent/tools/extract.d.ts +20 -0
  25. package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +12 -0
  26. package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +12 -0
  27. package/dist/cjs/lib/v3/agent/tools/goto.d.ts +12 -0
  28. package/dist/cjs/lib/v3/agent/tools/index.d.ts +92 -0
  29. package/dist/cjs/lib/v3/agent/tools/keys.d.ts +24 -0
  30. package/dist/cjs/lib/v3/agent/tools/navback.d.ts +6 -0
  31. package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +6 -0
  32. package/dist/cjs/lib/v3/agent/tools/scroll.d.ts +19 -0
  33. package/dist/cjs/lib/v3/agent/tools/search.d.ts +15 -0
  34. package/dist/cjs/lib/v3/agent/tools/think.d.ts +6 -0
  35. package/dist/cjs/lib/v3/agent/tools/type.d.ts +7 -0
  36. package/dist/cjs/lib/v3/agent/tools/wait.d.ts +5 -0
  37. package/dist/cjs/lib/v3/agent/utils/actionMapping.d.ts +3 -0
  38. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.d.ts +13 -0
  39. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.d.ts +10 -0
  40. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.d.ts +25 -0
  41. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.d.ts +22 -0
  42. package/dist/cjs/lib/v3/agent/utils/imageCompression.d.ts +53 -0
  43. package/dist/cjs/lib/v3/agent/utils/messageProcessing.d.ts +12 -0
  44. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.d.ts +10 -0
  45. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.d.ts +26 -0
  46. package/dist/cjs/lib/v3/agent/utils/xpath.d.ts +11 -0
  47. package/dist/cjs/lib/v3/api.d.ts +86 -0
  48. package/dist/cjs/lib/v3/cache/ActCache.d.ts +23 -0
  49. package/dist/cjs/lib/v3/cache/AgentCache.d.ts +109 -0
  50. package/dist/cjs/lib/v3/cache/CacheStorage.d.ts +17 -0
  51. package/dist/cjs/lib/v3/cache/serverAgentCache.d.ts +7 -0
  52. package/dist/cjs/lib/v3/cache/utils.d.ts +15 -0
  53. package/dist/cjs/lib/v3/cli.d.ts +2 -0
  54. package/dist/cjs/lib/v3/dom/a11yScripts/index.d.ts +11 -0
  55. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.d.ts +16 -0
  56. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.d.ts +52 -0
  57. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.d.ts +1 -0
  58. package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
  59. package/dist/cjs/lib/v3/dom/build/rerender-index.js +1 -0
  60. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.d.ts +4 -0
  61. package/dist/cjs/lib/v3/dom/build/scriptV3Content.d.ts +1 -0
  62. package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
  63. package/dist/cjs/lib/v3/dom/build/v3-index.js +1 -0
  64. package/dist/cjs/lib/v3/dom/genA11yScripts.d.ts +1 -0
  65. package/dist/cjs/lib/v3/dom/genDomScripts.d.ts +1 -0
  66. package/dist/cjs/lib/v3/dom/genLocatorScripts.d.ts +1 -0
  67. package/dist/cjs/lib/v3/dom/genScreenshotScripts.d.ts +1 -0
  68. package/dist/cjs/lib/v3/dom/index.d.ts +1 -0
  69. package/dist/cjs/lib/v3/dom/locatorScripts/counts.d.ts +15 -0
  70. package/dist/cjs/lib/v3/dom/locatorScripts/index.d.ts +4 -0
  71. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.d.ts +37 -0
  72. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.d.ts +4 -0
  73. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.d.ts +19 -0
  74. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.d.ts +76 -0
  75. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.d.ts +9 -0
  76. package/dist/cjs/lib/v3/dom/piercer.entry.d.ts +1 -0
  77. package/dist/cjs/lib/v3/dom/piercer.runtime.d.ts +23 -0
  78. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.d.ts +1 -0
  79. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.d.ts +1 -0
  80. package/dist/cjs/lib/v3/dom/screenshotScripts/index.d.ts +1 -0
  81. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.d.ts +8 -0
  82. package/dist/cjs/lib/v3/external_clients/aisdk.d.ts +11 -0
  83. package/dist/cjs/lib/v3/external_clients/customOpenAI.d.ts +18 -0
  84. package/dist/cjs/lib/v3/flowLogger.d.ts +139 -0
  85. package/dist/cjs/lib/v3/handlers/actHandler.d.ts +21 -0
  86. package/dist/cjs/lib/v3/handlers/extractHandler.d.ts +31 -0
  87. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.d.ts +24 -0
  88. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.d.ts +2 -0
  89. package/dist/cjs/lib/v3/handlers/observeHandler.d.ts +17 -0
  90. package/dist/cjs/lib/v3/handlers/v3AgentHandler.d.ts +32 -0
  91. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.d.ts +33 -0
  92. package/dist/cjs/lib/v3/index.d.ts +18 -0
  93. package/dist/cjs/lib/v3/launch/browserbase.d.ts +7 -0
  94. package/dist/cjs/lib/v3/launch/local.d.ts +15 -0
  95. package/dist/cjs/lib/v3/llm/AnthropicClient.d.ts +16 -0
  96. package/dist/cjs/lib/v3/llm/CerebrasClient.d.ts +17 -0
  97. package/dist/cjs/lib/v3/llm/GoogleClient.d.ts +19 -0
  98. package/dist/cjs/lib/v3/llm/GroqClient.d.ts +17 -0
  99. package/dist/cjs/lib/v3/llm/LLMClient.d.ts +121 -0
  100. package/dist/cjs/lib/v3/llm/LLMProvider.d.ts +13 -0
  101. package/dist/cjs/lib/v3/llm/OpenAIClient.d.ts +15 -0
  102. package/dist/cjs/lib/v3/llm/aisdk.d.ts +15 -0
  103. package/dist/cjs/lib/v3/logger.d.ts +9 -0
  104. package/dist/cjs/lib/v3/mcp/connection.d.ts +11 -0
  105. package/dist/cjs/lib/v3/mcp/utils.d.ts +3 -0
  106. package/dist/cjs/lib/v3/shutdown/cleanupLocal.d.ts +14 -0
  107. package/dist/cjs/lib/v3/shutdown/supervisor.d.ts +11 -0
  108. package/dist/cjs/lib/v3/shutdown/supervisorClient.d.ts +15 -0
  109. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +113 -0
  110. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +7 -0
  111. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +102 -0
  112. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +7 -0
  113. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +374 -0
  114. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +7 -0
  115. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +354 -0
  116. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +7 -0
  117. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +247 -0
  118. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +7 -0
  119. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +105 -0
  120. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +7 -0
  121. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +126 -0
  122. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +7 -0
  123. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +44 -0
  124. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +7 -0
  125. package/dist/cjs/lib/v3/tests/click-count.spec.js +147 -0
  126. package/dist/cjs/lib/v3/tests/click-count.spec.js.map +7 -0
  127. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +54 -0
  128. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +7 -0
  129. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +176 -0
  130. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +7 -0
  131. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +53 -0
  132. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +7 -0
  133. package/dist/cjs/lib/v3/tests/downloads.spec.js +80 -0
  134. package/dist/cjs/lib/v3/tests/downloads.spec.js.map +7 -0
  135. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +53 -0
  136. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +7 -0
  137. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +493 -0
  138. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +7 -0
  139. package/dist/cjs/lib/v3/tests/keep-alive.child.js +92 -0
  140. package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +7 -0
  141. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +568 -0
  142. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +7 -0
  143. package/dist/cjs/lib/v3/tests/keep-alive.spec.js +15 -0
  144. package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +7 -0
  145. package/dist/cjs/lib/v3/tests/keyboard.spec.js +296 -0
  146. package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +7 -0
  147. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +159 -0
  148. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +7 -0
  149. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +191 -0
  150. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +7 -0
  151. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +108 -0
  152. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +7 -0
  153. package/dist/cjs/lib/v3/tests/locator-count.spec.js +71 -0
  154. package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +7 -0
  155. package/dist/cjs/lib/v3/tests/locator-fill.spec.js +118 -0
  156. package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +7 -0
  157. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +136 -0
  158. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +7 -0
  159. package/dist/cjs/lib/v3/tests/locator-nth.spec.js +157 -0
  160. package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +7 -0
  161. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +242 -0
  162. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +7 -0
  163. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +547 -0
  164. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +7 -0
  165. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +269 -0
  166. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +7 -0
  167. package/dist/cjs/lib/v3/tests/nested-div.spec.js +23 -0
  168. package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +7 -0
  169. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +90 -0
  170. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +7 -0
  171. package/dist/cjs/lib/v3/tests/page-console.spec.js +56 -0
  172. package/dist/cjs/lib/v3/tests/page-console.spec.js.map +7 -0
  173. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +418 -0
  174. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +7 -0
  175. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +35 -0
  176. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +7 -0
  177. package/dist/cjs/lib/v3/tests/page-hover.spec.js +167 -0
  178. package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +7 -0
  179. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +295 -0
  180. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +7 -0
  181. package/dist/cjs/lib/v3/tests/page-scroll.spec.js +182 -0
  182. package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +7 -0
  183. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +46 -0
  184. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +7 -0
  185. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +98 -0
  186. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +7 -0
  187. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +148 -0
  188. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +7 -0
  189. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +156 -0
  190. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +7 -0
  191. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +156 -0
  192. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +7 -0
  193. package/dist/cjs/lib/v3/tests/testUtils.js +54 -0
  194. package/dist/cjs/lib/v3/tests/testUtils.js.map +7 -0
  195. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +100 -0
  196. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +7 -0
  197. package/dist/cjs/lib/v3/tests/timeouts.spec.js +32 -0
  198. package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +7 -0
  199. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +65 -0
  200. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +7 -0
  201. package/dist/cjs/lib/v3/tests/v3.config.js +36 -0
  202. package/dist/cjs/lib/v3/tests/v3.config.js.map +7 -0
  203. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +67 -0
  204. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +7 -0
  205. package/dist/cjs/lib/v3/tests/v3.playwright.config.js +61 -0
  206. package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +7 -0
  207. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +593 -0
  208. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +7 -0
  209. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +97 -0
  210. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +7 -0
  211. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +77 -0
  212. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +7 -0
  213. package/dist/cjs/lib/v3/timeoutConfig.d.ts +2 -0
  214. package/dist/cjs/lib/v3/types/private/agent.d.ts +6 -0
  215. package/dist/cjs/lib/v3/types/private/api.d.ts +11 -0
  216. package/dist/cjs/lib/v3/types/private/cache.d.ts +128 -0
  217. package/dist/cjs/lib/v3/types/private/evaluator.d.ts +40 -0
  218. package/dist/cjs/lib/v3/types/private/handlers.d.ts +38 -0
  219. package/dist/cjs/lib/v3/types/private/index.d.ts +7 -0
  220. package/dist/cjs/lib/v3/types/private/internal.d.ts +39 -0
  221. package/dist/cjs/lib/v3/types/private/locator.d.ts +9 -0
  222. package/dist/cjs/lib/v3/types/private/network.d.ts +34 -0
  223. package/dist/cjs/lib/v3/types/private/shutdown.d.ts +19 -0
  224. package/dist/cjs/lib/v3/types/private/shutdownErrors.d.ts +12 -0
  225. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +117 -0
  226. package/dist/cjs/lib/v3/types/public/agent.d.ts +595 -0
  227. package/dist/cjs/lib/v3/types/public/api.d.ts +1211 -0
  228. package/dist/cjs/lib/v3/types/public/apiErrors.d.ts +18 -0
  229. package/dist/cjs/lib/v3/types/public/index.d.ts +12 -0
  230. package/dist/cjs/lib/v3/types/public/locator.d.ts +9 -0
  231. package/dist/cjs/lib/v3/types/public/logs.d.ts +23 -0
  232. package/dist/cjs/lib/v3/types/public/methods.d.ts +56 -0
  233. package/dist/cjs/lib/v3/types/public/metrics.d.ts +27 -0
  234. package/dist/cjs/lib/v3/types/public/model.d.ts +65 -0
  235. package/dist/cjs/lib/v3/types/public/options.d.ts +70 -0
  236. package/dist/cjs/lib/v3/types/public/page.d.ts +18 -0
  237. package/dist/cjs/lib/v3/types/public/screenshotTypes.d.ts +25 -0
  238. package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +152 -0
  239. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.d.ts +15 -0
  240. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.d.ts +8 -0
  241. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.d.ts +77 -0
  242. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.d.ts +7 -0
  243. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.d.ts +46 -0
  244. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +24 -0
  245. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.d.ts +4 -0
  246. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.d.ts +16 -0
  247. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.d.ts +28 -0
  248. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.d.ts +26 -0
  249. package/dist/cjs/lib/v3/understudy/a11yInvocation.d.ts +8 -0
  250. package/dist/cjs/lib/v3/understudy/cdp.d.ts +69 -0
  251. package/dist/cjs/lib/v3/understudy/consoleMessage.d.ts +22 -0
  252. package/dist/cjs/lib/v3/understudy/context.d.ts +132 -0
  253. package/dist/cjs/lib/v3/understudy/deepLocator.d.ts +87 -0
  254. package/dist/cjs/lib/v3/understudy/executionContextRegistry.d.ts +15 -0
  255. package/dist/cjs/lib/v3/understudy/fileUploadUtils.d.ts +13 -0
  256. package/dist/cjs/lib/v3/understudy/frame.d.ts +69 -0
  257. package/dist/cjs/lib/v3/understudy/frameLocator.d.ts +50 -0
  258. package/dist/cjs/lib/v3/understudy/frameRegistry.d.ts +101 -0
  259. package/dist/cjs/lib/v3/understudy/initScripts.d.ts +2 -0
  260. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.d.ts +64 -0
  261. package/dist/cjs/lib/v3/understudy/locator.d.ts +194 -0
  262. package/dist/cjs/lib/v3/understudy/locatorInvocation.d.ts +8 -0
  263. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.d.ts +84 -0
  264. package/dist/cjs/lib/v3/understudy/networkManager.d.ts +53 -0
  265. package/dist/cjs/lib/v3/understudy/page.d.ts +354 -0
  266. package/dist/cjs/lib/v3/understudy/piercer.d.ts +4 -0
  267. package/dist/cjs/lib/v3/understudy/response.d.ts +137 -0
  268. package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +16 -0
  269. package/dist/cjs/lib/v3/understudy/selectorResolver.d.ts +38 -0
  270. package/dist/cjs/lib/v3/v3.d.ts +191 -0
  271. package/dist/cjs/lib/v3/zodCompat.d.ts +12 -0
  272. package/dist/cjs/lib/v3Evaluator.d.ts +19 -0
  273. package/dist/cjs/lib/version.d.ts +5 -0
  274. package/dist/cjs/package.json +3 -0
  275. package/dist/cjs/tests/browserbase-session-accessors.test.js +101 -0
  276. package/dist/cjs/tests/browserbase-session-accessors.test.js.map +7 -0
  277. package/dist/cjs/tests/cache-llm-resolution.test.js +187 -0
  278. package/dist/cjs/tests/cache-llm-resolution.test.js.map +7 -0
  279. package/dist/cjs/tests/helpers/mockCDPSession.js +50 -0
  280. package/dist/cjs/tests/helpers/mockCDPSession.js.map +7 -0
  281. package/dist/cjs/tests/llm-provider.test.js +57 -0
  282. package/dist/cjs/tests/llm-provider.test.js.map +7 -0
  283. package/dist/cjs/tests/model-deprecation.test.js +132 -0
  284. package/dist/cjs/tests/model-deprecation.test.js.map +7 -0
  285. package/dist/cjs/tests/page-snapshot.test.js +58 -0
  286. package/dist/cjs/tests/page-snapshot.test.js.map +7 -0
  287. package/dist/cjs/tests/public-api/export-surface.test.js +76 -0
  288. package/dist/cjs/tests/public-api/export-surface.test.js.map +7 -0
  289. package/dist/cjs/tests/public-api/llm-and-agents.test.js +150 -0
  290. package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +7 -0
  291. package/dist/cjs/tests/public-api/public-error-types.test.js +104 -0
  292. package/dist/cjs/tests/public-api/public-error-types.test.js.map +7 -0
  293. package/dist/cjs/tests/public-api/public-types.test.js +74 -0
  294. package/dist/cjs/tests/public-api/public-types.test.js.map +7 -0
  295. package/dist/cjs/tests/public-api/runtime-utils.test.js +53 -0
  296. package/dist/cjs/tests/public-api/runtime-utils.test.js.map +7 -0
  297. package/dist/cjs/tests/public-api/schema-utils.test.js +100 -0
  298. package/dist/cjs/tests/public-api/schema-utils.test.js.map +7 -0
  299. package/dist/cjs/tests/public-api/timeout-error-types.test.js +103 -0
  300. package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +7 -0
  301. package/dist/cjs/tests/public-api/tool-type-export.test.js +47 -0
  302. package/dist/cjs/tests/public-api/tool-type-export.test.js.map +7 -0
  303. package/dist/cjs/tests/public-api/v3-core.test.js +104 -0
  304. package/dist/cjs/tests/public-api/v3-core.test.js.map +7 -0
  305. package/dist/cjs/tests/safety-confirmation.test.js +134 -0
  306. package/dist/cjs/tests/safety-confirmation.test.js.map +7 -0
  307. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +370 -0
  308. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +7 -0
  309. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +294 -0
  310. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +7 -0
  311. package/dist/cjs/tests/snapshot-capture-orchestration.test.js +403 -0
  312. package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +7 -0
  313. package/dist/cjs/tests/snapshot-cbor.test.js +197 -0
  314. package/dist/cjs/tests/snapshot-cbor.test.js.map +7 -0
  315. package/dist/cjs/tests/snapshot-dom-session-builders.test.js +246 -0
  316. package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +7 -0
  317. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +104 -0
  318. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +7 -0
  319. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +45 -0
  320. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +7 -0
  321. package/dist/cjs/tests/snapshot-frame-merge.test.js +388 -0
  322. package/dist/cjs/tests/snapshot-frame-merge.test.js.map +7 -0
  323. package/dist/cjs/tests/snapshot-tree-format-utils.test.js +106 -0
  324. package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +7 -0
  325. package/dist/cjs/tests/snapshot-xpath-utils.test.js +74 -0
  326. package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +7 -0
  327. package/dist/cjs/tests/timeout-handlers.test.js +864 -0
  328. package/dist/cjs/tests/timeout-handlers.test.js.map +7 -0
  329. package/dist/cjs/tests/xpath-parser.test.js +314 -0
  330. package/dist/cjs/tests/xpath-parser.test.js.map +7 -0
  331. package/dist/cjs/tests/xpath-resolver.test.js +70 -0
  332. package/dist/cjs/tests/xpath-resolver.test.js.map +7 -0
  333. package/dist/cjs/tests/zod-enum-compatibility.test.js +119 -0
  334. package/dist/cjs/tests/zod-enum-compatibility.test.js.map +7 -0
  335. package/dist/esm/lib/modelUtils.d.ts +0 -3
  336. package/dist/esm/lib/modelUtils.js +2 -7
  337. package/dist/esm/lib/modelUtils.js.map +1 -1
  338. package/dist/esm/lib/v3/agent/tools/act.d.ts +1 -2
  339. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
  340. package/dist/esm/lib/v3/agent/tools/extract.d.ts +1 -2
  341. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
  342. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +1 -2
  343. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
  344. package/dist/esm/lib/v3/agent/tools/index.d.ts +2 -2
  345. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
  346. package/dist/esm/lib/v3/cli.d.ts +2 -0
  347. package/dist/esm/lib/v3/cli.js +10 -0
  348. package/dist/esm/lib/v3/cli.js.map +1 -0
  349. package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
  350. package/dist/esm/lib/v3/dom/build/rerender-index.js.map +1 -0
  351. package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
  352. package/dist/esm/lib/v3/dom/build/v3-index.js.map +1 -0
  353. package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +2 -2
  354. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  355. package/dist/esm/lib/v3/index.d.ts +1 -0
  356. package/dist/esm/lib/v3/index.js +1 -0
  357. package/dist/esm/lib/v3/index.js.map +1 -1
  358. package/dist/esm/lib/v3/shutdown/supervisor.d.ts +7 -5
  359. package/dist/esm/lib/v3/shutdown/supervisor.js +62 -52
  360. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
  361. package/dist/esm/lib/v3/shutdown/supervisorClient.js +48 -52
  362. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
  363. package/dist/esm/lib/v3/tests/click-count.spec.js +47 -12
  364. package/dist/esm/lib/v3/tests/click-count.spec.js.map +2 -2
  365. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +67 -21
  366. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +2 -2
  367. package/dist/esm/lib/v3/tests/v3.playwright.config.js +3 -60
  368. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +2 -2
  369. package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -13
  370. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
  371. package/dist/esm/lib/v3/understudy/context.js +10 -1
  372. package/dist/esm/lib/v3/understudy/context.js.map +1 -1
  373. package/dist/esm/lib/v3/understudy/locator.js +2 -2
  374. package/dist/esm/lib/v3/understudy/locator.js.map +1 -1
  375. package/dist/esm/lib/v3/understudy/page.js +2 -1
  376. package/dist/esm/lib/v3/understudy/page.js.map +1 -1
  377. package/dist/esm/lib/v3/v3.js +10 -13
  378. package/dist/esm/lib/v3/v3.js.map +1 -1
  379. package/dist/esm/tests/public-api/export-surface.test.js +1 -0
  380. package/dist/esm/tests/public-api/export-surface.test.js.map +2 -2
  381. package/package.json +13 -9
  382. package/dist/esm/lib/v3/tests/envReporter.js +0 -57
  383. package/dist/esm/lib/v3/tests/envReporter.js.map +0 -7
  384. package/dist/esm/tests/agent-execution-model.test.js +0 -139
  385. package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
  386. package/dist/esm/tests/model-utils.test.js +0 -43
  387. package/dist/esm/tests/model-utils.test.js.map +0 -7
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../lib/v3/tests/agent-callbacks.spec.ts"],
4
+ "sourcesContent": ["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\nimport type { StepResult, ToolSet } from \"ai\";\nimport { StreamingCallbacksInNonStreamingModeError } from \"../types/public/sdkErrors.js\";\n\ntest.describe(\"Stagehand agent callbacks behavior\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3({\n ...v3TestConfig,\n experimental: true, // Required for callbacks and streaming\n });\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test.describe(\"Non-streaming callbacks (stream: false)\", () => {\n test(\"onStepFinish callback is called for each step\", async () => {\n test.setTimeout(60000);\n\n const stepFinishEvents: StepResult<ToolSet>[] = [];\n\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n await agent.execute({\n instruction:\n \"What is the title of this page? Mark the task as complete after answering.\",\n maxSteps: 5,\n callbacks: {\n onStepFinish: async (event) => {\n stepFinishEvents.push(event);\n },\n },\n });\n\n // Should have at least one step finish event\n expect(stepFinishEvents.length).toBeGreaterThan(0);\n\n // Each event should have expected properties\n for (const event of stepFinishEvents) {\n expect(event).toHaveProperty(\"finishReason\");\n expect(event).toHaveProperty(\"text\");\n }\n });\n\n test(\"prepareStep callback is called before each step\", async () => {\n test.setTimeout(60000);\n\n let prepareStepCallCount = 0;\n\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n await agent.execute({\n instruction: \"Simply describe the page briefly.\",\n maxSteps: 3,\n callbacks: {\n prepareStep: async (stepContext) => {\n prepareStepCallCount++;\n return stepContext;\n },\n },\n });\n\n // prepareStep should have been called at least once\n expect(prepareStepCallCount).toBeGreaterThan(0);\n });\n\n test(\"callbacks receive tool call information\", async () => {\n test.setTimeout(60000);\n\n const toolCalls: Array<{ toolName: string; input: unknown }> = [];\n\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n await agent.execute({\n instruction:\n \"Take a screenshot and describe what you see briefly. Then mark the task as complete.\",\n maxSteps: 3,\n callbacks: {\n onStepFinish: async (event) => {\n if (event.toolCalls) {\n for (const tc of event.toolCalls) {\n toolCalls.push({\n toolName: tc.toolName,\n input: tc.input,\n });\n }\n }\n },\n },\n });\n\n // Should have captured at least one tool call (e.g. screenshot)\n expect(toolCalls.length).toBeGreaterThan(0);\n expect(\n toolCalls.some(\n (tc) => tc.toolName === \"screenshot\" || tc.toolName === \"ariaTree\",\n ),\n ).toBe(true);\n });\n });\n\n test.describe(\"Streaming callbacks (stream: true)\", () => {\n test(\"onStepFinish callback is called for each step in stream mode\", async () => {\n test.setTimeout(60000);\n\n const stepFinishEvents: StepResult<ToolSet>[] = [];\n\n const agent = v3.agent({\n stream: true,\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n const streamResult = await agent.execute({\n instruction: \"What is this page? Describe it briefly.\",\n maxSteps: 5,\n callbacks: {\n onStepFinish: async (event) => {\n stepFinishEvents.push(event);\n },\n },\n });\n\n // Consume the stream\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of streamResult.textStream) {\n // Just consume\n }\n\n // Wait for result to complete\n await streamResult.result;\n\n // Should have at least one step finish event\n expect(stepFinishEvents.length).toBeGreaterThan(0);\n });\n\n test(\"onChunk callback is called for each chunk\", async () => {\n test.setTimeout(60000);\n\n let chunkCount = 0;\n\n const agent = v3.agent({\n stream: true,\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n const streamResult = await agent.execute({\n instruction: \"Say hello briefly and describe the page.\",\n maxSteps: 3,\n callbacks: {\n onChunk: async () => {\n chunkCount++;\n },\n },\n });\n\n // Consume the stream\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of streamResult.textStream) {\n // Just consume\n }\n\n await streamResult.result;\n\n // Should have received chunks\n expect(chunkCount).toBeGreaterThan(0);\n });\n\n test(\"onFinish callback is called when stream completes\", async () => {\n test.setTimeout(60000);\n\n let finishCalled = false;\n let finishEvent: unknown = null;\n\n const agent = v3.agent({\n stream: true,\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n const streamResult = await agent.execute({\n instruction: \"Simply describe the page briefly.\",\n maxSteps: 3,\n callbacks: {\n onFinish: (event) => {\n finishCalled = true;\n finishEvent = event;\n },\n },\n });\n\n // Consume the stream\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of streamResult.textStream) {\n // Just consume\n }\n\n await streamResult.result;\n\n // onFinish should have been called\n expect(finishCalled).toBe(true);\n expect(finishEvent).not.toBeNull();\n });\n\n test(\"prepareStep callback works in stream mode\", async () => {\n test.setTimeout(60000);\n\n let prepareStepCallCount = 0;\n\n const agent = v3.agent({\n stream: true,\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n const streamResult = await agent.execute({\n instruction: \"Simply describe the page briefly.\",\n maxSteps: 3,\n callbacks: {\n prepareStep: async (stepContext) => {\n prepareStepCallCount++;\n return stepContext;\n },\n },\n });\n\n // Consume the stream\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of streamResult.textStream) {\n // Just consume\n }\n\n await streamResult.result;\n\n // prepareStep should have been called at least once\n expect(prepareStepCallCount).toBeGreaterThan(0);\n });\n });\n\n test.describe(\"Streaming-only callbacks runtime validation\", () => {\n test(\"throws StreamingCallbacksInNonStreamingModeError when onChunk is used\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: {\n onChunk: (() => {}) as never,\n },\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StreamingCallbacksInNonStreamingModeError);\n expect(\n (error as StreamingCallbacksInNonStreamingModeError).invalidCallbacks,\n ).toEqual([\"onChunk\"]);\n }\n });\n\n test(\"throws StreamingCallbacksInNonStreamingModeError when onFinish is used\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: {\n onFinish: (() => {}) as never,\n },\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StreamingCallbacksInNonStreamingModeError);\n expect(\n (error as StreamingCallbacksInNonStreamingModeError).invalidCallbacks,\n ).toEqual([\"onFinish\"]);\n }\n });\n\n test(\"throws StreamingCallbacksInNonStreamingModeError when onError is used\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: {\n onError: (() => {}) as never,\n },\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StreamingCallbacksInNonStreamingModeError);\n expect(\n (error as StreamingCallbacksInNonStreamingModeError).invalidCallbacks,\n ).toEqual([\"onError\"]);\n }\n });\n\n test(\"throws StreamingCallbacksInNonStreamingModeError when onAbort is used\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: {\n onAbort: (() => {}) as never,\n },\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StreamingCallbacksInNonStreamingModeError);\n expect(\n (error as StreamingCallbacksInNonStreamingModeError).invalidCallbacks,\n ).toEqual([\"onAbort\"]);\n }\n });\n\n test(\"error includes all invalid callbacks when multiple are used\", async () => {\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n try {\n await agent.execute({\n instruction: \"test\",\n callbacks: {\n onChunk: (() => {}) as never,\n onFinish: (() => {}) as never,\n },\n });\n throw new Error(\"Expected error to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(StreamingCallbacksInNonStreamingModeError);\n expect(\n (error as StreamingCallbacksInNonStreamingModeError).invalidCallbacks,\n ).toEqual([\"onChunk\", \"onFinish\"]);\n }\n });\n });\n\n test.describe(\"Combined callbacks\", () => {\n test(\"multiple callbacks can be used together\", async () => {\n test.setTimeout(60000);\n\n let prepareStepCount = 0;\n let stepFinishCount = 0;\n\n const agent = v3.agent({\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n await agent.execute({\n instruction: \"Simply describe the page briefly.\",\n maxSteps: 3,\n callbacks: {\n prepareStep: async (stepContext) => {\n prepareStepCount++;\n return stepContext;\n },\n onStepFinish: async () => {\n stepFinishCount++;\n },\n },\n });\n\n // Both callbacks should have been called\n expect(prepareStepCount).toBeGreaterThan(0);\n expect(stepFinishCount).toBeGreaterThan(0);\n });\n\n test(\"streaming with multiple callbacks\", async () => {\n test.setTimeout(60000);\n\n let prepareStepCount = 0;\n let stepFinishCount = 0;\n let chunkCount = 0;\n let finishCalled = false;\n\n const agent = v3.agent({\n stream: true,\n model: \"anthropic/claude-haiku-4-5-20251001\",\n });\n\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n const streamResult = await agent.execute({\n instruction: \"Say hello briefly and describe the page.\",\n maxSteps: 3,\n callbacks: {\n prepareStep: async (stepContext) => {\n prepareStepCount++;\n return stepContext;\n },\n onStepFinish: async () => {\n stepFinishCount++;\n },\n onChunk: async () => {\n chunkCount++;\n },\n onFinish: () => {\n finishCalled = true;\n },\n },\n });\n\n // Consume the stream\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for await (const _ of streamResult.textStream) {\n // Just consume\n }\n\n await streamResult.result;\n\n // All callbacks should have been called\n expect(prepareStepCount).toBeGreaterThan(0);\n expect(stepFinishCount).toBeGreaterThan(0);\n expect(chunkCount).toBeGreaterThan(0);\n expect(finishCalled).toBe(true);\n });\n });\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,354 @@
1
+ var import_test = require("@playwright/test");
2
+ var import_zod = require("zod");
3
+ var import_ai = require("ai");
4
+ var import_v3 = require("../v3.js");
5
+ var import_v3_config = require("./v3.config.js");
6
+ var import_sdkErrors = require("../types/public/sdkErrors.js");
7
+ const mockCustomTool = (0, import_ai.tool)({
8
+ description: "A mock tool for testing",
9
+ inputSchema: import_zod.z.object({
10
+ input: import_zod.z.string().describe("The input string")
11
+ }),
12
+ execute: async ({ input }) => {
13
+ return `Processed: ${input}`;
14
+ }
15
+ });
16
+ import_test.test.describe("Stagehand agent experimental feature validation", () => {
17
+ import_test.test.describe("Invalid argument errors", () => {
18
+ let v3;
19
+ import_test.test.beforeEach(async () => {
20
+ v3 = new import_v3.V3({
21
+ ...import_v3_config.v3TestConfig,
22
+ experimental: false
23
+ });
24
+ await v3.init();
25
+ });
26
+ import_test.test.afterEach(async () => {
27
+ await v3?.close?.().catch(() => {
28
+ });
29
+ });
30
+ (0, import_test.test)("throws StagehandInvalidArgumentError when CUA and streaming are both enabled", async () => {
31
+ try {
32
+ v3.agent({
33
+ cua: true,
34
+ stream: true,
35
+ model: "anthropic/claude-sonnet-4-20250514"
36
+ });
37
+ throw new Error("Expected error to be thrown");
38
+ } catch (error) {
39
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.StagehandInvalidArgumentError);
40
+ (0, import_test.expect)(error.message).toContain("streaming");
41
+ (0, import_test.expect)(error.message).toContain("not supported with CUA");
42
+ }
43
+ });
44
+ (0, import_test.test)("throws StagehandInvalidArgumentError for CUA + streaming even with experimental: true", async () => {
45
+ await v3.close();
46
+ const v3Experimental = new import_v3.V3({
47
+ ...import_v3_config.v3TestConfig,
48
+ experimental: true
49
+ });
50
+ await v3Experimental.init();
51
+ try {
52
+ v3Experimental.agent({
53
+ cua: true,
54
+ stream: true,
55
+ model: "anthropic/claude-sonnet-4-20250514"
56
+ });
57
+ throw new Error("Expected error to be thrown");
58
+ } catch (error) {
59
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.StagehandInvalidArgumentError);
60
+ (0, import_test.expect)(error.message).toContain("streaming");
61
+ (0, import_test.expect)(error.message).toContain("not supported with CUA");
62
+ } finally {
63
+ await v3Experimental.close();
64
+ }
65
+ });
66
+ });
67
+ import_test.test.describe("Experimental feature errors without experimental: true", () => {
68
+ let v3;
69
+ import_test.test.beforeEach(async () => {
70
+ v3 = new import_v3.V3({
71
+ ...import_v3_config.v3TestConfig,
72
+ experimental: false
73
+ });
74
+ await v3.init();
75
+ });
76
+ import_test.test.afterEach(async () => {
77
+ await v3?.close?.().catch(() => {
78
+ });
79
+ });
80
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for MCP integrations", async () => {
81
+ const agent = v3.agent({
82
+ model: "anthropic/claude-sonnet-4-20250514",
83
+ integrations: ["https://mcp.example.com"]
84
+ });
85
+ try {
86
+ await agent.execute("test");
87
+ throw new Error("Expected error to be thrown");
88
+ } catch (error) {
89
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
90
+ (0, import_test.expect)(error.message).toContain(
91
+ "MCP integrations and custom tools"
92
+ );
93
+ }
94
+ });
95
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for custom tools", async () => {
96
+ const agent = v3.agent({
97
+ model: "anthropic/claude-sonnet-4-20250514",
98
+ tools: {
99
+ mockCustomTool
100
+ }
101
+ });
102
+ try {
103
+ await agent.execute("test");
104
+ throw new Error("Expected error to be thrown");
105
+ } catch (error) {
106
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
107
+ (0, import_test.expect)(error.message).toContain(
108
+ "MCP integrations and custom tools"
109
+ );
110
+ }
111
+ });
112
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for streaming mode", async () => {
113
+ try {
114
+ const agent = v3.agent({
115
+ stream: true,
116
+ model: "anthropic/claude-sonnet-4-20250514"
117
+ });
118
+ await agent.execute("test instruction");
119
+ throw new Error("Expected error to be thrown");
120
+ } catch (error) {
121
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
122
+ (0, import_test.expect)(error.message).toContain("streaming");
123
+ }
124
+ });
125
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for callbacks", async () => {
126
+ const agent = v3.agent({
127
+ model: "anthropic/claude-sonnet-4-20250514"
128
+ });
129
+ try {
130
+ await agent.execute({
131
+ instruction: "test",
132
+ callbacks: {
133
+ onStepFinish: async () => {
134
+ }
135
+ }
136
+ });
137
+ throw new Error("Expected error to be thrown");
138
+ } catch (error) {
139
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
140
+ (0, import_test.expect)(error.message).toContain("callbacks");
141
+ }
142
+ });
143
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for abort signal", async () => {
144
+ const agent = v3.agent({
145
+ model: "anthropic/claude-sonnet-4-20250514"
146
+ });
147
+ const controller = new AbortController();
148
+ try {
149
+ await agent.execute({
150
+ instruction: "test",
151
+ signal: controller.signal
152
+ });
153
+ throw new Error("Expected error to be thrown");
154
+ } catch (error) {
155
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
156
+ (0, import_test.expect)(error.message).toContain("abort signal");
157
+ }
158
+ });
159
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for message continuation", async () => {
160
+ const agent = v3.agent({
161
+ model: "anthropic/claude-sonnet-4-20250514"
162
+ });
163
+ try {
164
+ await agent.execute({
165
+ instruction: "test",
166
+ messages: [{ role: "user", content: "previous message" }]
167
+ });
168
+ throw new Error("Expected error to be thrown");
169
+ } catch (error) {
170
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
171
+ (0, import_test.expect)(error.message).toContain("message continuation");
172
+ }
173
+ });
174
+ (0, import_test.test)("throws ExperimentalNotConfiguredError listing multiple features", async () => {
175
+ const agent = v3.agent({
176
+ model: "anthropic/claude-sonnet-4-20250514"
177
+ });
178
+ const controller = new AbortController();
179
+ try {
180
+ await agent.execute({
181
+ instruction: "test",
182
+ callbacks: { onStepFinish: async () => {
183
+ } },
184
+ signal: controller.signal,
185
+ messages: [{ role: "user", content: "previous" }]
186
+ });
187
+ throw new Error("Expected error to be thrown");
188
+ } catch (error) {
189
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
190
+ const message = error.message;
191
+ (0, import_test.expect)(message).toContain("callbacks");
192
+ (0, import_test.expect)(message).toContain("abort signal");
193
+ (0, import_test.expect)(message).toContain("message continuation");
194
+ }
195
+ });
196
+ });
197
+ import_test.test.describe("CUA agent unsupported features", () => {
198
+ let v3;
199
+ import_test.test.beforeEach(async () => {
200
+ v3 = new import_v3.V3({
201
+ ...import_v3_config.v3TestConfig,
202
+ experimental: false
203
+ });
204
+ await v3.init();
205
+ });
206
+ import_test.test.afterEach(async () => {
207
+ await v3?.close?.().catch(() => {
208
+ });
209
+ });
210
+ (0, import_test.test)("throws ExperimentalNotConfiguredError for CUA with integrations", async () => {
211
+ try {
212
+ v3.agent({
213
+ cua: true,
214
+ model: "anthropic/claude-sonnet-4-20250514",
215
+ integrations: ["https://mcp.example.com"]
216
+ });
217
+ throw new Error("Expected error to be thrown");
218
+ } catch (error) {
219
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.ExperimentalNotConfiguredError);
220
+ (0, import_test.expect)(error.message).toContain(
221
+ "MCP integrations and custom tools"
222
+ );
223
+ }
224
+ });
225
+ (0, import_test.test)("throws StagehandInvalidArgumentError for CUA with abort signal (not supported)", async () => {
226
+ const agent = v3.agent({
227
+ cua: true,
228
+ model: "anthropic/claude-sonnet-4-20250514"
229
+ });
230
+ const controller = new AbortController();
231
+ try {
232
+ await agent.execute({
233
+ instruction: "test",
234
+ signal: controller.signal
235
+ });
236
+ throw new Error("Expected error to be thrown");
237
+ } catch (error) {
238
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.StagehandInvalidArgumentError);
239
+ (0, import_test.expect)(error.message).toContain("abort signal");
240
+ (0, import_test.expect)(error.message).toContain("not supported with CUA");
241
+ }
242
+ });
243
+ (0, import_test.test)("throws StagehandInvalidArgumentError for CUA with message continuation (not supported)", async () => {
244
+ const agent = v3.agent({
245
+ cua: true,
246
+ model: "anthropic/claude-sonnet-4-20250514"
247
+ });
248
+ try {
249
+ await agent.execute({
250
+ instruction: "test",
251
+ messages: [{ role: "user", content: "previous message" }]
252
+ });
253
+ throw new Error("Expected error to be thrown");
254
+ } catch (error) {
255
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.StagehandInvalidArgumentError);
256
+ (0, import_test.expect)(error.message).toContain("message continuation");
257
+ (0, import_test.expect)(error.message).toContain("not supported with CUA");
258
+ }
259
+ });
260
+ (0, import_test.test)("throws StagehandInvalidArgumentError for CUA with multiple unsupported features", async () => {
261
+ const agent = v3.agent({
262
+ cua: true,
263
+ model: "anthropic/claude-sonnet-4-20250514"
264
+ });
265
+ const controller = new AbortController();
266
+ try {
267
+ await agent.execute({
268
+ instruction: "test",
269
+ signal: controller.signal,
270
+ messages: [{ role: "user", content: "previous message" }]
271
+ });
272
+ throw new Error("Expected error to be thrown");
273
+ } catch (error) {
274
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.StagehandInvalidArgumentError);
275
+ const message = error.message;
276
+ (0, import_test.expect)(message).toContain("abort signal");
277
+ (0, import_test.expect)(message).toContain("message continuation");
278
+ (0, import_test.expect)(message).toContain("are not supported with CUA");
279
+ }
280
+ });
281
+ (0, import_test.test)("throws StagehandInvalidArgumentError for CUA unsupported features even with experimental: true", async () => {
282
+ await v3.close();
283
+ const v3Experimental = new import_v3.V3({
284
+ ...import_v3_config.v3TestConfig,
285
+ experimental: true
286
+ });
287
+ await v3Experimental.init();
288
+ const agent = v3Experimental.agent({
289
+ cua: true,
290
+ model: "anthropic/claude-sonnet-4-20250514"
291
+ });
292
+ const controller = new AbortController();
293
+ try {
294
+ await agent.execute({
295
+ instruction: "test",
296
+ signal: controller.signal
297
+ });
298
+ throw new Error("Expected error to be thrown");
299
+ } catch (error) {
300
+ (0, import_test.expect)(error).toBeInstanceOf(import_sdkErrors.StagehandInvalidArgumentError);
301
+ (0, import_test.expect)(error.message).toContain("not supported with CUA");
302
+ } finally {
303
+ await v3Experimental.close();
304
+ }
305
+ });
306
+ });
307
+ import_test.test.describe("Valid configurations with experimental: true", () => {
308
+ let v3;
309
+ import_test.test.beforeEach(async () => {
310
+ v3 = new import_v3.V3({
311
+ ...import_v3_config.v3TestConfig,
312
+ experimental: true
313
+ });
314
+ await v3.init();
315
+ });
316
+ import_test.test.afterEach(async () => {
317
+ await v3?.close?.().catch(() => {
318
+ });
319
+ });
320
+ (0, import_test.test)("allows CUA without streaming", () => {
321
+ (0, import_test.expect)(
322
+ () => v3.agent({
323
+ cua: true,
324
+ model: "anthropic/claude-sonnet-4-20250514"
325
+ })
326
+ ).not.toThrow();
327
+ });
328
+ (0, import_test.test)("allows streaming mode", () => {
329
+ (0, import_test.expect)(
330
+ () => v3.agent({
331
+ stream: true,
332
+ model: "anthropic/claude-sonnet-4-20250514"
333
+ })
334
+ ).not.toThrow();
335
+ });
336
+ (0, import_test.test)("allows basic agent without experimental features", async () => {
337
+ const v3NonExperimental = new import_v3.V3({
338
+ ...import_v3_config.v3TestConfig,
339
+ experimental: false
340
+ });
341
+ await v3NonExperimental.init();
342
+ try {
343
+ (0, import_test.expect)(
344
+ () => v3NonExperimental.agent({
345
+ model: "anthropic/claude-sonnet-4-20250514"
346
+ })
347
+ ).not.toThrow();
348
+ } finally {
349
+ await v3NonExperimental.close();
350
+ }
351
+ });
352
+ });
353
+ });
354
+ //# 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": "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",
6
+ "names": []
7
+ }