@browserbasehq/stagehand 2.5.3-alpha-4994eabfa8016347ec001b40ceadb0c905403470 → 4.0.0-alpha-49bc5b68e4fbeb28a120b301b51c31a36db7d922

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 (286) hide show
  1. package/dist/index.d.ts +1367 -751
  2. package/dist/index.js +37087 -22062
  3. package/package.json +54 -78
  4. package/README.md +0 -165
  5. package/dist/evals/args.d.ts +0 -15
  6. package/dist/evals/cli.d.ts +0 -2
  7. package/dist/evals/core/summary.d.ts +0 -2
  8. package/dist/evals/datasets/osworld/adapter.d.ts +0 -22
  9. package/dist/evals/datasets/osworld/index.d.ts +0 -9
  10. package/dist/evals/datasets/osworld/types.d.ts +0 -54
  11. package/dist/evals/deterministic/bb.playwright.config.d.ts +0 -5
  12. package/dist/evals/deterministic/e2e.playwright.config.d.ts +0 -5
  13. package/dist/evals/deterministic/local.playwright.config.d.ts +0 -5
  14. package/dist/evals/deterministic/stagehand.config.d.ts +0 -3
  15. package/dist/evals/deterministic/tests/BrowserContext/addInitScript.test.d.ts +0 -1
  16. package/dist/evals/deterministic/tests/BrowserContext/cookies.test.d.ts +0 -1
  17. package/dist/evals/deterministic/tests/BrowserContext/multiPage.test.d.ts +0 -1
  18. package/dist/evals/deterministic/tests/BrowserContext/page.test.d.ts +0 -1
  19. package/dist/evals/deterministic/tests/BrowserContext/routing.test.d.ts +0 -1
  20. package/dist/evals/deterministic/tests/Errors/apiKeyError.test.d.ts +0 -1
  21. package/dist/evals/deterministic/tests/browserbase/contexts.test.d.ts +0 -1
  22. package/dist/evals/deterministic/tests/browserbase/downloads.test.d.ts +0 -1
  23. package/dist/evals/deterministic/tests/browserbase/sessions.test.d.ts +0 -1
  24. package/dist/evals/deterministic/tests/browserbase/uploads.test.d.ts +0 -1
  25. package/dist/evals/deterministic/tests/local/create.test.d.ts +0 -1
  26. package/dist/evals/deterministic/tests/local/downloads.test.d.ts +0 -1
  27. package/dist/evals/deterministic/tests/page/addInitScript.test.d.ts +0 -1
  28. package/dist/evals/deterministic/tests/page/addRemoveLocatorHandler.test.d.ts +0 -1
  29. package/dist/evals/deterministic/tests/page/addTags.test.d.ts +0 -1
  30. package/dist/evals/deterministic/tests/page/bringToFront.test.d.ts +0 -1
  31. package/dist/evals/deterministic/tests/page/content.test.d.ts +0 -1
  32. package/dist/evals/deterministic/tests/page/evaluate.test.d.ts +0 -1
  33. package/dist/evals/deterministic/tests/page/expose.test.d.ts +0 -1
  34. package/dist/evals/deterministic/tests/page/frames.test.d.ts +0 -1
  35. package/dist/evals/deterministic/tests/page/getBy.test.d.ts +0 -1
  36. package/dist/evals/deterministic/tests/page/livePageProxy.test.d.ts +0 -1
  37. package/dist/evals/deterministic/tests/page/navigation.test.d.ts +0 -1
  38. package/dist/evals/deterministic/tests/page/on.test.d.ts +0 -1
  39. package/dist/evals/deterministic/tests/page/pageContext.test.d.ts +0 -1
  40. package/dist/evals/deterministic/tests/page/reload.test.d.ts +0 -1
  41. package/dist/evals/deterministic/tests/page/waitFor.test.d.ts +0 -1
  42. package/dist/evals/env.d.ts +0 -13
  43. package/dist/evals/evaluator.d.ts +0 -29
  44. package/dist/evals/index.eval.d.ts +0 -1
  45. package/dist/evals/initStagehand.d.ts +0 -37
  46. package/dist/evals/llm_clients/hn_aisdk.d.ts +0 -2
  47. package/dist/evals/llm_clients/hn_customOpenAI.d.ts +0 -2
  48. package/dist/evals/llm_clients/hn_langchain.d.ts +0 -2
  49. package/dist/evals/logger.d.ts +0 -50
  50. package/dist/evals/scoring.d.ts +0 -25
  51. package/dist/evals/suites/gaia.d.ts +0 -2
  52. package/dist/evals/suites/onlineMind2Web.d.ts +0 -2
  53. package/dist/evals/suites/osworld.d.ts +0 -2
  54. package/dist/evals/suites/webbench.d.ts +0 -2
  55. package/dist/evals/suites/webvoyager.d.ts +0 -2
  56. package/dist/evals/taskConfig.d.ts +0 -33
  57. package/dist/evals/tasks/agent/all_recipes.d.ts +0 -2
  58. package/dist/evals/tasks/agent/apple_trade_in.d.ts +0 -2
  59. package/dist/evals/tasks/agent/apple_tv.d.ts +0 -2
  60. package/dist/evals/tasks/agent/arxiv_gpt_report.d.ts +0 -2
  61. package/dist/evals/tasks/agent/gaia.d.ts +0 -9
  62. package/dist/evals/tasks/agent/github.d.ts +0 -2
  63. package/dist/evals/tasks/agent/github_react_version.d.ts +0 -2
  64. package/dist/evals/tasks/agent/google_flights.d.ts +0 -2
  65. package/dist/evals/tasks/agent/google_maps.d.ts +0 -2
  66. package/dist/evals/tasks/agent/google_maps_2.d.ts +0 -2
  67. package/dist/evals/tasks/agent/google_maps_3.d.ts +0 -2
  68. package/dist/evals/tasks/agent/google_shopping.d.ts +0 -2
  69. package/dist/evals/tasks/agent/hotel_booking.d.ts +0 -2
  70. package/dist/evals/tasks/agent/hugging_face.d.ts +0 -2
  71. package/dist/evals/tasks/agent/iframe_form.d.ts +0 -2
  72. package/dist/evals/tasks/agent/iframe_form_multiple.d.ts +0 -2
  73. package/dist/evals/tasks/agent/kayak.d.ts +0 -2
  74. package/dist/evals/tasks/agent/kith.d.ts +0 -2
  75. package/dist/evals/tasks/agent/nba_trades.d.ts +0 -2
  76. package/dist/evals/tasks/agent/onlineMind2Web.d.ts +0 -2
  77. package/dist/evals/tasks/agent/osworld.d.ts +0 -2
  78. package/dist/evals/tasks/agent/sf_library_card.d.ts +0 -2
  79. package/dist/evals/tasks/agent/sf_library_card_multiple.d.ts +0 -2
  80. package/dist/evals/tasks/agent/sign_in.d.ts +0 -2
  81. package/dist/evals/tasks/agent/steam_games.d.ts +0 -2
  82. package/dist/evals/tasks/agent/trivago.d.ts +0 -2
  83. package/dist/evals/tasks/agent/ubereats.d.ts +0 -2
  84. package/dist/evals/tasks/agent/webbench.d.ts +0 -2
  85. package/dist/evals/tasks/agent/webvoyager.d.ts +0 -2
  86. package/dist/evals/tasks/agent/youtube.d.ts +0 -2
  87. package/dist/evals/tasks/allrecipes.d.ts +0 -2
  88. package/dist/evals/tasks/amazon_add_to_cart.d.ts +0 -2
  89. package/dist/evals/tasks/apple.d.ts +0 -2
  90. package/dist/evals/tasks/arxiv.d.ts +0 -2
  91. package/dist/evals/tasks/bidnet.d.ts +0 -2
  92. package/dist/evals/tasks/checkboxes.d.ts +0 -2
  93. package/dist/evals/tasks/combination_sauce.d.ts +0 -2
  94. package/dist/evals/tasks/costar.d.ts +0 -2
  95. package/dist/evals/tasks/csr_in_oopif.d.ts +0 -2
  96. package/dist/evals/tasks/csr_in_spif.d.ts +0 -2
  97. package/dist/evals/tasks/custom_dropdown.d.ts +0 -2
  98. package/dist/evals/tasks/dropdown.d.ts +0 -2
  99. package/dist/evals/tasks/expect_act_timeout.d.ts +0 -2
  100. package/dist/evals/tasks/extract_aigrant_companies.d.ts +0 -2
  101. package/dist/evals/tasks/extract_aigrant_targeted.d.ts +0 -2
  102. package/dist/evals/tasks/extract_aigrant_targeted_2.d.ts +0 -2
  103. package/dist/evals/tasks/extract_apartments.d.ts +0 -2
  104. package/dist/evals/tasks/extract_area_codes.d.ts +0 -2
  105. package/dist/evals/tasks/extract_baptist_health.d.ts +0 -2
  106. package/dist/evals/tasks/extract_capacitor_info.d.ts +0 -2
  107. package/dist/evals/tasks/extract_collaborators.d.ts +0 -2
  108. package/dist/evals/tasks/extract_csa.d.ts +0 -2
  109. package/dist/evals/tasks/extract_geniusee.d.ts +0 -2
  110. package/dist/evals/tasks/extract_geniusee_2.d.ts +0 -2
  111. package/dist/evals/tasks/extract_github_commits.d.ts +0 -2
  112. package/dist/evals/tasks/extract_github_stars.d.ts +0 -2
  113. package/dist/evals/tasks/extract_hamilton_weather.d.ts +0 -2
  114. package/dist/evals/tasks/extract_jfk_links.d.ts +0 -2
  115. package/dist/evals/tasks/extract_jstor_news.d.ts +0 -2
  116. package/dist/evals/tasks/extract_memorial_healthcare.d.ts +0 -2
  117. package/dist/evals/tasks/extract_nhl_stats.d.ts +0 -2
  118. package/dist/evals/tasks/extract_partners.d.ts +0 -2
  119. package/dist/evals/tasks/extract_press_releases.d.ts +0 -2
  120. package/dist/evals/tasks/extract_professional_info.d.ts +0 -2
  121. package/dist/evals/tasks/extract_public_notices.d.ts +0 -2
  122. package/dist/evals/tasks/extract_recipe.d.ts +0 -2
  123. package/dist/evals/tasks/extract_regulations_table.d.ts +0 -2
  124. package/dist/evals/tasks/extract_repo_name.d.ts +0 -2
  125. package/dist/evals/tasks/extract_resistor_info.d.ts +0 -2
  126. package/dist/evals/tasks/extract_rockauto.d.ts +0 -2
  127. package/dist/evals/tasks/extract_single_link.d.ts +0 -2
  128. package/dist/evals/tasks/extract_snowshoeing_destinations.d.ts +0 -2
  129. package/dist/evals/tasks/extract_staff_members.d.ts +0 -2
  130. package/dist/evals/tasks/extract_zillow.d.ts +0 -2
  131. package/dist/evals/tasks/google_flights.d.ts +0 -11
  132. package/dist/evals/tasks/heal_custom_dropdown.d.ts +0 -2
  133. package/dist/evals/tasks/heal_scroll_50.d.ts +0 -2
  134. package/dist/evals/tasks/heal_simple_google_search.d.ts +0 -2
  135. package/dist/evals/tasks/hidden_input_dropdown.d.ts +0 -2
  136. package/dist/evals/tasks/history.d.ts +0 -2
  137. package/dist/evals/tasks/homedepot.d.ts +0 -2
  138. package/dist/evals/tasks/iframe_form_filling.d.ts +0 -2
  139. package/dist/evals/tasks/iframe_hn.d.ts +0 -2
  140. package/dist/evals/tasks/iframe_same_proc.d.ts +0 -2
  141. package/dist/evals/tasks/iframe_scroll.d.ts +0 -2
  142. package/dist/evals/tasks/iframes_nested.d.ts +0 -2
  143. package/dist/evals/tasks/imdb_movie_details.d.ts +0 -2
  144. package/dist/evals/tasks/instructions.d.ts +0 -2
  145. package/dist/evals/tasks/ionwave.d.ts +0 -2
  146. package/dist/evals/tasks/ionwave_observe.d.ts +0 -2
  147. package/dist/evals/tasks/login.d.ts +0 -2
  148. package/dist/evals/tasks/multi_tab.d.ts +0 -2
  149. package/dist/evals/tasks/namespace_xpath.d.ts +0 -2
  150. package/dist/evals/tasks/nested_iframes_2.d.ts +0 -2
  151. package/dist/evals/tasks/nextChunk.d.ts +0 -2
  152. package/dist/evals/tasks/no_js_click.d.ts +0 -2
  153. package/dist/evals/tasks/nonsense_action.d.ts +0 -2
  154. package/dist/evals/tasks/observe_amazon_add_to_cart.d.ts +0 -2
  155. package/dist/evals/tasks/observe_github.d.ts +0 -2
  156. package/dist/evals/tasks/observe_iframes1.d.ts +0 -2
  157. package/dist/evals/tasks/observe_iframes2.d.ts +0 -2
  158. package/dist/evals/tasks/observe_simple_google_search.d.ts +0 -2
  159. package/dist/evals/tasks/observe_taxes.d.ts +0 -2
  160. package/dist/evals/tasks/observe_vantechjournal.d.ts +0 -2
  161. package/dist/evals/tasks/observe_yc_startup.d.ts +0 -2
  162. package/dist/evals/tasks/oopif_in_csr.d.ts +0 -2
  163. package/dist/evals/tasks/oopif_in_osr.d.ts +0 -2
  164. package/dist/evals/tasks/os_dropdown.d.ts +0 -2
  165. package/dist/evals/tasks/osr_in_oopif.d.ts +0 -2
  166. package/dist/evals/tasks/osr_in_spif.d.ts +0 -2
  167. package/dist/evals/tasks/panamcs.d.ts +0 -2
  168. package/dist/evals/tasks/peeler_complex.d.ts +0 -2
  169. package/dist/evals/tasks/peeler_simple.d.ts +0 -2
  170. package/dist/evals/tasks/prevChunk.d.ts +0 -2
  171. package/dist/evals/tasks/radio_btn.d.ts +0 -2
  172. package/dist/evals/tasks/rakuten_jp.d.ts +0 -2
  173. package/dist/evals/tasks/sciquest.d.ts +0 -2
  174. package/dist/evals/tasks/screenshot_cdp_toggle.d.ts +0 -9
  175. package/dist/evals/tasks/scroll_50.d.ts +0 -2
  176. package/dist/evals/tasks/scroll_75.d.ts +0 -2
  177. package/dist/evals/tasks/shadow_dom.d.ts +0 -2
  178. package/dist/evals/tasks/simple_google_search.d.ts +0 -2
  179. package/dist/evals/tasks/spif_in_csr.d.ts +0 -2
  180. package/dist/evals/tasks/spif_in_osr.d.ts +0 -2
  181. package/dist/evals/tasks/stock_x.d.ts +0 -2
  182. package/dist/evals/tasks/tab_handling.d.ts +0 -2
  183. package/dist/evals/tasks/ted_talk.d.ts +0 -2
  184. package/dist/evals/tasks/vanta_h.d.ts +0 -2
  185. package/dist/evals/tasks/vantechjournal.d.ts +0 -2
  186. package/dist/evals/tasks/wichita.d.ts +0 -2
  187. package/dist/evals/tasks/wikipedia.d.ts +0 -2
  188. package/dist/evals/utils/ScreenshotCollector.d.ts +0 -34
  189. package/dist/evals/utils/imageUtils.d.ts +0 -1
  190. package/dist/evals/utils.d.ts +0 -61
  191. package/dist/examples/2048.d.ts +0 -1
  192. package/dist/examples/actionable_observe_example.d.ts +0 -14
  193. package/dist/examples/cua-example.d.ts +0 -1
  194. package/dist/examples/custom_client_aisdk.d.ts +0 -1
  195. package/dist/examples/custom_client_langchain.d.ts +0 -1
  196. package/dist/examples/custom_client_openai.d.ts +0 -1
  197. package/dist/examples/example.d.ts +0 -1
  198. package/dist/examples/external_clients/aisdk.d.ts +0 -20
  199. package/dist/examples/external_clients/customOpenAI.d.ts +0 -18
  200. package/dist/examples/external_clients/langchain.d.ts +0 -9
  201. package/dist/examples/form_filling_sensible.d.ts +0 -1
  202. package/dist/examples/google_enter.d.ts +0 -6
  203. package/dist/examples/instructions.d.ts +0 -1
  204. package/dist/examples/integrations/exa.d.ts +0 -1
  205. package/dist/examples/integrations/supabase.d.ts +0 -1
  206. package/dist/examples/operator-example.d.ts +0 -8
  207. package/dist/examples/parameterizeApiKey.d.ts +0 -1
  208. package/dist/examples/popup.d.ts +0 -6
  209. package/dist/examples/wordle.d.ts +0 -1
  210. package/dist/lib/StagehandContext.d.ts +0 -25
  211. package/dist/lib/StagehandPage.d.ts +0 -103
  212. package/dist/lib/a11y/utils.d.ts +0 -144
  213. package/dist/lib/agent/AgentClient.d.ts +0 -20
  214. package/dist/lib/agent/AgentProvider.d.ts +0 -19
  215. package/dist/lib/agent/AnthropicCUAClient.d.ts +0 -56
  216. package/dist/lib/agent/GoogleCUAClient.d.ts +0 -63
  217. package/dist/lib/agent/OpenAICUAClient.d.ts +0 -65
  218. package/dist/lib/agent/StagehandAgent.d.ts +0 -15
  219. package/dist/lib/agent/tools/act.d.ts +0 -59
  220. package/dist/lib/agent/tools/ariaTree.d.ts +0 -11
  221. package/dist/lib/agent/tools/close.d.ts +0 -22
  222. package/dist/lib/agent/tools/extract.d.ts +0 -38
  223. package/dist/lib/agent/tools/fillform.d.ts +0 -37
  224. package/dist/lib/agent/tools/goto.d.ts +0 -29
  225. package/dist/lib/agent/tools/index.d.ts +0 -257
  226. package/dist/lib/agent/tools/navback.d.ts +0 -17
  227. package/dist/lib/agent/tools/screenshot.d.ts +0 -13
  228. package/dist/lib/agent/tools/scroll.d.ts +0 -23
  229. package/dist/lib/agent/tools/wait.d.ts +0 -18
  230. package/dist/lib/agent/utils/cuaKeyMapping.d.ts +0 -10
  231. package/dist/lib/agent/utils/imageCompression.d.ts +0 -53
  232. package/dist/lib/agent/utils/messageProcessing.d.ts +0 -13
  233. package/dist/lib/api.d.ts +0 -23
  234. package/dist/lib/browserbaseDefaults.d.ts +0 -9
  235. package/dist/lib/cache/ActionCache.d.ts +0 -62
  236. package/dist/lib/cache/BaseCache.d.ts +0 -66
  237. package/dist/lib/cache/LLMCache.d.ts +0 -22
  238. package/dist/lib/cache.d.ts +0 -29
  239. package/dist/lib/dom/build/scriptContent.d.ts +0 -1
  240. package/dist/lib/dom/elementCheckUtils.d.ts +0 -2
  241. package/dist/lib/dom/genDomScripts.d.ts +0 -1
  242. package/dist/lib/dom/index.d.ts +0 -2
  243. package/dist/lib/dom/process.d.ts +0 -17
  244. package/dist/lib/dom/utils.d.ts +0 -7
  245. package/dist/lib/dom/xpathUtils.d.ts +0 -14
  246. package/dist/lib/handlers/actHandler.d.ts +0 -33
  247. package/dist/lib/handlers/cuaAgentHandler.d.ts +0 -58
  248. package/dist/lib/handlers/extractHandler.d.ts +0 -54
  249. package/dist/lib/handlers/handlerUtils/actHandlerUtils.d.ts +0 -21
  250. package/dist/lib/handlers/observeHandler.d.ts +0 -40
  251. package/dist/lib/handlers/stagehandAgentHandler.d.ts +0 -27
  252. package/dist/lib/index.d.ts +0 -94
  253. package/dist/lib/inference.d.ts +0 -61
  254. package/dist/lib/inferenceLogUtils.d.ts +0 -12
  255. package/dist/lib/llm/AnthropicClient.d.ts +0 -21
  256. package/dist/lib/llm/CerebrasClient.d.ts +0 -22
  257. package/dist/lib/llm/GoogleClient.d.ts +0 -24
  258. package/dist/lib/llm/GroqClient.d.ts +0 -22
  259. package/dist/lib/llm/LLMClient.d.ts +0 -99
  260. package/dist/lib/llm/LLMProvider.d.ts +0 -13
  261. package/dist/lib/llm/OpenAIClient.d.ts +0 -20
  262. package/dist/lib/llm/aisdk.d.ts +0 -20
  263. package/dist/lib/logger.d.ts +0 -54
  264. package/dist/lib/mcp/connection.d.ts +0 -11
  265. package/dist/lib/mcp/utils.d.ts +0 -3
  266. package/dist/lib/prompt.d.ts +0 -14
  267. package/dist/lib/utils.d.ts +0 -68
  268. package/dist/lib/version.d.ts +0 -5
  269. package/dist/scripts/gen-version.d.ts +0 -1
  270. package/dist/scripts/run-evals.d.ts +0 -1
  271. package/dist/stagehand.config.d.ts +0 -3
  272. package/dist/types/act.d.ts +0 -50
  273. package/dist/types/agent.d.ts +0 -144
  274. package/dist/types/api.d.ts +0 -40
  275. package/dist/types/browser.d.ts +0 -10
  276. package/dist/types/context.d.ts +0 -117
  277. package/dist/types/evals.d.ts +0 -95
  278. package/dist/types/evaluator.d.ts +0 -40
  279. package/dist/types/llm.d.ts +0 -11
  280. package/dist/types/log.d.ts +0 -23
  281. package/dist/types/model.d.ts +0 -17
  282. package/dist/types/page.d.ts +0 -38
  283. package/dist/types/playwright.d.ts +0 -12
  284. package/dist/types/stagehand.d.ts +0 -330
  285. package/dist/types/stagehandApiErrors.d.ts +0 -18
  286. package/dist/types/stagehandErrors.d.ts +0 -104
package/package.json CHANGED
@@ -1,60 +1,39 @@
1
1
  {
2
2
  "name": "@browserbasehq/stagehand",
3
- "version": "2.5.3-alpha-4994eabfa8016347ec001b40ceadb0c905403470",
3
+ "version": "4.0.0-alpha-49bc5b68e4fbeb28a120b301b51c31a36db7d922",
4
4
  "description": "An AI web browsing framework focused on simplicity and extensibility.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
- "bin": {
9
- "evals": "./dist/evals/cli.js"
10
- },
11
8
  "files": [
12
- "dist/**"
9
+ "dist/index.js",
10
+ "dist/index.d.ts",
11
+ "dist/lib",
12
+ "dist/types",
13
+ "dist/stagehand.config.d.ts"
14
+ ],
15
+ "keywords": [
16
+ "ai",
17
+ "browser",
18
+ "automation",
19
+ "web-scraping",
20
+ "testing"
13
21
  ],
14
- "keywords": [],
15
22
  "author": "Browserbase",
16
23
  "license": "MIT",
17
- "devDependencies": {
18
- "@changesets/changelog-github": "^0.5.0",
19
- "@changesets/cli": "^2.27.9",
20
- "@eslint/js": "^9.16.0",
21
- "@langchain/core": "^0.3.40",
22
- "@langchain/openai": "^0.4.4",
23
- "@playwright/test": "^1.42.1",
24
- "@types/adm-zip": "^0.5.7",
25
- "@types/cheerio": "^0.22.35",
26
- "@types/express": "^4.17.21",
27
- "@types/node": "^20.11.30",
28
- "@types/ws": "^8.5.13",
29
- "adm-zip": "^0.5.16",
30
- "autoevals": "^0.0.64",
31
- "braintrust": "^0.0.171",
32
- "chalk": "^5.4.1",
33
- "cheerio": "^1.0.0",
34
- "chromium-bidi": "^0.10.0",
35
- "esbuild": "^0.21.4",
36
- "eslint": "^9.16.0",
37
- "express": "^4.21.0",
38
- "globals": "^15.13.0",
39
- "multer": "^1.4.5-lts.1",
40
- "prettier": "^3.2.5",
41
- "string-comparison": "^1.3.0",
42
- "tsup": "^8.2.1",
43
- "tsx": "^4.10.5",
44
- "typescript": "^5.2.2",
45
- "typescript-eslint": "^8.17.0"
46
- },
47
24
  "peerDependencies": {
48
25
  "deepmerge": "^4.3.1",
49
26
  "dotenv": "^16.4.5",
50
- "zod": ">=3.25.0 <3.25.68"
27
+ "zod": "3.25.67"
51
28
  },
52
29
  "dependencies": {
30
+ "@ai-sdk/provider": "^2.0.0",
53
31
  "@anthropic-ai/sdk": "0.39.0",
54
32
  "@browserbasehq/sdk": "^2.4.0",
55
33
  "@google/genai": "^1.22.0",
34
+ "@langchain/openai": "^0.4.4",
56
35
  "@modelcontextprotocol/sdk": "^1.17.2",
57
- "ai": "^4.3.9",
36
+ "ai": "^5.0.0",
58
37
  "devtools-protocol": "^0.0.1464554",
59
38
  "fetch-cookie": "^3.1.0",
60
39
  "openai": "^4.87.1",
@@ -65,56 +44,53 @@
65
44
  "zod-to-json-schema": "^3.23.5"
66
45
  },
67
46
  "optionalDependencies": {
68
- "@ai-sdk/anthropic": "^1.2.6",
69
- "@ai-sdk/azure": "^1.3.19",
70
- "@ai-sdk/cerebras": "^0.2.6",
71
- "@ai-sdk/deepseek": "^0.2.13",
72
- "@ai-sdk/google": "^1.2.6",
73
- "@ai-sdk/groq": "^1.2.4",
74
- "@ai-sdk/mistral": "^1.2.7",
75
- "@ai-sdk/openai": "^1.0.14",
76
- "@ai-sdk/perplexity": "^1.1.7",
77
- "@ai-sdk/togetherai": "^0.2.6",
78
- "@ai-sdk/xai": "^1.2.15",
79
- "ollama-ai-provider": "^1.2.0"
47
+ "@ai-sdk/anthropic": "^2.0.34",
48
+ "@ai-sdk/azure": "^2.0.54",
49
+ "@ai-sdk/cerebras": "^1.0.25",
50
+ "@ai-sdk/deepseek": "^1.0.23",
51
+ "@ai-sdk/google": "^2.0.23",
52
+ "@ai-sdk/groq": "^2.0.24",
53
+ "@ai-sdk/mistral": "^2.0.19",
54
+ "@ai-sdk/openai": "^2.0.53",
55
+ "@ai-sdk/perplexity": "^2.0.13",
56
+ "@ai-sdk/togetherai": "^1.0.23",
57
+ "@ai-sdk/xai": "^2.0.26",
58
+ "@langchain/core": "^0.3.40",
59
+ "chrome-launcher": "^1.2.0",
60
+ "ollama-ai-provider-v2": "^1.5.0",
61
+ "patchright-core": "^1.55.2",
62
+ "playwright-core": "^1.54.1",
63
+ "puppeteer-core": "^22.8.0"
80
64
  },
81
- "directories": {
82
- "doc": "docs",
83
- "example": "examples",
84
- "lib": "lib"
65
+ "devDependencies": {
66
+ "@playwright/test": "^1.42.1",
67
+ "eslint": "^9.16.0",
68
+ "prettier": "^3.2.5",
69
+ "tsup": "^8.2.1",
70
+ "tsx": "^4.10.5",
71
+ "typescript": "^5.2.2"
85
72
  },
86
73
  "repository": {
87
74
  "type": "git",
88
- "url": "git+https://github.com/browserbase/stagehand.git"
75
+ "url": "git+https://github.com/browserbase/stagehand.git",
76
+ "directory": "packages/core"
89
77
  },
90
78
  "bugs": {
91
79
  "url": "https://github.com/browserbase/stagehand/issues"
92
80
  },
93
81
  "homepage": "https://stagehand.dev",
94
- "overrides": {
95
- "whatwg-url": "^14.0.0"
96
- },
97
82
  "scripts": {
98
- "example": "pnpm --filter @browserbasehq/stagehand-examples run start",
99
- "format": "prettier --write .",
100
- "prettier": "prettier --check .",
101
- "prettier:fix": "prettier --write .",
102
- "eslint": "eslint .",
103
- "cache:clear": "rm -rf .cache",
104
- "docs": "pnpm --filter @browserbasehq/stagehand-docs run dev",
105
- "evals": "tsx scripts/run-evals.ts",
106
- "evals:legacy": "tsx scripts/run-evals.ts",
107
- "e2e": "pnpm run build && cd evals/deterministic && playwright test --config=e2e.playwright.config.ts",
108
- "e2e:bb": "pnpm run build && cd evals/deterministic && playwright test --config=bb.playwright.config.ts",
109
- "e2e:local": "pnpm run build && cd evals/deterministic && playwright test --config=local.playwright.config.ts",
110
- "build-dom-scripts": "tsx lib/dom/genDomScripts.ts",
111
- "build-types": "tsc --emitDeclarationOnly --outDir dist",
112
- "build-js": "tsup lib/index.ts --dts",
113
- "build:cli": "tsup evals/cli.ts --outDir dist/evals --format cjs && cp evals/evals.config.json dist/evals/ && chmod +x dist/evals/cli.js && npm link",
114
- "build": "pnpm run lint && pnpm run gen-version && pnpm run build-dom-scripts && pnpm run build-js && pnpm run build-types",
115
83
  "gen-version": "tsx scripts/gen-version.ts",
116
- "lint": "pnpm run prettier:fix && pnpm run eslint",
117
- "release": "pnpm run build && changeset publish",
118
- "release-canary": "pnpm run build && changeset version --snapshot && changeset publish --tag alpha"
84
+ "build-dom-scripts": "tsx lib/v3/dom/genDomScripts.ts && tsx lib/v3/dom/genLocatorScripts.ts",
85
+ "build-js": "tsup --entry.index lib/v3/index.ts --dts",
86
+ "typecheck": "tsc --noEmit",
87
+ "build": "pnpm run gen-version && pnpm run build-dom-scripts && pnpm run build-js && pnpm run typecheck",
88
+ "example": "node --import tsx -e \"const args=process.argv.slice(1).filter(a=>a!=='--'); const [p]=args; const n=(p||'example').replace(/^\\.\\//,'').replace(/\\.ts$/i,''); import(new URL(require('node:path').resolve('examples', n + '.ts'), 'file:'));\" --",
89
+ "test": "playwright test --config=lib/v3/tests/v3.playwright.config.ts",
90
+ "e2e": "playwright test --config=lib/v3/tests/v3.local.playwright.config.ts",
91
+ "e2e:local": "playwright test --config=lib/v3/tests/v3.local.playwright.config.ts",
92
+ "e2e:bb": "playwright test --config=lib/v3/tests/v3.bb.playwright.config.ts",
93
+ "lint": "cd ../.. && prettier --check packages/core && cd packages/core && eslint .",
94
+ "format": "prettier --write ."
119
95
  }
120
96
  }
package/README.md DELETED
@@ -1,165 +0,0 @@
1
- <div id="toc" align="center" style="margin-bottom: 0;">
2
- <ul style="list-style: none; margin: 0; padding: 0;">
3
- <a href="https://stagehand.dev">
4
- <picture>
5
- <source media="(prefers-color-scheme: dark)" srcset="media/dark_logo.png" />
6
- <img alt="Stagehand" src="media/light_logo.png" width="200" style="margin-right: 30px;" />
7
- </picture>
8
- </a>
9
- </ul>
10
- </div>
11
- <p align="center">
12
- <strong>The AI Browser Automation Framework</strong><br>
13
- <a href="https://docs.stagehand.dev">Read the Docs</a>
14
- </p>
15
-
16
- <p align="center">
17
- <a href="https://github.com/browserbase/stagehand/tree/main?tab=MIT-1-ov-file#MIT-1-ov-file">
18
- <picture>
19
- <source media="(prefers-color-scheme: dark)" srcset="media/dark_license.svg" />
20
- <img alt="MIT License" src="media/light_license.svg" />
21
- </picture>
22
- </a>
23
- <a href="https://join.slack.com/t/stagehand-dev/shared_invite/zt-38khc8iv5-T2acb50_0OILUaX7lxeBOg">
24
- <picture>
25
- <source media="(prefers-color-scheme: dark)" srcset="media/dark_slack.svg" />
26
- <img alt="Slack Community" src="media/light_slack.svg" />
27
- </picture>
28
- </a>
29
- </p>
30
-
31
- <p align="center">
32
- <a href="https://trendshift.io/repositories/12122" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12122" alt="browserbase%2Fstagehand | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
33
- </p>
34
-
35
- <p align="center">
36
- If you're looking for the Python implementation, you can find it
37
- <a href="https://github.com/browserbase/stagehand-python"> here</a>
38
- </p>
39
-
40
- <div align="center" style="display: flex; align-items: center; justify-content: center; gap: 4px; margin-bottom: 0;">
41
- <b>Vibe code</b>
42
- <span style="font-size: 1.05em;"> Stagehand with </span>
43
- <a href="https://director.ai" style="display: flex; align-items: center;">
44
- <span>Director</span>
45
- </a>
46
- <span> </span>
47
- <picture>
48
- <img alt="Director" src="media/director_icon.svg" width="25" />
49
- </picture>
50
- </div>
51
-
52
- ## Why Stagehand?
53
-
54
- Most existing browser automation tools either require you to write low-level code in a framework like Selenium, Playwright, or Puppeteer, or use high-level agents that can be unpredictable in production. By letting developers choose what to write in code vs. natural language, Stagehand is the natural choice for browser automations in production.
55
-
56
- 1. **Choose when to write code vs. natural language**: use AI when you want to navigate unfamiliar pages, and use code ([Playwright](https://playwright.dev/)) when you know exactly what you want to do.
57
-
58
- 2. **Preview and cache actions**: Stagehand lets you preview AI actions before running them, and also helps you easily cache repeatable actions to save time and tokens.
59
-
60
- 3. **Computer use models with one line of code**: Stagehand lets you integrate SOTA computer use models from OpenAI and Anthropic into the browser with one line of code.
61
-
62
- ## Example
63
-
64
- Here's how to build a sample browser automation with Stagehand:
65
-
66
- <div align="center">
67
- <div style="max-width:300px;">
68
- <img src="/media/github_demo.gif" alt="See Stagehand in Action">
69
- </div>
70
- </div>
71
-
72
- ```typescript
73
- // Use Playwright functions on the page object
74
- const page = stagehand.page;
75
- await page.goto("https://github.com/browserbase");
76
-
77
- // Use act() to execute individual actions
78
- await page.act("click on the stagehand repo");
79
-
80
- // Use Computer Use agents for larger actions
81
- const agent = stagehand.agent({
82
- provider: "openai",
83
- model: "computer-use-preview",
84
- });
85
- await agent.execute("Get to the latest PR");
86
-
87
- // Use extract() to read data from the page
88
- const { author, title } = await page.extract({
89
- instruction: "extract the author and title of the PR",
90
- schema: z.object({
91
- author: z.string().describe("The username of the PR author"),
92
- title: z.string().describe("The title of the PR"),
93
- }),
94
- });
95
- ```
96
-
97
- ## Documentation
98
-
99
- Visit [docs.stagehand.dev](https://docs.stagehand.dev) to view the full documentation.
100
-
101
- ## Getting Started
102
-
103
- Start with Stagehand with one line of code, or check out our [Quickstart Guide](https://docs.stagehand.dev/first-steps/quickstart) for more information:
104
-
105
- ```bash
106
- npx create-browser-app
107
- ```
108
-
109
- <div align="center">
110
- <a href="https://www.loom.com/share/f5107f86d8c94fa0a8b4b1e89740f7a7">
111
- <p>Watch Anirudh demo create-browser-app to create a Stagehand project!</p>
112
- </a>
113
- <a href="https://www.loom.com/share/f5107f86d8c94fa0a8b4b1e89740f7a7">
114
- <img style="max-width:300px;" src="https://cdn.loom.com/sessions/thumbnails/f5107f86d8c94fa0a8b4b1e89740f7a7-ec3f428b6775ceeb-full-play.gif">
115
- </a>
116
- </div>
117
-
118
- ### Build and Run from Source
119
-
120
- ```bash
121
- git clone https://github.com/browserbase/stagehand.git
122
- cd stagehand
123
- pnpm install
124
- pnpm playwright install
125
- pnpm run build
126
- pnpm run example # run the blank script at ./examples/example.ts
127
- pnpm run example 2048 # run the 2048 example at ./examples/2048.ts
128
- pnpm run evals -man # see evaluation suite options
129
- ```
130
-
131
- Stagehand is best when you have an API key for an LLM provider and Browserbase credentials. To add these to your project, run:
132
-
133
- ```bash
134
- cp .env.example .env
135
- nano .env # Edit the .env file to add API keys
136
- ```
137
-
138
- ## Contributing
139
-
140
- > [!NOTE]
141
- > We highly value contributions to Stagehand! For questions or support, please join our [Slack community](https://join.slack.com/t/stagehand-dev/shared_invite/zt-38khc8iv5-T2acb50_0OILUaX7lxeBOg).
142
-
143
- At a high level, we're focused on improving reliability, speed, and cost in that order of priority. If you're interested in contributing, we strongly recommend reaching out to [Miguel Gonzalez](https://x.com/miguel_gonzf) or [Paul Klein](https://x.com/pk_iv) in our [Slack community](https://join.slack.com/t/stagehand-dev/shared_invite/zt-38khc8iv5-T2acb50_0OILUaX7lxeBOg) before starting to ensure that your contribution aligns with our goals.
144
-
145
- For more information, please see our [Contributing Guide](https://docs.stagehand.dev/examples/contributing).
146
-
147
- ## Acknowledgements
148
-
149
- This project heavily relies on [Playwright](https://playwright.dev/) as a resilient backbone to automate the web. It also would not be possible without the awesome techniques and discoveries made by [tarsier](https://github.com/reworkd/tarsier), [gemini-zod](https://github.com/jbeoris/gemini-zod), and [fuji-web](https://github.com/normal-computing/fuji-web).
150
-
151
- We'd like to thank the following people for their major contributions to Stagehand:
152
- - [Paul Klein](https://github.com/pkiv)
153
- - [Anirudh Kamath](https://github.com/kamath)
154
- - [Sean McGuire](https://github.com/seanmcguire12)
155
- - [Miguel Gonzalez](https://github.com/miguelg719)
156
- - [Sameel Arif](https://github.com/sameelarif)
157
- - [Filip Michalsky](https://github.com/filip-michalsky)
158
- - [Jeremy Press](https://x.com/jeremypress)
159
- - [Navid Pour](https://github.com/navidpour)
160
-
161
- ## License
162
-
163
- Licensed under the MIT License.
164
-
165
- Copyright 2025 Browserbase, Inc.
@@ -1,15 +0,0 @@
1
- declare const parsedArgs: {
2
- evalName?: string;
3
- env?: string;
4
- api?: string;
5
- trials?: number;
6
- concurrency?: number;
7
- provider?: string;
8
- dataset?: string;
9
- max_k?: number;
10
- leftover: string[];
11
- };
12
- declare const DEFAULT_EVAL_CATEGORIES: string[];
13
- declare let filterByCategory: string | null;
14
- declare let filterByEvalName: string | null;
15
- export { filterByCategory, filterByEvalName, DEFAULT_EVAL_CATEGORIES, parsedArgs, };
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,2 +0,0 @@
1
- import type { SummaryResult } from "@/types/evals";
2
- export declare const generateSummary: (results: SummaryResult[], experimentName: string) => Promise<void>;
@@ -1,22 +0,0 @@
1
- import type { OSWorldTask, OSWorldStagehandTask } from "./types";
2
- export declare class OSWorldAdapter {
3
- private rawDataPath;
4
- constructor(rawDataPath?: string);
5
- /**
6
- * Load all OSWorld Chrome JSON files from the raw directory
7
- */
8
- loadRawTasks(): OSWorldTask[];
9
- /**
10
- * Convert OSWorld task to Stagehand format
11
- */
12
- convertTask(osWorldTask: OSWorldTask): OSWorldStagehandTask;
13
- /**
14
- * Convert all raw tasks to Stagehand format
15
- */
16
- convertAllTasks(): OSWorldStagehandTask[];
17
- private extractStartUrl;
18
- private determineEvaluationType;
19
- private convertEvaluationCriteria;
20
- private extractTimeout;
21
- }
22
- export declare const osworldAdapter: OSWorldAdapter;
@@ -1,9 +0,0 @@
1
- import type { OSWorldStagehandTask } from "./types";
2
- export declare const osworldDataset: OSWorldStagehandTask[];
3
- export * from "./types";
4
- export { osworldAdapter } from "./adapter";
5
- export declare const osworldStats: {
6
- totalTasks: number;
7
- tasksByEvaluationType: Record<string, number>;
8
- tasksBySource: Record<string, number>;
9
- };
@@ -1,54 +0,0 @@
1
- export interface OSWorldTask {
2
- id: string;
3
- snapshot: string;
4
- instruction: string;
5
- source: string;
6
- config: OSWorldConfig[];
7
- trajectory: string;
8
- related_apps: string[];
9
- evaluator: OSWorldEvaluator;
10
- proxy: boolean;
11
- fixed_ip: boolean;
12
- possibility_of_env_change: "low" | "medium" | "high";
13
- }
14
- export interface OSWorldConfig {
15
- type: string;
16
- parameters: Record<string, unknown>;
17
- }
18
- export interface OSWorldEvaluator {
19
- func: string | string[];
20
- result: OSWorldResult | OSWorldResult[];
21
- expected: OSWorldExpected | OSWorldExpected[];
22
- postconfig?: OSWorldConfig[];
23
- }
24
- export interface OSWorldResult {
25
- type: string;
26
- goto_prefix?: string;
27
- parse_keys?: string[];
28
- category?: string;
29
- class_multiObject_search_exist?: Record<string, unknown>;
30
- }
31
- export interface OSWorldExpected {
32
- type: string;
33
- rules?: OSWorldRule;
34
- }
35
- export interface OSWorldRule {
36
- type?: string;
37
- url?: string;
38
- expected?: Record<string, unknown> | string;
39
- expect_in_result?: boolean;
40
- }
41
- export interface OSWorldStagehandTask {
42
- id: string;
43
- instruction: string;
44
- source: string;
45
- startUrl?: string;
46
- evaluationType: "url_match" | "string_match" | "dom_state" | "custom";
47
- evaluationCriteria: {
48
- type: string;
49
- expected: unknown;
50
- rules?: OSWorldRule;
51
- };
52
- timeout?: number;
53
- requiresProxy: boolean;
54
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * See https://playwright.dev/docs/test-configuration.
3
- */
4
- declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
5
- export default _default;
@@ -1,5 +0,0 @@
1
- /**
2
- * See https://playwright.dev/docs/test-configuration.
3
- */
4
- declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
5
- export default _default;
@@ -1,5 +0,0 @@
1
- /**
2
- * See https://playwright.dev/docs/test-configuration.
3
- */
4
- declare const _default: import("@playwright/test").PlaywrightTestConfig<{}, {}>;
5
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { ConstructorParams } from "@browserbasehq/stagehand";
2
- declare const StagehandConfig: ConstructorParams;
3
- export default StagehandConfig;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- /**
2
- * Determine the current environment in which the evaluations are running:
3
- * - BROWSERBASE or LOCAL
4
- *
5
- * The environment is read from the EVAL_ENV environment variable.
6
- */
7
- export declare const env: "BROWSERBASE" | "LOCAL";
8
- /**
9
- * Enable or disable caching based on the EVAL_ENABLE_CACHING environment variable.
10
- * Caching may improve performance by not re-fetching or re-computing certain results.
11
- * By default, caching is disabled unless explicitly enabled.
12
- */
13
- export declare const enableCaching: boolean;
@@ -1,29 +0,0 @@
1
- /**
2
- * This class is responsible for evaluating the result of an agentic task.
3
- * The first version includes a VLM evaluator specifically prompted to evaluate the state of a task
4
- * usually represented as a screenshot.
5
- * The evaluator will reply with YES or NO given the state of the provided task.
6
- */
7
- import { AvailableModel, ClientOptions, Stagehand } from "@browserbasehq/stagehand";
8
- import { EvaluateOptions, BatchAskOptions, EvaluationResult } from "@/types/evaluator";
9
- export declare class Evaluator {
10
- private stagehand;
11
- private modelName;
12
- private modelClientOptions;
13
- private silentLogger;
14
- constructor(stagehand: Stagehand, modelName?: AvailableModel, modelClientOptions?: ClientOptions);
15
- ask(options: EvaluateOptions): Promise<EvaluationResult>;
16
- /**
17
- * Evaluates multiple questions with optional answers and/or screenshot.
18
- * Similar to ask() but processes multiple questions in a single call.
19
- * Returns an array of evaluation results.
20
- *
21
- * @param options - The options for batch evaluation
22
- * @returns A promise that resolves to an array of EvaluationResults
23
- */
24
- batchAsk(options: BatchAskOptions): Promise<EvaluationResult[]>;
25
- /**
26
- * Private method to evaluate with multiple screenshots
27
- */
28
- private _evaluateWithMultipleScreenshots;
29
- }
@@ -1 +0,0 @@
1
- export {};