@browserbasehq/orca 3.4.0-preview.0 → 3.5.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (829) hide show
  1. package/dist/cjs/lib/inference.d.ts +2 -1
  2. package/dist/cjs/lib/inference.js +10 -3
  3. package/dist/cjs/lib/inference.js.map +1 -1
  4. package/dist/cjs/lib/prompt.d.ts +2 -2
  5. package/dist/cjs/lib/prompt.js +19 -4
  6. package/dist/cjs/lib/prompt.js.map +1 -1
  7. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
  8. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  9. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +10 -0
  10. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  11. package/dist/cjs/lib/v3/handlers/extractHandler.js +19 -2
  12. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -1
  13. package/dist/cjs/lib/v3/handlers/observeHandler.js +2 -1
  14. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -1
  15. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  16. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  17. package/dist/cjs/lib/v3/index.d.ts +1 -0
  18. package/dist/cjs/lib/v3/index.js.map +1 -1
  19. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  20. package/dist/cjs/lib/v3/launch/local.js +47 -7
  21. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  22. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  23. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  24. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -0
  25. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -1
  26. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  27. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  28. package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
  29. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  30. package/dist/cjs/lib/v3/types/public/api.d.ts +287 -0
  31. package/dist/cjs/lib/v3/types/public/api.js +61 -3
  32. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  33. package/dist/cjs/lib/v3/types/public/methods.d.ts +2 -0
  34. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -1
  35. package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
  36. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  37. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  38. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  39. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  40. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  41. package/dist/cjs/lib/v3/v3.js +7 -47
  42. package/dist/cjs/lib/v3/v3.js.map +1 -1
  43. package/dist/cjs/lib/v3Evaluator.d.ts +20 -12
  44. package/dist/cjs/lib/v3Evaluator.js +41 -199
  45. package/dist/cjs/lib/v3Evaluator.js.map +1 -1
  46. package/dist/cjs/lib/v3LegacyEvaluator.d.ts +20 -0
  47. package/dist/cjs/lib/v3LegacyEvaluator.js +215 -0
  48. package/dist/cjs/lib/v3LegacyEvaluator.js.map +1 -0
  49. package/dist/cjs/lib/version.d.ts +1 -1
  50. package/dist/cjs/lib/version.js +1 -1
  51. package/dist/cjs/lib/version.js.map +1 -1
  52. package/dist/esm/lib/inference.d.ts +2 -1
  53. package/dist/esm/lib/inference.js +10 -3
  54. package/dist/esm/lib/inference.js.map +1 -1
  55. package/dist/esm/lib/prompt.d.ts +2 -2
  56. package/dist/esm/lib/prompt.js +19 -4
  57. package/dist/esm/lib/prompt.js.map +1 -1
  58. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  59. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  60. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  61. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  62. package/dist/esm/lib/v3/handlers/extractHandler.js +19 -2
  63. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  64. package/dist/esm/lib/v3/handlers/observeHandler.js +2 -1
  65. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  66. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  67. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  68. package/dist/esm/lib/v3/index.d.ts +1 -0
  69. package/dist/esm/lib/v3/index.js.map +1 -1
  70. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  71. package/dist/esm/lib/v3/launch/local.js +48 -8
  72. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  73. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  74. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  75. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -0
  76. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  77. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  78. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  79. package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
  80. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  81. package/dist/esm/lib/v3/types/public/api.d.ts +287 -0
  82. package/dist/esm/lib/v3/types/public/api.js +59 -1
  83. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  84. package/dist/esm/lib/v3/types/public/methods.d.ts +2 -0
  85. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  86. package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
  87. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  88. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  89. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  90. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  91. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  92. package/dist/esm/lib/v3/v3.js +7 -47
  93. package/dist/esm/lib/v3/v3.js.map +1 -1
  94. package/dist/esm/lib/v3Evaluator.d.ts +20 -12
  95. package/dist/esm/lib/v3Evaluator.js +41 -199
  96. package/dist/esm/lib/v3Evaluator.js.map +1 -1
  97. package/dist/esm/lib/v3LegacyEvaluator.d.ts +20 -0
  98. package/dist/esm/lib/v3LegacyEvaluator.js +211 -0
  99. package/dist/esm/lib/v3LegacyEvaluator.js.map +1 -0
  100. package/dist/esm/lib/version.d.ts +1 -1
  101. package/dist/esm/lib/version.js +1 -1
  102. package/dist/esm/lib/version.js.map +1 -1
  103. package/package.json +30 -18
  104. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  105. package/dist/cjs/tests/cache-variables.test.js +0 -221
  106. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  107. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  108. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  109. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  110. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  111. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  112. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  113. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  114. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  115. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  116. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  117. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  118. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  119. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  120. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  121. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  122. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  123. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  124. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  125. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  126. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  127. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  128. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  129. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  130. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  131. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  132. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  133. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  134. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  135. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  136. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  137. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  138. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  139. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  140. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  141. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  142. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  143. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  144. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  145. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  146. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  147. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  148. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  149. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  150. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  151. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  152. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  153. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  154. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  155. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  156. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  157. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  158. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  159. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  160. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  161. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  162. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  163. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  164. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  165. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  166. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  167. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  168. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  169. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  170. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  171. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  172. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  173. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  174. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  175. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  176. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  177. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  178. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  179. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  180. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  181. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  182. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  183. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  184. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  185. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  186. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  187. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  188. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  189. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  190. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  191. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  192. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  193. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  194. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  195. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  196. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  197. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  198. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  199. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  200. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  201. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  202. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  203. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  204. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  205. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  206. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  207. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  208. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  209. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  210. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  211. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  212. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  213. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  214. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  215. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  216. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  217. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  218. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  219. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  220. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  221. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  222. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  223. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  224. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  225. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  226. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  227. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  228. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  229. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  230. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  231. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  232. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  233. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  234. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  235. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  236. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  237. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  238. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  239. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  240. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  241. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  242. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  243. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  244. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  245. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  246. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  247. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  248. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  249. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  250. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  251. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  252. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  253. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  254. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  255. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  256. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  257. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  258. package/dist/cjs/tests/integration/testUtils.js +0 -188
  259. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  260. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  261. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  262. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  263. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  264. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  265. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  266. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  267. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  268. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  269. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  270. package/dist/cjs/tests/integration/v3.config.js +0 -11
  271. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  272. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  273. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  274. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  275. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  276. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  277. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  278. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  279. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  280. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  281. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  282. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  283. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  284. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  285. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  286. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  287. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  288. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  289. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  290. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  291. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  292. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  293. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  294. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  295. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  296. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  297. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  298. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  299. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  300. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  301. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  302. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  303. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  304. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  305. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  306. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  307. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  308. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  309. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  310. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  311. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  312. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  313. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  314. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  315. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -133
  316. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  317. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  318. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  319. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  320. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  321. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  322. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  323. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  324. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -62
  325. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  326. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  327. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  328. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  329. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  330. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  331. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  332. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  333. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  334. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  335. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  336. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  337. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  338. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  339. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  340. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  341. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  342. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  343. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  344. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  345. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  346. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  347. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  348. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  349. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  350. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  351. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  352. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  353. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  354. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  355. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  356. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  357. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  358. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  359. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  360. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  361. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  362. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  363. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  364. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  365. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  366. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  367. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  368. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  369. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  370. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  371. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  372. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  373. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  374. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  375. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  376. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  377. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  378. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  379. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  380. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  381. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  382. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  383. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  384. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  385. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  386. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  387. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  388. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  389. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  390. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  391. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  392. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  393. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  394. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  395. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  396. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  397. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  398. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  399. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  400. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  401. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  402. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  403. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  404. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  405. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  406. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  407. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  408. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  409. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  410. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  411. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  412. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  413. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  414. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  415. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  416. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  417. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  418. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  419. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  420. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  421. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  422. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  423. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  424. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  425. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  426. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  427. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  428. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  429. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  430. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  431. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  432. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  433. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  434. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  435. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  436. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  437. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  438. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  439. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  440. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  441. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  442. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  443. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  444. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  445. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  446. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  447. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  448. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  449. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  450. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  451. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  452. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  453. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -897
  454. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  455. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  456. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  457. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  458. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  459. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  460. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  461. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  462. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  463. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  464. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  465. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  466. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  467. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  468. package/dist/esm/tests/cache-variables.test.js +0 -219
  469. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  470. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  471. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  472. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  473. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  474. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  475. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  476. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  477. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  478. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  479. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  480. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  481. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  482. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  483. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  484. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  485. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  486. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  487. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  488. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  489. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  490. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  491. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  492. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  493. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  494. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  495. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  496. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  497. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  498. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  499. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  500. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  501. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  502. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  503. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  504. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  505. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  506. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  507. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  508. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  509. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  510. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  511. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  512. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  513. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  514. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  515. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  516. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  517. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  518. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  519. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  520. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  521. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  522. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  523. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  524. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  525. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  526. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  527. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  528. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  529. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  530. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  531. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  532. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  533. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  534. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  535. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  536. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  537. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  538. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  539. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  540. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  541. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  542. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  543. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  544. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  545. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  546. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  547. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  548. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  549. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  550. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  551. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  552. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  553. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  554. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  555. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  556. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  557. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  558. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  559. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  560. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  561. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  562. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  563. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  564. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  565. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  566. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  567. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  568. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  569. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  570. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  571. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  572. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  573. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  574. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  575. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  576. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  577. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  578. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  579. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  580. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  581. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  582. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  583. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  584. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  585. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  586. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  587. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  588. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  589. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  590. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  591. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  592. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  593. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  594. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  595. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  596. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  597. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  598. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  599. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  600. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  601. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  602. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  603. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  604. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  605. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  606. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  607. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  608. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  609. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  610. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  611. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  612. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  613. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  614. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  615. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  616. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  617. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  618. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  619. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  620. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  621. package/dist/esm/tests/integration/testUtils.js +0 -178
  622. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  623. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  624. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  625. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  626. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  627. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  628. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  629. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  630. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  631. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  632. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  633. package/dist/esm/tests/integration/v3.config.js +0 -7
  634. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  635. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  636. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  637. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  638. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  639. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  640. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  641. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  642. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  643. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  644. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  645. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  646. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  647. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  648. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  649. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  650. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  651. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  652. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  653. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  654. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  655. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  656. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  657. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  658. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  659. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  660. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  661. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  662. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  663. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  664. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  665. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  666. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  667. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  668. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  669. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  670. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  671. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  672. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  673. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  674. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  675. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  676. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  677. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  678. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -131
  679. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  680. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  681. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  682. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  683. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  684. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  685. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  686. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  687. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -60
  688. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  689. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  690. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  691. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  692. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  693. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  694. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  695. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  696. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  697. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  698. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  699. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  700. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  701. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  702. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  703. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  704. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  705. package/dist/esm/tests/unit/cookies.test.js +0 -909
  706. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  707. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  708. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  709. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  710. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  711. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  712. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  713. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  714. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  715. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  716. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  717. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  718. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  719. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  720. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  721. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  722. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  723. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  724. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  725. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  726. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  727. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  728. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  729. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  730. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  731. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  732. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  733. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  734. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  735. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  736. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  737. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  738. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  739. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  740. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  741. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  742. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  743. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  744. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  745. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  746. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  747. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  748. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  749. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  750. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  751. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  752. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  753. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  754. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  755. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  756. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  757. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  758. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  759. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  760. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  761. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  762. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  763. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  764. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  765. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  766. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  767. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  768. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  769. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  770. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  771. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  772. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  773. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  774. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  775. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  776. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  777. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  778. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  779. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  780. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  781. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  782. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  783. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  784. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  785. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  786. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  787. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  788. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  789. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  790. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  791. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  792. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  793. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  794. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  795. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  796. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  797. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  798. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  799. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  800. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  801. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  802. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  803. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  804. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  805. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  806. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  807. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  808. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  809. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  810. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  811. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  812. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  813. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  814. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  815. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  816. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -862
  817. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  818. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  819. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  820. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  821. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  822. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  823. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  824. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  825. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  826. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  827. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  828. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  829. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1,84 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { MicrosoftCUAClient } from "../../lib/v3/agent/MicrosoftCUAClient.js";
3
- import { FlowLogger } from "../../lib/v3/flowlogger/FlowLogger.js";
4
- function createClient() {
5
- const client = new MicrosoftCUAClient("microsoft", "fara-7b", undefined, {
6
- apiKey: "test-key",
7
- baseURL: "https://example.com",
8
- });
9
- client.setScreenshotProvider(async () => "mock-base64-screenshot");
10
- return client;
11
- }
12
- describe("MicrosoftCUAClient", () => {
13
- it("emits FlowLogger request and response events for a successful model call", async () => {
14
- const client = createClient();
15
- const createCompletion = vi.fn().mockResolvedValue({
16
- choices: [
17
- {
18
- message: {
19
- content: 'thoughts\n<tool_call>\n{"name":"computer_use","arguments":{"action":"terminate","status":"success"}}\n</tool_call>',
20
- },
21
- },
22
- ],
23
- usage: {
24
- prompt_tokens: 11,
25
- completion_tokens: 5,
26
- total_tokens: 16,
27
- },
28
- });
29
- client.client = {
30
- chat: {
31
- completions: {
32
- create: createCompletion,
33
- },
34
- },
35
- };
36
- const requestSpy = vi.spyOn(FlowLogger, "logLlmRequest");
37
- const responseSpy = vi.spyOn(FlowLogger, "logLlmResponse");
38
- try {
39
- const result = await client.executeStep(vi.fn(), false);
40
- expect(result.completed).toBe(true);
41
- expect(createCompletion).toHaveBeenCalledTimes(1);
42
- expect(requestSpy).toHaveBeenCalledTimes(1);
43
- expect(responseSpy).toHaveBeenCalledTimes(1);
44
- const requestPayload = requestSpy.mock.calls[0]?.[0];
45
- const responsePayload = responseSpy.mock.calls[0]?.[0];
46
- expect(requestPayload.model).toBe("fara-7b");
47
- expect(responsePayload.model).toBe("fara-7b");
48
- expect(responsePayload.requestId).toBe(requestPayload.requestId);
49
- expect(responsePayload.inputTokens).toBe(11);
50
- expect(responsePayload.outputTokens).toBe(5);
51
- expect(responsePayload.output).toContain("terminate");
52
- }
53
- finally {
54
- requestSpy.mockRestore();
55
- responseSpy.mockRestore();
56
- }
57
- });
58
- it("emits only FlowLogger request event when model call fails", async () => {
59
- const client = createClient();
60
- const createCompletion = vi
61
- .fn()
62
- .mockRejectedValue(new Error("upstream model error"));
63
- client.client = {
64
- chat: {
65
- completions: {
66
- create: createCompletion,
67
- },
68
- },
69
- };
70
- const requestSpy = vi.spyOn(FlowLogger, "logLlmRequest");
71
- const responseSpy = vi.spyOn(FlowLogger, "logLlmResponse");
72
- try {
73
- await expect(client.executeStep(vi.fn(), false)).rejects.toThrow("upstream model error");
74
- expect(requestSpy).toHaveBeenCalledTimes(1);
75
- expect(responseSpy).not.toHaveBeenCalled();
76
- expect(createCompletion).toHaveBeenCalledTimes(1);
77
- }
78
- finally {
79
- requestSpy.mockRestore();
80
- responseSpy.mockRestore();
81
- }
82
- });
83
- });
84
- //# sourceMappingURL=microsoft-cua-client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"microsoft-cua-client.test.js","sourceRoot":"","sources":["../../../../tests/unit/microsoft-cua-client.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it, vi } from \"vitest\";\nimport { MicrosoftCUAClient } from \"../../lib/v3/agent/MicrosoftCUAClient.js\";\nimport { FlowLogger } from \"../../lib/v3/flowlogger/FlowLogger.js\";\n\nfunction createClient() {\n const client = new MicrosoftCUAClient(\"microsoft\", \"fara-7b\", undefined, {\n apiKey: \"test-key\",\n baseURL: \"https://example.com\",\n });\n client.setScreenshotProvider(async () => \"mock-base64-screenshot\");\n return client;\n}\n\ndescribe(\"MicrosoftCUAClient\", () => {\n it(\"emits FlowLogger request and response events for a successful model call\", async () => {\n const client = createClient();\n const createCompletion = vi.fn().mockResolvedValue({\n choices: [\n {\n message: {\n content:\n 'thoughts\\n<tool_call>\\n{\"name\":\"computer_use\",\"arguments\":{\"action\":\"terminate\",\"status\":\"success\"}}\\n</tool_call>',\n },\n },\n ],\n usage: {\n prompt_tokens: 11,\n completion_tokens: 5,\n total_tokens: 16,\n },\n });\n\n (\n client as unknown as {\n client: {\n chat: { completions: { create: (...args: unknown[]) => unknown } };\n };\n }\n ).client = {\n chat: {\n completions: {\n create: createCompletion,\n },\n },\n };\n\n const requestSpy = vi.spyOn(FlowLogger, \"logLlmRequest\");\n const responseSpy = vi.spyOn(FlowLogger, \"logLlmResponse\");\n\n try {\n const result = await (\n client as unknown as {\n executeStep: (\n logger: (message: unknown) => void,\n isFirstRound?: boolean,\n ) => Promise<{ completed: boolean }>;\n }\n ).executeStep(vi.fn(), false);\n\n expect(result.completed).toBe(true);\n expect(createCompletion).toHaveBeenCalledTimes(1);\n expect(requestSpy).toHaveBeenCalledTimes(1);\n expect(responseSpy).toHaveBeenCalledTimes(1);\n\n const requestPayload = requestSpy.mock.calls[0]?.[0] as {\n requestId: string;\n model: string;\n };\n const responsePayload = responseSpy.mock.calls[0]?.[0] as {\n requestId: string;\n model: string;\n inputTokens: number;\n outputTokens: number;\n output: string;\n };\n\n expect(requestPayload.model).toBe(\"fara-7b\");\n expect(responsePayload.model).toBe(\"fara-7b\");\n expect(responsePayload.requestId).toBe(requestPayload.requestId);\n expect(responsePayload.inputTokens).toBe(11);\n expect(responsePayload.outputTokens).toBe(5);\n expect(responsePayload.output).toContain(\"terminate\");\n } finally {\n requestSpy.mockRestore();\n responseSpy.mockRestore();\n }\n });\n\n it(\"emits only FlowLogger request event when model call fails\", async () => {\n const client = createClient();\n const createCompletion = vi\n .fn()\n .mockRejectedValue(new Error(\"upstream model error\"));\n\n (\n client as unknown as {\n client: {\n chat: { completions: { create: (...args: unknown[]) => unknown } };\n };\n }\n ).client = {\n chat: {\n completions: {\n create: createCompletion,\n },\n },\n };\n\n const requestSpy = vi.spyOn(FlowLogger, \"logLlmRequest\");\n const responseSpy = vi.spyOn(FlowLogger, \"logLlmResponse\");\n\n try {\n await expect(\n (\n client as unknown as {\n executeStep: (\n logger: (message: unknown) => void,\n isFirstRound?: boolean,\n ) => Promise<unknown>;\n }\n ).executeStep(vi.fn(), false),\n ).rejects.toThrow(\"upstream model error\");\n\n expect(requestSpy).toHaveBeenCalledTimes(1);\n expect(responseSpy).not.toHaveBeenCalled();\n expect(createCompletion).toHaveBeenCalledTimes(1);\n } finally {\n requestSpy.mockRestore();\n responseSpy.mockRestore();\n }\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,140 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { LLMProvider } from "../../lib/v3/llm/LLMProvider.js";
3
- import { UnsupportedModelError, UnsupportedAISDKModelProviderError, } from "../../lib/v3/types/public/sdkErrors.js";
4
- // Mock client options with fake API keys for testing
5
- const mockClientOptions = { apiKey: "test-api-key-for-testing" };
6
- describe("Model format deprecation", () => {
7
- describe("UnsupportedModelError", () => {
8
- it("includes guidance to use provider/model format for unknown model names", () => {
9
- const error = new UnsupportedModelError(["gpt-4o", "gemini-2.0-flash"]);
10
- // Should mention the new format
11
- expect(error.message).toContain("provider/model");
12
- // Should include link to docs
13
- expect(error.message).toContain("https://docs.stagehand.dev/v3/configuration/models");
14
- });
15
- it("includes example of provider/model format", () => {
16
- const error = new UnsupportedModelError(["gpt-4o"]);
17
- // Should provide examples like openai/gpt-4o
18
- expect(error.message).toContain("openai/gpt-4o");
19
- expect(error.message).toContain("anthropic/claude-sonnet-4");
20
- });
21
- it("works with feature parameter", () => {
22
- const error = new UnsupportedModelError(["gpt-4o"], "extract");
23
- expect(error.message).toContain("extract");
24
- expect(error.message).toContain("provider/model");
25
- expect(error.message).toContain("https://docs.stagehand.dev/v3/configuration/models");
26
- });
27
- });
28
- describe("LLMProvider.getClient deprecation warning", () => {
29
- it("logs deprecation warning for legacy model names", () => {
30
- const logs = [];
31
- const logger = (line) => logs.push(line);
32
- const provider = new LLMProvider(logger);
33
- // Using a legacy model name like "gpt-4o" instead of "openai/gpt-4o"
34
- // Should not throw, but should log a deprecation warning
35
- const client = provider.getClient("gpt-4o", mockClientOptions);
36
- // Should return a client (not throw)
37
- expect(client).toBeDefined();
38
- // Should have logged a deprecation warning at level 0
39
- const deprecationWarning = logs.find((log) => log.message.toLowerCase().includes("deprecated") ||
40
- log.message.toLowerCase().includes("deprecation"));
41
- expect(deprecationWarning).toBeDefined();
42
- expect(deprecationWarning.level).toBe(0);
43
- });
44
- it("deprecation warning mentions provider/model format", () => {
45
- const logs = [];
46
- const logger = (line) => logs.push(line);
47
- const provider = new LLMProvider(logger);
48
- provider.getClient("gpt-4o", mockClientOptions);
49
- const deprecationWarning = logs.find((log) => log.message.toLowerCase().includes("deprecated") ||
50
- log.message.toLowerCase().includes("deprecation"));
51
- expect(deprecationWarning).toBeDefined();
52
- const message = deprecationWarning.message;
53
- // Should mention the provider/model format
54
- expect(message).toContain("provider/model");
55
- // Should give an example
56
- expect(message).toContain("openai/gpt-5");
57
- });
58
- it("returns OpenAIClient for legacy OpenAI model names", () => {
59
- const logs = [];
60
- const logger = (line) => logs.push(line);
61
- const provider = new LLMProvider(logger);
62
- const client = provider.getClient("gpt-4o", mockClientOptions);
63
- // Should return a client
64
- expect(client).toBeDefined();
65
- // The client should be an OpenAIClient (check constructor name)
66
- expect(client.constructor.name).toBe("OpenAIClient");
67
- });
68
- it("returns GoogleClient for legacy Google model names", () => {
69
- const logs = [];
70
- const logger = (line) => logs.push(line);
71
- const provider = new LLMProvider(logger);
72
- const client = provider.getClient("gemini-2.0-flash", mockClientOptions);
73
- // Should return a client
74
- expect(client).toBeDefined();
75
- // The client should be a GoogleClient
76
- expect(client.constructor.name).toBe("GoogleClient");
77
- });
78
- });
79
- describe("LLMProvider.getClient error handling", () => {
80
- it("throws UnsupportedModelError for unknown model without slash", () => {
81
- const logs = [];
82
- const logger = (line) => logs.push(line);
83
- const provider = new LLMProvider(logger);
84
- // Unknown model without slash should throw UnsupportedModelError
85
- expect(() => {
86
- provider.getClient("some-unknown-model", mockClientOptions);
87
- }).toThrow(UnsupportedModelError);
88
- });
89
- it("UnsupportedModelError includes provider/model format guidance", () => {
90
- const logs = [];
91
- const logger = (line) => logs.push(line);
92
- const provider = new LLMProvider(logger);
93
- try {
94
- provider.getClient("some-unknown-model", mockClientOptions);
95
- }
96
- catch (error) {
97
- expect(error.message).toContain("provider/model");
98
- }
99
- });
100
- it("throws UnsupportedAISDKModelProviderError for invalid provider in provider/model format", () => {
101
- const logs = [];
102
- const logger = (line) => logs.push(line);
103
- const provider = new LLMProvider(logger);
104
- // Invalid provider but correct format
105
- expect(() => {
106
- provider.getClient("invalid-provider/some-model", mockClientOptions);
107
- }).toThrow(UnsupportedAISDKModelProviderError);
108
- });
109
- it("UnsupportedAISDKModelProviderError lists valid providers", () => {
110
- const logs = [];
111
- const logger = (line) => logs.push(line);
112
- const provider = new LLMProvider(logger);
113
- try {
114
- provider.getClient("invalid-provider/some-model", mockClientOptions);
115
- }
116
- catch (error) {
117
- const message = error.message;
118
- // Should list valid providers
119
- expect(message).toContain("openai");
120
- expect(message).toContain("anthropic");
121
- expect(message).toContain("google");
122
- }
123
- });
124
- });
125
- describe("new provider/model format", () => {
126
- it("does not log deprecation warning for provider/model format", () => {
127
- const logs = [];
128
- const logger = (line) => logs.push(line);
129
- const provider = new LLMProvider(logger);
130
- // Using the new format
131
- const client = provider.getClient("openai/gpt-4o", mockClientOptions);
132
- expect(client).toBeDefined();
133
- // Should NOT have a deprecation warning
134
- const deprecationWarning = logs.find((log) => log.message.toLowerCase().includes("deprecated") ||
135
- log.message.toLowerCase().includes("deprecation"));
136
- expect(deprecationWarning).toBeUndefined();
137
- });
138
- });
139
- });
140
- //# sourceMappingURL=model-deprecation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-deprecation.test.js","sourceRoot":"","sources":["../../../../tests/unit/model-deprecation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,wCAAwC,CAAC;AAGhD,qDAAqD;AACrD,MAAM,iBAAiB,GAAG,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;AAEjE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;YAChF,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAExE,gCAAgC;YAChC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAClD,8BAA8B;YAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAC7B,oDAAoD,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEpD,6CAA6C;YAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;YAE/D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAC7B,oDAAoD,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACzD,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAE/D,qCAAqC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,sDAAsD;YACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAChD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CACpD,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,CAAC,kBAAmB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAEhD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAChD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CACpD,CAAC;YAEF,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,kBAAmB,CAAC,OAAO,CAAC;YAC5C,2CAA2C;YAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC5C,yBAAyB;YACzB,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAE/D,yBAAyB;YACzB,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,gEAAgE;YAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;YAEzE,yBAAyB;YACzB,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,sCAAsC;YACtC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,iEAAiE;YACjE,MAAM,CAAC,GAAG,EAAE;gBACV,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,IAAI,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yFAAyF,EAAE,GAAG,EAAE;YACjG,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,sCAAsC;YACtC,MAAM,CAAC,GAAG,EAAE;gBACV,QAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,IAAI,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,CAAC;gBACzC,8BAA8B;gBAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,IAAI,GAAc,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;YAEzC,uBAAuB;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YAEtE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,wCAAwC;YACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAChD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CACpD,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { LLMProvider } from \"../../lib/v3/llm/LLMProvider.js\";\nimport {\n UnsupportedModelError,\n UnsupportedAISDKModelProviderError,\n} from \"../../lib/v3/types/public/sdkErrors.js\";\nimport type { LogLine } from \"../../lib/v3/types/public/logs.js\";\n\n// Mock client options with fake API keys for testing\nconst mockClientOptions = { apiKey: \"test-api-key-for-testing\" };\n\ndescribe(\"Model format deprecation\", () => {\n describe(\"UnsupportedModelError\", () => {\n it(\"includes guidance to use provider/model format for unknown model names\", () => {\n const error = new UnsupportedModelError([\"gpt-4o\", \"gemini-2.0-flash\"]);\n\n // Should mention the new format\n expect(error.message).toContain(\"provider/model\");\n // Should include link to docs\n expect(error.message).toContain(\n \"https://docs.stagehand.dev/v3/configuration/models\",\n );\n });\n\n it(\"includes example of provider/model format\", () => {\n const error = new UnsupportedModelError([\"gpt-4o\"]);\n\n // Should provide examples like openai/gpt-4o\n expect(error.message).toContain(\"openai/gpt-4o\");\n expect(error.message).toContain(\"anthropic/claude-sonnet-4\");\n });\n\n it(\"works with feature parameter\", () => {\n const error = new UnsupportedModelError([\"gpt-4o\"], \"extract\");\n\n expect(error.message).toContain(\"extract\");\n expect(error.message).toContain(\"provider/model\");\n expect(error.message).toContain(\n \"https://docs.stagehand.dev/v3/configuration/models\",\n );\n });\n });\n\n describe(\"LLMProvider.getClient deprecation warning\", () => {\n it(\"logs deprecation warning for legacy model names\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n // Using a legacy model name like \"gpt-4o\" instead of \"openai/gpt-4o\"\n // Should not throw, but should log a deprecation warning\n const client = provider.getClient(\"gpt-4o\", mockClientOptions);\n\n // Should return a client (not throw)\n expect(client).toBeDefined();\n\n // Should have logged a deprecation warning at level 0\n const deprecationWarning = logs.find(\n (log) =>\n log.message.toLowerCase().includes(\"deprecated\") ||\n log.message.toLowerCase().includes(\"deprecation\"),\n );\n expect(deprecationWarning).toBeDefined();\n expect(deprecationWarning!.level).toBe(0);\n });\n\n it(\"deprecation warning mentions provider/model format\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n provider.getClient(\"gpt-4o\", mockClientOptions);\n\n const deprecationWarning = logs.find(\n (log) =>\n log.message.toLowerCase().includes(\"deprecated\") ||\n log.message.toLowerCase().includes(\"deprecation\"),\n );\n\n expect(deprecationWarning).toBeDefined();\n const message = deprecationWarning!.message;\n // Should mention the provider/model format\n expect(message).toContain(\"provider/model\");\n // Should give an example\n expect(message).toContain(\"openai/gpt-5\");\n });\n\n it(\"returns OpenAIClient for legacy OpenAI model names\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n const client = provider.getClient(\"gpt-4o\", mockClientOptions);\n\n // Should return a client\n expect(client).toBeDefined();\n // The client should be an OpenAIClient (check constructor name)\n expect(client.constructor.name).toBe(\"OpenAIClient\");\n });\n\n it(\"returns GoogleClient for legacy Google model names\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n const client = provider.getClient(\"gemini-2.0-flash\", mockClientOptions);\n\n // Should return a client\n expect(client).toBeDefined();\n // The client should be a GoogleClient\n expect(client.constructor.name).toBe(\"GoogleClient\");\n });\n });\n\n describe(\"LLMProvider.getClient error handling\", () => {\n it(\"throws UnsupportedModelError for unknown model without slash\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n // Unknown model without slash should throw UnsupportedModelError\n expect(() => {\n provider.getClient(\"some-unknown-model\", mockClientOptions);\n }).toThrow(UnsupportedModelError);\n });\n\n it(\"UnsupportedModelError includes provider/model format guidance\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n try {\n provider.getClient(\"some-unknown-model\", mockClientOptions);\n } catch (error) {\n expect((error as Error).message).toContain(\"provider/model\");\n }\n });\n\n it(\"throws UnsupportedAISDKModelProviderError for invalid provider in provider/model format\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n // Invalid provider but correct format\n expect(() => {\n provider.getClient(\"invalid-provider/some-model\", mockClientOptions);\n }).toThrow(UnsupportedAISDKModelProviderError);\n });\n\n it(\"UnsupportedAISDKModelProviderError lists valid providers\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n try {\n provider.getClient(\"invalid-provider/some-model\", mockClientOptions);\n } catch (error) {\n const message = (error as Error).message;\n // Should list valid providers\n expect(message).toContain(\"openai\");\n expect(message).toContain(\"anthropic\");\n expect(message).toContain(\"google\");\n }\n });\n });\n\n describe(\"new provider/model format\", () => {\n it(\"does not log deprecation warning for provider/model format\", () => {\n const logs: LogLine[] = [];\n const logger = (line: LogLine) => logs.push(line);\n const provider = new LLMProvider(logger);\n\n // Using the new format\n const client = provider.getClient(\"openai/gpt-4o\", mockClientOptions);\n\n expect(client).toBeDefined();\n\n // Should NOT have a deprecation warning\n const deprecationWarning = logs.find(\n (log) =>\n log.message.toLowerCase().includes(\"deprecated\") ||\n log.message.toLowerCase().includes(\"deprecation\"),\n );\n expect(deprecationWarning).toBeUndefined();\n });\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,40 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { extractModelName, resolveModel } from "../../lib/modelUtils.js";
3
- describe("extractModelName", () => {
4
- it("returns undefined for undefined input", () => {
5
- expect(extractModelName(undefined)).toBeUndefined();
6
- });
7
- it("returns the string as-is for a string input", () => {
8
- expect(extractModelName("openai/gpt-4o")).toBe("openai/gpt-4o");
9
- });
10
- it("returns modelName from an object input", () => {
11
- expect(extractModelName({ modelName: "anthropic/claude-sonnet-4-20250514" })).toBe("anthropic/claude-sonnet-4-20250514");
12
- });
13
- it("returns modelName from an object with extra properties", () => {
14
- expect(extractModelName({
15
- modelName: "openai/gpt-4o-mini",
16
- apiKey: "sk-test",
17
- baseURL: "https://custom.endpoint",
18
- })).toBe("openai/gpt-4o-mini");
19
- });
20
- });
21
- describe("resolveModel", () => {
22
- it("extracts provider and modelName from a string", () => {
23
- const result = resolveModel("openai/gpt-4o");
24
- expect(result.provider).toBe("openai");
25
- expect(result.modelName).toBe("gpt-4o");
26
- expect(result.clientOptions).toEqual({});
27
- });
28
- it("extracts clientOptions from an object config", () => {
29
- const result = resolveModel({
30
- modelName: "openai/gpt-4o",
31
- apiKey: "sk-test",
32
- });
33
- expect(result.provider).toBe("openai");
34
- expect(result.modelName).toBe("gpt-4o");
35
- expect(result.clientOptions).toMatchObject({ apiKey: "sk-test" });
36
- // modelName should not leak into clientOptions
37
- expect(result.clientOptions).not.toHaveProperty("modelName");
38
- });
39
- });
40
- //# sourceMappingURL=model-utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-utils.test.js","sourceRoot":"","sources":["../../../../tests/unit/model-utils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEzE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CACJ,gBAAgB,CAAC,EAAE,SAAS,EAAE,oCAAoC,EAAE,CAAC,CACtE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CACJ,gBAAgB,CAAC;YACf,SAAS,EAAE,oBAAoB;YAC/B,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,yBAAyB;SACnC,CAAC,CACH,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,SAAS,EAAE,eAAwB;YACnC,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,+CAA+C;QAC/C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { extractModelName, resolveModel } from \"../../lib/modelUtils.js\";\n\ndescribe(\"extractModelName\", () => {\n it(\"returns undefined for undefined input\", () => {\n expect(extractModelName(undefined)).toBeUndefined();\n });\n\n it(\"returns the string as-is for a string input\", () => {\n expect(extractModelName(\"openai/gpt-4o\")).toBe(\"openai/gpt-4o\");\n });\n\n it(\"returns modelName from an object input\", () => {\n expect(\n extractModelName({ modelName: \"anthropic/claude-sonnet-4-20250514\" }),\n ).toBe(\"anthropic/claude-sonnet-4-20250514\");\n });\n\n it(\"returns modelName from an object with extra properties\", () => {\n expect(\n extractModelName({\n modelName: \"openai/gpt-4o-mini\",\n apiKey: \"sk-test\",\n baseURL: \"https://custom.endpoint\",\n }),\n ).toBe(\"openai/gpt-4o-mini\");\n });\n});\n\ndescribe(\"resolveModel\", () => {\n it(\"extracts provider and modelName from a string\", () => {\n const result = resolveModel(\"openai/gpt-4o\");\n expect(result.provider).toBe(\"openai\");\n expect(result.modelName).toBe(\"gpt-4o\");\n expect(result.clientOptions).toEqual({});\n });\n\n it(\"extracts clientOptions from an object config\", () => {\n const result = resolveModel({\n modelName: \"openai/gpt-4o\" as never,\n apiKey: \"sk-test\",\n });\n expect(result.provider).toBe(\"openai\");\n expect(result.modelName).toBe(\"gpt-4o\");\n expect(result.clientOptions).toMatchObject({ apiKey: \"sk-test\" });\n // modelName should not leak into clientOptions\n expect(result.clientOptions).not.toHaveProperty(\"modelName\");\n });\n});\n"]}
@@ -1,82 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { CerebrasClient } from "../../lib/v3/llm/CerebrasClient.js";
3
- import { GroqClient } from "../../lib/v3/llm/GroqClient.js";
4
- function mockCompletionCreate() {
5
- return vi.fn().mockResolvedValue({
6
- id: "chatcmpl-test",
7
- choices: [
8
- {
9
- message: {
10
- role: "assistant",
11
- content: "ok",
12
- tool_calls: [],
13
- },
14
- finish_reason: "stop",
15
- },
16
- ],
17
- usage: {
18
- prompt_tokens: 1,
19
- completion_tokens: 1,
20
- total_tokens: 2,
21
- },
22
- });
23
- }
24
- function installMockClient(client) {
25
- const create = mockCompletionCreate();
26
- client.client = {
27
- chat: {
28
- completions: {
29
- create,
30
- },
31
- },
32
- };
33
- return create;
34
- }
35
- const logger = vi.fn();
36
- describe.each([
37
- [
38
- "GroqClient",
39
- () => new GroqClient({
40
- modelName: "groq-test-model",
41
- clientOptions: { apiKey: "test-key" },
42
- logger,
43
- }),
44
- ],
45
- [
46
- "CerebrasClient",
47
- () => new CerebrasClient({
48
- modelName: "cerebras-test-model",
49
- clientOptions: { apiKey: "test-key" },
50
- logger,
51
- }),
52
- ],
53
- ])("%s temperature handling", (_name, createClient) => {
54
- it("falls back to 0.7 when temperature is not provided", async () => {
55
- const client = createClient();
56
- const create = installMockClient(client);
57
- await client.createChatCompletion({
58
- options: {
59
- messages: [{ role: "user", content: "hello" }],
60
- },
61
- logger,
62
- });
63
- expect(create).toHaveBeenCalledWith(expect.objectContaining({
64
- temperature: 0.7,
65
- }));
66
- });
67
- it("preserves explicit temperature zero", async () => {
68
- const client = createClient();
69
- const create = installMockClient(client);
70
- await client.createChatCompletion({
71
- options: {
72
- messages: [{ role: "user", content: "hello" }],
73
- temperature: 0,
74
- },
75
- logger,
76
- });
77
- expect(create).toHaveBeenCalledWith(expect.objectContaining({
78
- temperature: 0,
79
- }));
80
- });
81
- });
82
- //# sourceMappingURL=openai-compatible-temperature.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-compatible-temperature.test.js","sourceRoot":"","sources":["../../../../tests/unit/openai-compatible-temperature.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAe5D,SAAS,oBAAoB;IAC3B,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;QAC/B,EAAE,EAAE,eAAe;QACnB,OAAO,EAAE;YACP;gBACE,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,EAAE;iBACf;gBACD,aAAa,EAAE,MAAM;aACtB;SACF;QACD,KAAK,EAAE;YACL,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,CAAC;SAChB;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACrC,MAAiC,CAAC,MAAM,GAAG;QAC1C,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX,MAAM;aACP;SACF;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAA8B,CAAC;AAEnD,QAAQ,CAAC,IAAI,CAAC;IACZ;QACE,YAAY;QACZ,GAAG,EAAE,CACH,IAAI,UAAU,CAAC;YACb,SAAS,EAAE,iBAAmC;YAC9C,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;YACrC,MAAM;SACP,CAAC;KACL;IACD;QACE,gBAAgB;QAChB,GAAG,EAAE,CACH,IAAI,cAAc,CAAC;YACjB,SAAS,EAAE,qBAAuC;YAClD,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;YACrC,MAAM;SACP,CAAC;KACL;CACF,CAAC,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;IACpD,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,MAAM,CAAC,oBAAoB,CAAC;YAChC,OAAO,EAAE;gBACP,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;aAC/C;YACD,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC;YACtB,WAAW,EAAE,GAAG;SACjB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,MAAM,CAAC,oBAAoB,CAAC;YAChC,OAAO,EAAE;gBACP,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBAC9C,WAAW,EAAE,CAAC;aACf;YACD,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACjC,MAAM,CAAC,gBAAgB,CAAC;YACtB,WAAW,EAAE,CAAC;SACf,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, it, vi } from \"vitest\";\nimport { CerebrasClient } from \"../../lib/v3/llm/CerebrasClient.js\";\nimport { GroqClient } from \"../../lib/v3/llm/GroqClient.js\";\nimport type { LLMClient } from \"../../lib/v3/llm/LLMClient.js\";\nimport type { LogLine } from \"../../lib/v3/types/public/logs.js\";\nimport type { AvailableModel } from \"../../lib/v3/types/public/model.js\";\n\ntype OpenAICompatibleClient = LLMClient & {\n client: {\n chat: {\n completions: {\n create: ReturnType<typeof vi.fn>;\n };\n };\n };\n};\n\nfunction mockCompletionCreate() {\n return vi.fn().mockResolvedValue({\n id: \"chatcmpl-test\",\n choices: [\n {\n message: {\n role: \"assistant\",\n content: \"ok\",\n tool_calls: [],\n },\n finish_reason: \"stop\",\n },\n ],\n usage: {\n prompt_tokens: 1,\n completion_tokens: 1,\n total_tokens: 2,\n },\n });\n}\n\nfunction installMockClient(client: LLMClient) {\n const create = mockCompletionCreate();\n (client as OpenAICompatibleClient).client = {\n chat: {\n completions: {\n create,\n },\n },\n };\n return create;\n}\n\nconst logger = vi.fn<(message: LogLine) => void>();\n\ndescribe.each([\n [\n \"GroqClient\",\n () =>\n new GroqClient({\n modelName: \"groq-test-model\" as AvailableModel,\n clientOptions: { apiKey: \"test-key\" },\n logger,\n }),\n ],\n [\n \"CerebrasClient\",\n () =>\n new CerebrasClient({\n modelName: \"cerebras-test-model\" as AvailableModel,\n clientOptions: { apiKey: \"test-key\" },\n logger,\n }),\n ],\n])(\"%s temperature handling\", (_name, createClient) => {\n it(\"falls back to 0.7 when temperature is not provided\", async () => {\n const client = createClient();\n const create = installMockClient(client);\n\n await client.createChatCompletion({\n options: {\n messages: [{ role: \"user\", content: \"hello\" }],\n },\n logger,\n });\n\n expect(create).toHaveBeenCalledWith(\n expect.objectContaining({\n temperature: 0.7,\n }),\n );\n });\n\n it(\"preserves explicit temperature zero\", async () => {\n const client = createClient();\n const create = installMockClient(client);\n\n await client.createChatCompletion({\n options: {\n messages: [{ role: \"user\", content: \"hello\" }],\n temperature: 0,\n },\n logger,\n });\n\n expect(create).toHaveBeenCalledWith(\n expect.objectContaining({\n temperature: 0,\n }),\n );\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,69 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { OpenAICUAClient } from "../../lib/v3/agent/OpenAICUAClient.js";
3
- function createClient() {
4
- return new OpenAICUAClient("openai", "computer-use-preview-2025-03-11", undefined, { apiKey: "test-key" });
5
- }
6
- describe("OpenAICUAClient", () => {
7
- it("exposes captchaSolvedProceed tool after a captcha context note", () => {
8
- const client = createClient();
9
- // Before captcha note — tool should not be active
10
- expect(client
11
- .captchaSolvedToolActive).toBe(false);
12
- // Simulate a captcha context note being added (as the CUA handler does)
13
- client.addContextNote("A captcha was automatically detected and solved — no further interaction needed.");
14
- expect(client
15
- .captchaSolvedToolActive).toBe(true);
16
- });
17
- it("does NOT activate captcha tool for non-captcha context notes", () => {
18
- const client = createClient();
19
- client.addContextNote("The page has finished loading.");
20
- expect(client
21
- .captchaSolvedToolActive).toBe(false);
22
- });
23
- it("deactivates captcha tool after takeAction handles the function call", async () => {
24
- const client = createClient();
25
- client.addContextNote("A captcha was solved.");
26
- expect(client
27
- .captchaSolvedToolActive).toBe(true);
28
- // Simulate the model calling the captchaSolvedProceed tool
29
- const result = await client.takeAction([
30
- {
31
- type: "function_call",
32
- name: "captchaSolvedProceed",
33
- call_id: "call-1",
34
- arguments: "{}",
35
- },
36
- ], vi.fn());
37
- // Tool should be deactivated
38
- expect(client
39
- .captchaSolvedToolActive).toBe(false);
40
- // Result should contain a function_call_output confirming proceed
41
- expect(result).toEqual([
42
- {
43
- type: "function_call_output",
44
- call_id: "call-1",
45
- output: expect.stringContaining("Continue completing"),
46
- },
47
- ]);
48
- });
49
- it("does NOT auto-continue follow-up questions without a captcha context", async () => {
50
- const client = createClient();
51
- const executeStepSpy = vi.spyOn(client, "executeStep");
52
- executeStepSpy.mockResolvedValueOnce({
53
- actions: [],
54
- message: "I've located the Submit button. Should I go ahead and submit it?",
55
- completed: true,
56
- nextInputItems: [],
57
- responseId: "response-1",
58
- usage: { input_tokens: 1, output_tokens: 1, inference_time_ms: 1 },
59
- });
60
- const result = await client.execute({
61
- options: { instruction: "Submit the form.", maxSteps: 10 },
62
- logger: vi.fn(),
63
- });
64
- // Should NOT have continued — the model's follow-up is treated as completion
65
- expect(executeStepSpy).toHaveBeenCalledTimes(1);
66
- expect(result.completed).toBe(true);
67
- });
68
- });
69
- //# sourceMappingURL=openai-cua-client.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-cua-client.test.js","sourceRoot":"","sources":["../../../../tests/unit/openai-cua-client.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it, vi } from \"vitest\";\nimport { OpenAICUAClient } from \"../../lib/v3/agent/OpenAICUAClient.js\";\n\nfunction createClient() {\n return new OpenAICUAClient(\n \"openai\",\n \"computer-use-preview-2025-03-11\",\n undefined,\n { apiKey: \"test-key\" },\n );\n}\n\ndescribe(\"OpenAICUAClient\", () => {\n it(\"exposes captchaSolvedProceed tool after a captcha context note\", () => {\n const client = createClient();\n\n // Before captcha note — tool should not be active\n expect(\n (client as unknown as { captchaSolvedToolActive: boolean })\n .captchaSolvedToolActive,\n ).toBe(false);\n\n // Simulate a captcha context note being added (as the CUA handler does)\n client.addContextNote(\n \"A captcha was automatically detected and solved — no further interaction needed.\",\n );\n\n expect(\n (client as unknown as { captchaSolvedToolActive: boolean })\n .captchaSolvedToolActive,\n ).toBe(true);\n });\n\n it(\"does NOT activate captcha tool for non-captcha context notes\", () => {\n const client = createClient();\n\n client.addContextNote(\"The page has finished loading.\");\n\n expect(\n (client as unknown as { captchaSolvedToolActive: boolean })\n .captchaSolvedToolActive,\n ).toBe(false);\n });\n\n it(\"deactivates captcha tool after takeAction handles the function call\", async () => {\n const client = createClient();\n client.addContextNote(\"A captcha was solved.\");\n\n expect(\n (client as unknown as { captchaSolvedToolActive: boolean })\n .captchaSolvedToolActive,\n ).toBe(true);\n\n // Simulate the model calling the captchaSolvedProceed tool\n const result = await (\n client as unknown as {\n takeAction: (\n output: unknown[],\n logger: (msg: unknown) => void,\n ) => Promise<unknown[]>;\n }\n ).takeAction(\n [\n {\n type: \"function_call\",\n name: \"captchaSolvedProceed\",\n call_id: \"call-1\",\n arguments: \"{}\",\n },\n ],\n vi.fn(),\n );\n\n // Tool should be deactivated\n expect(\n (client as unknown as { captchaSolvedToolActive: boolean })\n .captchaSolvedToolActive,\n ).toBe(false);\n\n // Result should contain a function_call_output confirming proceed\n expect(result).toEqual([\n {\n type: \"function_call_output\",\n call_id: \"call-1\",\n output: expect.stringContaining(\"Continue completing\"),\n },\n ]);\n });\n\n it(\"does NOT auto-continue follow-up questions without a captcha context\", async () => {\n const client = createClient();\n // No captcha context note — no tool should be exposed\n\n type ExecuteStepResult = {\n actions: Array<{ type: string }>;\n message: string;\n completed: boolean;\n nextInputItems: unknown[];\n responseId: string;\n usage: {\n input_tokens: number;\n output_tokens: number;\n inference_time_ms: number;\n };\n };\n\n const executeStepSpy = vi.spyOn(\n client as unknown as {\n executeStep: (\n inputItems: unknown[],\n previousResponseId: string | undefined,\n logger: (message: { message: string }) => void,\n ) => Promise<ExecuteStepResult>;\n },\n \"executeStep\",\n );\n\n executeStepSpy.mockResolvedValueOnce({\n actions: [],\n message:\n \"I've located the Submit button. Should I go ahead and submit it?\",\n completed: true,\n nextInputItems: [],\n responseId: \"response-1\",\n usage: { input_tokens: 1, output_tokens: 1, inference_time_ms: 1 },\n });\n\n const result = await client.execute({\n options: { instruction: \"Submit the form.\", maxSteps: 10 } as never,\n logger: vi.fn(),\n });\n\n // Should NOT have continued — the model's follow-up is treated as completion\n expect(executeStepSpy).toHaveBeenCalledTimes(1);\n expect(result.completed).toBe(true);\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,90 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { Page } from "../../lib/v3/understudy/page.js";
3
- import { MockCDPSession } from "./helpers/mockCDPSession.js";
4
- import { StagehandSetExtraHTTPHeadersError } from "../../lib/v3/types/public/sdkErrors.js";
5
- const makePage = (sessions) => {
6
- const mainSession = sessions[0] ?? new MockCDPSession({}, "main");
7
- const stub = {
8
- mainSession,
9
- sessions: new Map(sessions.map((s) => [s.id, s])),
10
- extraHTTPHeaders: {},
11
- // Bind the private helper from Page.prototype so setExtraHTTPHeaders can call it
12
- applyExtraHTTPHeadersToSession: Page.prototype
13
- .applyExtraHTTPHeadersToSession,
14
- };
15
- return stub;
16
- };
17
- describe("Page.setExtraHTTPHeaders", () => {
18
- const setExtraHTTPHeaders = Page.prototype.setExtraHTTPHeaders;
19
- it("sends headers to all sessions owned by the page", async () => {
20
- const sessionA = new MockCDPSession({}, "session-a");
21
- const sessionB = new MockCDPSession({}, "session-b");
22
- const page = makePage([sessionA, sessionB]);
23
- await setExtraHTTPHeaders.call(page, {
24
- "x-stagehand-test": "hello",
25
- });
26
- for (const session of [sessionA, sessionB]) {
27
- expect(session.callsFor("Network.enable").length).toBe(1);
28
- expect(session.callsFor("Network.setExtraHTTPHeaders")[0]?.params).toEqual({
29
- headers: { "x-stagehand-test": "hello" },
30
- });
31
- }
32
- });
33
- it("applies headers to mainSession even when sessions map is empty", async () => {
34
- const page = makePage([]);
35
- await setExtraHTTPHeaders.call(page, { "x-test": "value" });
36
- // mainSession should still receive headers even though it's not in the sessions map
37
- expect(page.mainSession.callsFor("Network.enable").length).toBe(1);
38
- expect(page.mainSession.callsFor("Network.setExtraHTTPHeaders")[0]?.params).toEqual({
39
- headers: { "x-test": "value" },
40
- });
41
- });
42
- it("throws StagehandSetExtraHTTPHeadersError with session failure details", async () => {
43
- const sessionA = new MockCDPSession({
44
- "Network.setExtraHTTPHeaders": () => {
45
- throw new Error("connection closed");
46
- },
47
- }, "session-a");
48
- const sessionB = new MockCDPSession({}, "session-b");
49
- const page = makePage([sessionA, sessionB]);
50
- let caughtError;
51
- try {
52
- await setExtraHTTPHeaders.call(page, {
53
- "x-stagehand-test": "yes",
54
- });
55
- }
56
- catch (error) {
57
- caughtError = error;
58
- }
59
- expect(caughtError).toBeInstanceOf(StagehandSetExtraHTTPHeadersError);
60
- expect(caughtError?.failures).toHaveLength(1);
61
- expect(caughtError?.failures[0]).toContain("session=session-a");
62
- expect(caughtError?.failures[0]).toContain("connection closed");
63
- // sessionB should still have been called successfully
64
- expect(sessionB.callsFor("Network.setExtraHTTPHeaders").length).toBe(1);
65
- });
66
- it("applies headers to sessions adopted after the call", async () => {
67
- const sessionA = new MockCDPSession({}, "session-a");
68
- const page = makePage([sessionA]);
69
- await setExtraHTTPHeaders.call(page, { "x-before": "yes" });
70
- // A new OOPIF session is adopted after headers were set
71
- const sessionB = new MockCDPSession({}, "session-b");
72
- page.sessions.set(sessionB.id, sessionB);
73
- // Simulate what adoptOopifSession does: replay headers onto the new session
74
- await page.applyExtraHTTPHeadersToSession.call(page, sessionB, page.extraHTTPHeaders);
75
- // The late-arriving session should have received the headers
76
- expect(sessionB.callsFor("Network.enable").length).toBe(1);
77
- expect(sessionB.callsFor("Network.setExtraHTTPHeaders")[0]?.params).toEqual({
78
- headers: { "x-before": "yes" },
79
- });
80
- });
81
- it("does not mutate the original headers object", async () => {
82
- const session = new MockCDPSession({}, "session-a");
83
- const page = makePage([session]);
84
- const original = { "x-custom": "value" };
85
- const frozen = { ...original };
86
- await setExtraHTTPHeaders.call(page, original);
87
- expect(original).toEqual(frozen);
88
- });
89
- });
90
- //# sourceMappingURL=page-extra-http-headers.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-extra-http-headers.test.js","sourceRoot":"","sources":["../../../../tests/unit/page-extra-http-headers.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { Page } from \"../../lib/v3/understudy/page.js\";\nimport { MockCDPSession } from \"./helpers/mockCDPSession.js\";\nimport { StagehandSetExtraHTTPHeadersError } from \"../../lib/v3/types/public/sdkErrors.js\";\n\ntype PageStub = {\n mainSession: MockCDPSession;\n sessions: Map<string, MockCDPSession>;\n extraHTTPHeaders: Record<string, string>;\n applyExtraHTTPHeadersToSession: (\n session: MockCDPSession,\n headers: Record<string, string>,\n ) => Promise<void>;\n};\n\nconst makePage = (sessions: MockCDPSession[]): PageStub => {\n const mainSession = sessions[0] ?? new MockCDPSession({}, \"main\");\n const stub: PageStub = {\n mainSession,\n sessions: new Map(sessions.map((s) => [s.id, s])),\n extraHTTPHeaders: {},\n // Bind the private helper from Page.prototype so setExtraHTTPHeaders can call it\n applyExtraHTTPHeadersToSession: (Page.prototype as unknown as PageStub)\n .applyExtraHTTPHeadersToSession,\n };\n return stub;\n};\n\ndescribe(\"Page.setExtraHTTPHeaders\", () => {\n const setExtraHTTPHeaders = Page.prototype.setExtraHTTPHeaders as (\n this: PageStub,\n headers: Record<string, string>,\n ) => Promise<void>;\n\n it(\"sends headers to all sessions owned by the page\", async () => {\n const sessionA = new MockCDPSession({}, \"session-a\");\n const sessionB = new MockCDPSession({}, \"session-b\");\n const page = makePage([sessionA, sessionB]);\n\n await setExtraHTTPHeaders.call(page, {\n \"x-stagehand-test\": \"hello\",\n });\n\n for (const session of [sessionA, sessionB]) {\n expect(session.callsFor(\"Network.enable\").length).toBe(1);\n expect(\n session.callsFor(\"Network.setExtraHTTPHeaders\")[0]?.params,\n ).toEqual({\n headers: { \"x-stagehand-test\": \"hello\" },\n });\n }\n });\n\n it(\"applies headers to mainSession even when sessions map is empty\", async () => {\n const page = makePage([]);\n\n await setExtraHTTPHeaders.call(page, { \"x-test\": \"value\" });\n\n // mainSession should still receive headers even though it's not in the sessions map\n expect(page.mainSession.callsFor(\"Network.enable\").length).toBe(1);\n expect(\n page.mainSession.callsFor(\"Network.setExtraHTTPHeaders\")[0]?.params,\n ).toEqual({\n headers: { \"x-test\": \"value\" },\n });\n });\n\n it(\"throws StagehandSetExtraHTTPHeadersError with session failure details\", async () => {\n const sessionA = new MockCDPSession(\n {\n \"Network.setExtraHTTPHeaders\": () => {\n throw new Error(\"connection closed\");\n },\n },\n \"session-a\",\n );\n const sessionB = new MockCDPSession({}, \"session-b\");\n const page = makePage([sessionA, sessionB]);\n\n let caughtError: StagehandSetExtraHTTPHeadersError | undefined;\n try {\n await setExtraHTTPHeaders.call(page, {\n \"x-stagehand-test\": \"yes\",\n });\n } catch (error) {\n caughtError = error as StagehandSetExtraHTTPHeadersError;\n }\n\n expect(caughtError).toBeInstanceOf(StagehandSetExtraHTTPHeadersError);\n expect(caughtError?.failures).toHaveLength(1);\n expect(caughtError?.failures[0]).toContain(\"session=session-a\");\n expect(caughtError?.failures[0]).toContain(\"connection closed\");\n\n // sessionB should still have been called successfully\n expect(sessionB.callsFor(\"Network.setExtraHTTPHeaders\").length).toBe(1);\n });\n\n it(\"applies headers to sessions adopted after the call\", async () => {\n const sessionA = new MockCDPSession({}, \"session-a\");\n const page = makePage([sessionA]);\n\n await setExtraHTTPHeaders.call(page, { \"x-before\": \"yes\" });\n\n // A new OOPIF session is adopted after headers were set\n const sessionB = new MockCDPSession({}, \"session-b\");\n page.sessions.set(sessionB.id, sessionB);\n\n // Simulate what adoptOopifSession does: replay headers onto the new session\n await page.applyExtraHTTPHeadersToSession.call(\n page,\n sessionB,\n page.extraHTTPHeaders,\n );\n\n // The late-arriving session should have received the headers\n expect(sessionB.callsFor(\"Network.enable\").length).toBe(1);\n expect(sessionB.callsFor(\"Network.setExtraHTTPHeaders\")[0]?.params).toEqual(\n {\n headers: { \"x-before\": \"yes\" },\n },\n );\n });\n\n it(\"does not mutate the original headers object\", async () => {\n const session = new MockCDPSession({}, \"session-a\");\n const page = makePage([session]);\n\n const original = { \"x-custom\": \"value\" };\n const frozen = { ...original };\n\n await setExtraHTTPHeaders.call(page, original);\n\n expect(original).toEqual(frozen);\n });\n});\n"]}