@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,139 @@
1
+ import fs from "node:fs";
2
+ import pino from "pino";
3
+ import type { LanguageModelMiddleware } from "ai";
4
+ import type { V3Options } from "./types/public/index.js";
5
+ interface FlowLoggerMetrics {
6
+ taskStartTime?: number;
7
+ stepStartTime?: number;
8
+ actionStartTime?: number;
9
+ llmRequests: number;
10
+ llmInputTokens: number;
11
+ llmOutputTokens: number;
12
+ cdpEvents: number;
13
+ }
14
+ export interface FlowLoggerContext {
15
+ logger: pino.Logger;
16
+ metrics: FlowLoggerMetrics;
17
+ sessionId: string;
18
+ sessionDir: string;
19
+ configDir: string;
20
+ initPromise: Promise<void>;
21
+ initialized: boolean;
22
+ taskId: string | null;
23
+ stepId: string | null;
24
+ stepLabel: string | null;
25
+ actionId: string | null;
26
+ actionLabel: string | null;
27
+ fileStreams: {
28
+ agent: fs.WriteStream | null;
29
+ stagehand: fs.WriteStream | null;
30
+ understudy: fs.WriteStream | null;
31
+ cdp: fs.WriteStream | null;
32
+ llm: fs.WriteStream | null;
33
+ jsonl: fs.WriteStream | null;
34
+ };
35
+ }
36
+ /**
37
+ * Get the config directory. Returns empty string if logging is disabled.
38
+ */
39
+ export declare function getConfigDir(): string;
40
+ /**
41
+ * Format a prompt preview from LLM messages for logging.
42
+ * Returns format like: "some text... +{5.8kb image} +{schema} +{12 tools}"
43
+ */
44
+ export declare function formatLlmPromptPreview(messages: Array<{
45
+ role: string;
46
+ content: unknown;
47
+ }>, options?: {
48
+ toolCount?: number;
49
+ hasSchema?: boolean;
50
+ }): string | undefined;
51
+ /**
52
+ * Extract a text preview from CUA-style messages.
53
+ * Accepts various message formats (Anthropic, OpenAI, Google).
54
+ */
55
+ export declare function formatCuaPromptPreview(messages: unknown[], maxLen?: number): string | undefined;
56
+ /** Format CUA response output for logging */
57
+ export declare function formatCuaResponsePreview(output: unknown, maxLen?: number): string;
58
+ export declare class SessionFileLogger {
59
+ /**
60
+ * Initialize a new logging context. Call this at the start of a session.
61
+ * If BROWSERBASE_CONFIG_DIR is not set, logging is disabled.
62
+ */
63
+ static init(sessionId: string, v3Options?: V3Options): void;
64
+ private static initAsync;
65
+ static close(): Promise<void>;
66
+ static get sessionId(): string | null;
67
+ static get sessionDir(): string | null;
68
+ /**
69
+ * Get the current logger context object.
70
+ */
71
+ static getContext(): FlowLoggerContext | null;
72
+ /**
73
+ * Start a new task and log it.
74
+ */
75
+ static logAgentTaskStarted({ invocation, args, }: {
76
+ invocation: string;
77
+ args?: unknown | unknown[];
78
+ }): void;
79
+ /**
80
+ * Log task completion with metrics summary.
81
+ */
82
+ static logAgentTaskCompleted(options?: {
83
+ cacheHit?: boolean;
84
+ }): void;
85
+ static logStagehandStepEvent({ invocation, args, label, }: {
86
+ invocation: string;
87
+ args?: unknown | unknown[];
88
+ label: string;
89
+ }): string;
90
+ static logStagehandStepCompleted(): void;
91
+ static logUnderstudyActionEvent({ actionType, target, args, }: {
92
+ actionType: string;
93
+ target?: string;
94
+ args?: unknown | unknown[];
95
+ }): string;
96
+ static logUnderstudyActionCompleted(): void;
97
+ private static logCdpEvent;
98
+ static logCdpCallEvent(data: {
99
+ method: string;
100
+ params?: object;
101
+ targetId?: string | null;
102
+ }, ctx?: FlowLoggerContext | null): void;
103
+ static logCdpMessageEvent(data: {
104
+ method: string;
105
+ params?: unknown;
106
+ targetId?: string | null;
107
+ }, ctx?: FlowLoggerContext | null): void;
108
+ static logLlmRequest({ requestId, model, prompt, }: {
109
+ requestId: string;
110
+ model: string;
111
+ operation: string;
112
+ prompt?: string;
113
+ }, explicitCtx?: FlowLoggerContext | null): void;
114
+ static logLlmResponse({ requestId, model, output, inputTokens, outputTokens, }: {
115
+ requestId: string;
116
+ model: string;
117
+ operation: string;
118
+ output?: string;
119
+ inputTokens?: number;
120
+ outputTokens?: number;
121
+ }, explicitCtx?: FlowLoggerContext | null): void;
122
+ /**
123
+ * Create middleware for wrapping language models with LLM call logging.
124
+ * Returns a no-op middleware when logging is disabled.
125
+ */
126
+ static createLlmLoggingMiddleware(modelId: string): Pick<LanguageModelMiddleware, "wrapGenerate">;
127
+ }
128
+ /**
129
+ * Method decorator for logging understudy actions with automatic start/complete.
130
+ * Logs all arguments automatically. No-op when CONFIG_DIR is empty.
131
+ */
132
+ export declare function logAction(actionType: string): <T extends (...args: never[]) => Promise<unknown>>(originalMethod: T) => T;
133
+ /**
134
+ * Method decorator for logging Stagehand step events (act, extract, observe).
135
+ * Only adds logging - does NOT wrap with withInstanceLogContext (caller handles that).
136
+ * No-op when CONFIG_DIR is empty.
137
+ */
138
+ export declare function logStagehandStep(invocation: string, label: string): <T extends (...args: never[]) => Promise<unknown>>(originalMethod: T) => T;
139
+ export {};
@@ -0,0 +1,21 @@
1
+ import { ActHandlerParams } from "../types/private/handlers.js";
2
+ import { ActResult, Action, V3FunctionName } from "../types/public/methods.js";
3
+ import { LLMClient } from "../llm/LLMClient.js";
4
+ import { AvailableModel, ClientOptions, ModelConfiguration } from "../types/public/model.js";
5
+ import type { Page } from "../understudy/page.js";
6
+ export declare class ActHandler {
7
+ private readonly llmClient;
8
+ private readonly defaultModelName;
9
+ private readonly defaultClientOptions;
10
+ private readonly resolveLlmClient;
11
+ private readonly systemPrompt;
12
+ private readonly logInferenceToFile;
13
+ private readonly selfHeal;
14
+ private readonly onMetrics?;
15
+ private readonly defaultDomSettleTimeoutMs?;
16
+ constructor(llmClient: LLMClient, defaultModelName: AvailableModel, defaultClientOptions: ClientOptions, resolveLlmClient: (model?: ModelConfiguration) => LLMClient, systemPrompt?: string, logInferenceToFile?: boolean, selfHeal?: boolean, onMetrics?: (functionName: V3FunctionName, promptTokens: number, completionTokens: number, reasoningTokens: number, cachedInputTokens: number, inferenceTimeMs: number) => void, defaultDomSettleTimeoutMs?: number);
17
+ private recordActMetrics;
18
+ private getActionFromLLM;
19
+ act(params: ActHandlerParams): Promise<ActResult>;
20
+ takeDeterministicAction(action: Action, page: Page, domSettleTimeoutMs?: number, llmClientOverride?: LLMClient, ensureTimeRemaining?: () => void, variables?: Record<string, string>): Promise<ActResult>;
21
+ }
@@ -0,0 +1,31 @@
1
+ import { V3FunctionName } from "../types/public/methods.js";
2
+ import { LLMClient } from "../llm/LLMClient.js";
3
+ import { ExtractHandlerParams } from "../types/private/handlers.js";
4
+ import { ZodPathSegments } from "../types/private/internal.js";
5
+ import { AvailableModel, ClientOptions, ModelConfiguration } from "../types/public/model.js";
6
+ import type { InferStagehandSchema, StagehandZodSchema } from "../zodCompat.js";
7
+ /**
8
+ * Scans the provided Zod schema for any `z.string().url()` fields and
9
+ * replaces them with `z.number()`.
10
+ *
11
+ * @param schema - The Zod object schema to transform.
12
+ * @returns A tuple containing:
13
+ * 1. The transformed schema (or the original schema if no changes were needed).
14
+ * 2. An array of {@link ZodPathSegments} objects representing all the replaced URL fields,
15
+ * with each path segment showing where in the schema the replacement occurred.
16
+ */
17
+ export declare function transformUrlStringsToNumericIds<T extends StagehandZodSchema>(schema: T): [StagehandZodSchema, ZodPathSegments[]];
18
+ export declare class ExtractHandler {
19
+ private readonly llmClient;
20
+ private readonly defaultModelName;
21
+ private readonly defaultClientOptions;
22
+ private readonly resolveLlmClient;
23
+ private readonly systemPrompt;
24
+ private readonly logInferenceToFile;
25
+ private readonly experimental;
26
+ private readonly onMetrics?;
27
+ constructor(llmClient: LLMClient, defaultModelName: AvailableModel, defaultClientOptions: ClientOptions, resolveLlmClient: (model?: ModelConfiguration) => LLMClient, systemPrompt?: string, logInferenceToFile?: boolean, experimental?: boolean, onMetrics?: (functionName: V3FunctionName, promptTokens: number, completionTokens: number, reasoningTokens: number, cachedInputTokens: number, inferenceTimeMs: number) => void);
28
+ extract<T extends StagehandZodSchema>(params: ExtractHandlerParams<T>): Promise<InferStagehandSchema<T> | {
29
+ pageText: string;
30
+ }>;
31
+ }
@@ -0,0 +1,24 @@
1
+ import { Frame } from "../../understudy/frame.js";
2
+ import { Locator } from "../../understudy/locator.js";
3
+ import type { Page } from "../../understudy/page.js";
4
+ export declare class UnderstudyCommandException extends Error {
5
+ constructor(message: string);
6
+ }
7
+ export interface UnderstudyMethodHandlerContext {
8
+ method: string;
9
+ locator: Locator;
10
+ xpath: string;
11
+ args: ReadonlyArray<string>;
12
+ frame: Frame;
13
+ page: Page;
14
+ initialUrl: string;
15
+ domSettleTimeoutMs?: number;
16
+ }
17
+ export declare function performUnderstudyMethod(page: Page, frame: Frame, method: string, rawXPath: string, args: ReadonlyArray<unknown>, domSettleTimeoutMs?: number): Promise<void>;
18
+ export declare function selectOption(ctx: UnderstudyMethodHandlerContext): Promise<void>;
19
+ export declare function hover(ctx: UnderstudyMethodHandlerContext): Promise<void>;
20
+ /**
21
+ * More robust DOM settle using Network + Page events to detect network quiet.
22
+ * Closely modeled after the provided snippet, adapted to our Frame/session + logger.
23
+ */
24
+ export declare function waitForDomNetworkQuiet(frame: Frame, timeoutMs?: number): Promise<void>;
@@ -0,0 +1,2 @@
1
+ export type TimeoutGuard = () => void;
2
+ export declare function createTimeoutGuard(timeoutMs?: number, errorFactory?: (timeoutMs: number) => Error): TimeoutGuard;
@@ -0,0 +1,17 @@
1
+ import { V3FunctionName } from "../types/public/methods.js";
2
+ import { LLMClient } from "../llm/LLMClient.js";
3
+ import { ObserveHandlerParams } from "../types/private/handlers.js";
4
+ import { Action } from "../types/public/methods.js";
5
+ import { AvailableModel, ClientOptions, ModelConfiguration } from "../types/public/model.js";
6
+ export declare class ObserveHandler {
7
+ private readonly llmClient;
8
+ private readonly defaultModelName;
9
+ private readonly defaultClientOptions;
10
+ private readonly resolveLlmClient;
11
+ private readonly systemPrompt;
12
+ private readonly logInferenceToFile;
13
+ private readonly experimental;
14
+ private readonly onMetrics?;
15
+ constructor(llmClient: LLMClient, defaultModelName: AvailableModel, defaultClientOptions: ClientOptions, resolveLlmClient: (model?: ModelConfiguration) => LLMClient, systemPrompt?: string, logInferenceToFile?: boolean, experimental?: boolean, onMetrics?: (functionName: V3FunctionName, promptTokens: number, completionTokens: number, reasoningTokens: number, cachedInputTokens: number, inferenceTimeMs: number) => void);
16
+ observe(params: ObserveHandlerParams): Promise<Action[]>;
17
+ }
@@ -0,0 +1,32 @@
1
+ import { LogLine } from "../types/public/logs.js";
2
+ import { V3 } from "../v3.js";
3
+ import { ToolSet } from "ai";
4
+ import { LLMClient } from "../llm/LLMClient.js";
5
+ import { AgentExecuteOptions, AgentStreamExecuteOptions, AgentResult, AgentStreamResult, AgentToolMode } from "../types/public/agent.js";
6
+ export declare class V3AgentHandler {
7
+ private v3;
8
+ private logger;
9
+ private llmClient;
10
+ private executionModel?;
11
+ private systemInstructions?;
12
+ private mcpTools?;
13
+ private mode;
14
+ constructor(v3: V3, logger: (message: LogLine) => void, llmClient: LLMClient, executionModel?: string, systemInstructions?: string, mcpTools?: ToolSet, mode?: AgentToolMode);
15
+ private prepareAgent;
16
+ private createPrepareStep;
17
+ private createStepHandler;
18
+ execute(instructionOrOptions: string | AgentExecuteOptions): Promise<AgentResult>;
19
+ stream(instructionOrOptions: string | AgentStreamExecuteOptions): Promise<AgentStreamResult>;
20
+ private consolidateMetricsAndResult;
21
+ private createTools;
22
+ private handleStop;
23
+ /**
24
+ * Ensures the done tool is called at the end of agent execution.
25
+ * Returns the messages and any extracted output from the done call.
26
+ */
27
+ private ensureDone;
28
+ /**
29
+ * Capture a screenshot and emit it via the event bus
30
+ */
31
+ private captureAndEmitScreenshot;
32
+ }
@@ -0,0 +1,33 @@
1
+ import { V3 } from "../v3.js";
2
+ import { ToolSet } from "ai";
3
+ import { AgentExecuteOptions, AgentHandlerOptions, AgentResult, SafetyConfirmationHandler } from "../types/public/agent.js";
4
+ import { LogLine } from "../types/public/logs.js";
5
+ export declare class V3CuaAgentHandler {
6
+ private v3;
7
+ private agent;
8
+ private provider;
9
+ private logger;
10
+ private agentClient;
11
+ private options;
12
+ private highlightCursor;
13
+ constructor(v3: V3, logger: (message: LogLine) => void, options: AgentHandlerOptions, tools?: ToolSet);
14
+ /**
15
+ * Ensures the V3 context is still available (not closed).
16
+ * Throws StagehandClosedError if stagehand.close() was called.
17
+ */
18
+ private ensureNotClosed;
19
+ private setupAgentClient;
20
+ setSafetyConfirmationHandler(handler?: SafetyConfirmationHandler): void;
21
+ execute(optionsOrInstruction: AgentExecuteOptions | string): Promise<AgentResult>;
22
+ private executeAction;
23
+ private computePointerTarget;
24
+ private describePointerAction;
25
+ private describeTypeAction;
26
+ private describeDragAction;
27
+ private buildInstructionFallback;
28
+ private recordCuaActStep;
29
+ private updateClientViewport;
30
+ private updateClientUrl;
31
+ captureAndSendScreenshot(): Promise<unknown>;
32
+ private injectCursor;
33
+ }
@@ -0,0 +1,18 @@
1
+ export { V3 } from "./v3.js";
2
+ export { V3 as Stagehand } from "./v3.js";
3
+ export * from "./types/public/index.js";
4
+ export { AnnotatedScreenshotText, LLMClient } from "./llm/LLMClient.js";
5
+ export { AgentProvider, modelToAgentProviderMap, } from "./agent/AgentProvider.js";
6
+ export type { AgentTools, AgentToolTypesMap, AgentUITools, AgentToolCall, AgentToolResult, } from "./agent/tools/index.js";
7
+ export { validateZodSchema, isRunningInBun, toGeminiSchema, getZodType, transformSchema, injectUrls, providerEnvVarMap, loadApiKeyFromEnv, trimTrailingTextNode, jsonSchemaToZod, } from "../utils.js";
8
+ export { isZod4Schema, isZod3Schema, toJsonSchema } from "./zodCompat.js";
9
+ export { connectToMCPServer } from "./mcp/connection.js";
10
+ export { V3Evaluator } from "../v3Evaluator.js";
11
+ export { tool } from "ai";
12
+ export { getAISDKLanguageModel } from "./llm/LLMProvider.js";
13
+ export { __internalCreateInMemoryAgentCacheHandle } from "./cache/serverAgentCache.js";
14
+ export { maybeRunShutdownSupervisorFromArgv as __internalMaybeRunShutdownSupervisorFromArgv } from "./shutdown/supervisor.js";
15
+ export type { ServerAgentCacheHandle } from "./cache/serverAgentCache.js";
16
+ export type { ChatMessage, ChatMessageContent, ChatMessageImageContent, ChatMessageTextContent, ChatCompletionOptions, LLMResponse, CreateChatCompletionOptions, LLMUsage, LLMParsedResponse, } from "./llm/LLMClient.js";
17
+ export type { StagehandZodSchema, StagehandZodObject, InferStagehandSchema, JsonSchemaDocument, } from "./zodCompat.js";
18
+ export type { JsonSchema, JsonSchemaProperty } from "../utils.js";
@@ -0,0 +1,7 @@
1
+ import Browserbase from "@browserbasehq/sdk";
2
+ import type { BrowserbaseSessionCreateParams } from "../types/public/api.js";
3
+ export declare function createBrowserbaseSession(apiKey: string, projectId: string, params?: BrowserbaseSessionCreateParams, resumeSessionId?: string): Promise<{
4
+ ws: string;
5
+ sessionId: string;
6
+ bb: Browserbase;
7
+ }>;
@@ -0,0 +1,15 @@
1
+ import { LaunchedChrome } from "chrome-launcher";
2
+ interface LaunchLocalOptions {
3
+ chromePath?: string;
4
+ chromeFlags?: string[];
5
+ headless?: boolean;
6
+ userDataDir?: string;
7
+ port?: number;
8
+ connectTimeoutMs?: number;
9
+ handleSIGINT?: boolean;
10
+ }
11
+ export declare function launchLocalChrome(opts: LaunchLocalOptions): Promise<{
12
+ ws: string;
13
+ chrome: LaunchedChrome;
14
+ }>;
15
+ export {};
@@ -0,0 +1,16 @@
1
+ import { ClientOptions } from "@anthropic-ai/sdk";
2
+ import { LogLine } from "../types/public/logs.js";
3
+ import { AvailableModel } from "../types/public/model.js";
4
+ import { CreateChatCompletionOptions, LLMClient, LLMResponse } from "./LLMClient.js";
5
+ export declare class AnthropicClient extends LLMClient {
6
+ type: "anthropic";
7
+ private client;
8
+ clientOptions: ClientOptions;
9
+ constructor({ modelName, clientOptions, userProvidedInstructions, }: {
10
+ logger: (message: LogLine) => void;
11
+ modelName: AvailableModel;
12
+ clientOptions?: ClientOptions;
13
+ userProvidedInstructions?: string;
14
+ });
15
+ createChatCompletion<T = LLMResponse>({ options, retries, logger, }: CreateChatCompletionOptions): Promise<T>;
16
+ }
@@ -0,0 +1,17 @@
1
+ import type { ClientOptions } from "openai";
2
+ import { LogLine } from "../types/public/logs.js";
3
+ import { AvailableModel } from "../types/public/model.js";
4
+ import { CreateChatCompletionOptions, LLMClient, LLMResponse } from "./LLMClient.js";
5
+ export declare class CerebrasClient extends LLMClient {
6
+ type: "cerebras";
7
+ private client;
8
+ clientOptions: ClientOptions;
9
+ hasVision: boolean;
10
+ constructor({ modelName, clientOptions, userProvidedInstructions, }: {
11
+ logger: (message: LogLine) => void;
12
+ modelName: AvailableModel;
13
+ clientOptions?: ClientOptions;
14
+ userProvidedInstructions?: string;
15
+ });
16
+ createChatCompletion<T = LLMResponse>({ options, retries, logger, }: CreateChatCompletionOptions): Promise<T>;
17
+ }
@@ -0,0 +1,19 @@
1
+ import { LogLine } from "../types/public/logs.js";
2
+ import { AvailableModel, ClientOptions } from "../types/public/model.js";
3
+ import { CreateChatCompletionOptions, LLMClient, LLMResponse } from "./LLMClient.js";
4
+ export declare class GoogleClient extends LLMClient {
5
+ type: "google";
6
+ private client;
7
+ clientOptions: ClientOptions;
8
+ hasVision: boolean;
9
+ private logger;
10
+ constructor({ logger, // Added logger based on other clients
11
+ modelName, clientOptions, }: {
12
+ logger: (message: LogLine) => void;
13
+ modelName: AvailableModel;
14
+ clientOptions?: ClientOptions;
15
+ });
16
+ private formatMessages;
17
+ private formatTools;
18
+ createChatCompletion<T = LLMResponse>({ options, logger, retries, }: CreateChatCompletionOptions): Promise<T>;
19
+ }
@@ -0,0 +1,17 @@
1
+ import type { ClientOptions } from "openai";
2
+ import { LogLine } from "../types/public/logs.js";
3
+ import { AvailableModel } from "../types/public/model.js";
4
+ import { CreateChatCompletionOptions, LLMClient, LLMResponse } from "./LLMClient.js";
5
+ export declare class GroqClient extends LLMClient {
6
+ type: "groq";
7
+ private client;
8
+ clientOptions: ClientOptions;
9
+ hasVision: boolean;
10
+ constructor({ modelName, clientOptions, userProvidedInstructions, }: {
11
+ logger: (message: LogLine) => void;
12
+ modelName: AvailableModel;
13
+ clientOptions?: ClientOptions;
14
+ userProvidedInstructions?: string;
15
+ });
16
+ createChatCompletion<T = LLMResponse>({ options, retries, logger, }: CreateChatCompletionOptions): Promise<T>;
17
+ }
@@ -0,0 +1,121 @@
1
+ import { LLMTool } from "../types/public/model.js";
2
+ import { embed, embedMany, experimental_generateImage, experimental_generateSpeech, experimental_transcribe, generateObject, generateText, streamObject, streamText } from "ai";
3
+ import type { LanguageModelV2 } from "@ai-sdk/provider";
4
+ import { LogLine } from "../types/public/logs.js";
5
+ import { AvailableModel, ClientOptions } from "../types/public/model.js";
6
+ import type { StagehandZodSchema } from "../zodCompat.js";
7
+ export interface ChatMessage {
8
+ role: "system" | "user" | "assistant";
9
+ content: ChatMessageContent;
10
+ }
11
+ export type ChatMessageContent = string | (ChatMessageImageContent | ChatMessageTextContent)[];
12
+ export interface ChatMessageImageContent {
13
+ type: string;
14
+ image_url?: {
15
+ url: string;
16
+ };
17
+ text?: string;
18
+ source?: {
19
+ type: string;
20
+ media_type: string;
21
+ data: string;
22
+ };
23
+ }
24
+ export interface ChatMessageTextContent {
25
+ type: string;
26
+ text: string;
27
+ }
28
+ export declare const AnnotatedScreenshotText = "This is a screenshot of the current page state with the elements annotated on it. Each element id is annotated with a number to the top left of it. Duplicate annotations at the same location are under each other vertically.";
29
+ export interface ChatCompletionOptions {
30
+ messages: ChatMessage[];
31
+ temperature?: number;
32
+ top_p?: number;
33
+ frequency_penalty?: number;
34
+ presence_penalty?: number;
35
+ image?: {
36
+ buffer: Buffer;
37
+ description?: string;
38
+ };
39
+ response_model?: {
40
+ name: string;
41
+ schema: StagehandZodSchema;
42
+ };
43
+ tools?: LLMTool[];
44
+ tool_choice?: "auto" | "none" | "required";
45
+ maxOutputTokens?: number;
46
+ requestId?: string;
47
+ }
48
+ export type LLMResponse = {
49
+ id: string;
50
+ object: string;
51
+ created: number;
52
+ model: string;
53
+ choices: {
54
+ index: number;
55
+ message: {
56
+ role: string;
57
+ content: string | null;
58
+ tool_calls: {
59
+ id: string;
60
+ type: string;
61
+ function: {
62
+ name: string;
63
+ arguments: string;
64
+ };
65
+ }[];
66
+ };
67
+ finish_reason: string;
68
+ }[];
69
+ usage: {
70
+ prompt_tokens: number;
71
+ completion_tokens: number;
72
+ total_tokens: number;
73
+ };
74
+ };
75
+ export interface CreateChatCompletionOptions {
76
+ options: ChatCompletionOptions;
77
+ logger: (message: LogLine) => void;
78
+ retries?: number;
79
+ }
80
+ /** Simple usage shape if your LLM returns usage tokens. */
81
+ export interface LLMUsage {
82
+ prompt_tokens: number;
83
+ completion_tokens: number;
84
+ total_tokens: number;
85
+ reasoning_tokens?: number;
86
+ cached_input_tokens?: number;
87
+ }
88
+ /**
89
+ * For calls that use a schema: the LLMClient may return { data: T; usage?: LLMUsage }
90
+ */
91
+ export interface LLMParsedResponse<T> {
92
+ data: T;
93
+ usage?: LLMUsage;
94
+ }
95
+ export declare abstract class LLMClient {
96
+ type: "openai" | "anthropic" | "cerebras" | "groq" | (string & {});
97
+ modelName: AvailableModel | (string & {});
98
+ hasVision: boolean;
99
+ clientOptions: ClientOptions;
100
+ userProvidedInstructions?: string;
101
+ constructor(modelName: AvailableModel, userProvidedInstructions?: string);
102
+ abstract createChatCompletion<T>(options: CreateChatCompletionOptions & {
103
+ options: {
104
+ response_model: {
105
+ name: string;
106
+ schema: StagehandZodSchema;
107
+ };
108
+ };
109
+ }): Promise<LLMParsedResponse<T>>;
110
+ abstract createChatCompletion<T = LLMResponse>(options: CreateChatCompletionOptions): Promise<T>;
111
+ generateObject: typeof generateObject;
112
+ generateText: typeof generateText;
113
+ streamText: typeof streamText;
114
+ streamObject: typeof streamObject;
115
+ generateImage: typeof experimental_generateImage;
116
+ embed: typeof embed;
117
+ embedMany: typeof embedMany;
118
+ transcribe: typeof experimental_transcribe;
119
+ generateSpeech: typeof experimental_generateSpeech;
120
+ getLanguageModel?(): LanguageModelV2;
121
+ }
@@ -0,0 +1,13 @@
1
+ import { LogLine } from "../types/public/logs.js";
2
+ import { AvailableModel, ClientOptions, ModelProvider } from "../types/public/model.js";
3
+ import { LLMClient } from "./LLMClient.js";
4
+ export declare function getAISDKLanguageModel(subProvider: string, subModelName: string, clientOptions?: ClientOptions): import("@ai-sdk/provider").LanguageModelV2;
5
+ export declare class LLMProvider {
6
+ private logger;
7
+ constructor(logger: (message: LogLine) => void);
8
+ getClient(modelName: AvailableModel, clientOptions?: ClientOptions, options?: {
9
+ experimental?: boolean;
10
+ disableAPI?: boolean;
11
+ }): LLMClient;
12
+ static getModelProvider(modelName: AvailableModel): ModelProvider;
13
+ }
@@ -0,0 +1,15 @@
1
+ import { ClientOptions } from "openai";
2
+ import { LogLine } from "../types/public/logs.js";
3
+ import { AvailableModel } from "../types/public/model.js";
4
+ import { CreateChatCompletionOptions, LLMClient, LLMResponse } from "./LLMClient.js";
5
+ export declare class OpenAIClient extends LLMClient {
6
+ type: "openai";
7
+ private client;
8
+ clientOptions: ClientOptions;
9
+ constructor({ modelName, clientOptions, }: {
10
+ logger: (message: LogLine) => void;
11
+ modelName: AvailableModel;
12
+ clientOptions?: ClientOptions;
13
+ });
14
+ createChatCompletion<T = LLMResponse>({ options: optionsInitial, logger, retries, }: CreateChatCompletionOptions): Promise<T>;
15
+ }
@@ -0,0 +1,15 @@
1
+ import type { LanguageModelV2 } from "@ai-sdk/provider";
2
+ import { ChatCompletion } from "openai/resources";
3
+ import { LogLine } from "../types/public/logs.js";
4
+ import { CreateChatCompletionOptions, LLMClient } from "./LLMClient.js";
5
+ export declare class AISdkClient extends LLMClient {
6
+ type: "aisdk";
7
+ private model;
8
+ private logger?;
9
+ constructor({ model, logger, }: {
10
+ model: LanguageModelV2;
11
+ logger?: (message: LogLine) => void;
12
+ });
13
+ getLanguageModel(): LanguageModelV2;
14
+ createChatCompletion<T = ChatCompletion>({ options, }: CreateChatCompletionOptions): Promise<T>;
15
+ }
@@ -0,0 +1,9 @@
1
+ import type { LogLine } from "./types/public/logs.js";
2
+ export declare function bindInstanceLogger(instanceId: string, logger: (line: LogLine) => void): void;
3
+ export declare function unbindInstanceLogger(instanceId: string): void;
4
+ export declare function withInstanceLogContext<T>(instanceId: string, fn: () => T): T;
5
+ /**
6
+ * Routes logs to the appropriate instance logger based on AsyncLocalStorage context.
7
+ * Falls back to console output if no instance context is available.
8
+ */
9
+ export declare function v3Logger(line: LogLine): void;
@@ -0,0 +1,11 @@
1
+ import { Client, ClientOptions } from "@modelcontextprotocol/sdk/client/index.js";
2
+ export interface ConnectToMCPServerOptions {
3
+ serverUrl: string | URL;
4
+ clientOptions?: ClientOptions;
5
+ }
6
+ export interface StdioServerConfig {
7
+ command: string;
8
+ args?: string[];
9
+ env?: Record<string, string>;
10
+ }
11
+ export declare const connectToMCPServer: (serverConfig: string | URL | StdioServerConfig | ConnectToMCPServerOptions) => Promise<Client>;
@@ -0,0 +1,3 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { ToolSet } from "ai";
3
+ export declare const resolveTools: (clients: (Client | string)[], userTools: ToolSet) => Promise<ToolSet>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared cleanup logic for locally launched Chrome.
3
+ *
4
+ * Used by both `V3.close()` (normal shutdown) and the supervisor process
5
+ * (crash cleanup). The caller provides a `killChrome` callback since the
6
+ * kill mechanism differs: chrome-launcher's `chrome.kill()` in-process
7
+ * vs raw `process.kill(pid)` from the supervisor.
8
+ */
9
+ export declare function cleanupLocalBrowser(opts: {
10
+ killChrome?: () => Promise<void> | void;
11
+ userDataDir?: string;
12
+ createdTempProfile?: boolean;
13
+ preserveUserDataDir?: boolean;
14
+ }): Promise<void>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Shutdown supervisor process.
3
+ *
4
+ * This process watches a stdin lifeline. When the parent dies, stdin closes
5
+ * and the supervisor performs best-effort cleanup:
6
+ * - LOCAL: kill Chrome + remove temp profile
7
+ * - STAGEHAND_API: request session release
8
+ */
9
+ import type { ShutdownSupervisorConfig } from "../types/private/shutdown.js";
10
+ export declare const runShutdownSupervisor: (initialConfig: ShutdownSupervisorConfig) => void;
11
+ export declare const maybeRunShutdownSupervisorFromArgv: (argv?: readonly string[]) => boolean;