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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (919) 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/agent/utils/captureAriaTreeProbe.d.ts +35 -0
  12. package/dist/cjs/lib/v3/agent/utils/captureAriaTreeProbe.js +38 -0
  13. package/dist/cjs/lib/v3/agent/utils/captureAriaTreeProbe.js.map +1 -0
  14. package/dist/cjs/lib/v3/agent/utils/postStepProbeEvidence.d.ts +19 -0
  15. package/dist/cjs/lib/v3/agent/utils/postStepProbeEvidence.js +54 -0
  16. package/dist/cjs/lib/v3/agent/utils/postStepProbeEvidence.js.map +1 -0
  17. package/dist/cjs/lib/v3/agent/utils/toolOutputEvidence.d.ts +2 -0
  18. package/dist/cjs/lib/v3/agent/utils/toolOutputEvidence.js +62 -0
  19. package/dist/cjs/lib/v3/agent/utils/toolOutputEvidence.js.map +1 -0
  20. package/dist/cjs/lib/v3/agent/utils/wrapEvidenceCallback.d.ts +3 -0
  21. package/dist/cjs/lib/v3/agent/utils/wrapEvidenceCallback.js +25 -0
  22. package/dist/cjs/lib/v3/agent/utils/wrapEvidenceCallback.js.map +1 -0
  23. package/dist/cjs/lib/v3/api.d.ts +7 -1
  24. package/dist/cjs/lib/v3/api.js +100 -29
  25. package/dist/cjs/lib/v3/api.js.map +1 -1
  26. package/dist/cjs/lib/v3/dom/build/selectorRuntime.generated.d.ts +24 -0
  27. package/dist/cjs/lib/v3/dom/build/selectorRuntime.generated.js +31 -0
  28. package/dist/cjs/lib/v3/dom/build/selectorRuntime.generated.js.map +1 -0
  29. package/dist/cjs/lib/v3/handlers/extractHandler.js +19 -2
  30. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -1
  31. package/dist/cjs/lib/v3/handlers/observeHandler.js +2 -1
  32. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -1
  33. package/dist/cjs/lib/v3/handlers/v3AgentHandler.d.ts +1 -0
  34. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +83 -7
  35. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  36. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.d.ts +11 -0
  37. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +120 -5
  38. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  39. package/dist/cjs/lib/v3/index.d.ts +12 -0
  40. package/dist/cjs/lib/v3/index.js +19 -1
  41. package/dist/cjs/lib/v3/index.js.map +1 -1
  42. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  43. package/dist/cjs/lib/v3/launch/local.js +47 -7
  44. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  45. package/dist/cjs/lib/v3/llm/LLMProvider.d.ts +3 -0
  46. package/dist/cjs/lib/v3/llm/LLMProvider.js +28 -8
  47. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -1
  48. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  49. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  50. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -0
  51. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -1
  52. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  53. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  54. package/dist/cjs/lib/v3/types/public/agent.d.ts +7 -1
  55. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  56. package/dist/cjs/lib/v3/types/public/agentEvidenceEvents.d.ts +85 -0
  57. package/dist/cjs/lib/v3/types/public/agentEvidenceEvents.js +15 -0
  58. package/dist/cjs/lib/v3/types/public/agentEvidenceEvents.js.map +1 -0
  59. package/dist/cjs/lib/v3/types/public/api.d.ts +584 -65
  60. package/dist/cjs/lib/v3/types/public/api.js +107 -7
  61. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  62. package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
  63. package/dist/cjs/lib/v3/types/public/index.js +1 -0
  64. package/dist/cjs/lib/v3/types/public/index.js.map +1 -1
  65. package/dist/cjs/lib/v3/types/public/methods.d.ts +2 -0
  66. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -1
  67. package/dist/cjs/lib/v3/types/public/model.d.ts +23 -10
  68. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  69. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  70. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  71. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  72. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  73. package/dist/cjs/lib/v3/v3.d.ts +1 -0
  74. package/dist/cjs/lib/v3/v3.js +21 -47
  75. package/dist/cjs/lib/v3/v3.js.map +1 -1
  76. package/dist/cjs/lib/v3/verifier/evidenceNormalization.d.ts +7 -0
  77. package/dist/cjs/lib/v3/verifier/evidenceNormalization.js +100 -0
  78. package/dist/cjs/lib/v3/verifier/evidenceNormalization.js.map +1 -0
  79. package/dist/cjs/lib/v3/verifier/index.d.ts +6 -0
  80. package/dist/cjs/lib/v3/verifier/index.js +16 -0
  81. package/dist/cjs/lib/v3/verifier/index.js.map +1 -0
  82. package/dist/cjs/lib/v3/verifier/trajectory.d.ts +50 -0
  83. package/dist/cjs/lib/v3/verifier/trajectory.js +316 -0
  84. package/dist/cjs/lib/v3/verifier/trajectory.js.map +1 -0
  85. package/dist/cjs/lib/v3/verifier/types.d.ts +281 -0
  86. package/dist/cjs/lib/v3/verifier/types.js +10 -0
  87. package/dist/cjs/lib/v3/verifier/types.js.map +1 -0
  88. package/dist/cjs/lib/v3Evaluator.d.ts +29 -16
  89. package/dist/cjs/lib/v3Evaluator.js +184 -194
  90. package/dist/cjs/lib/v3Evaluator.js.map +1 -1
  91. package/dist/cjs/lib/v3LegacyEvaluator.d.ts +20 -0
  92. package/dist/cjs/lib/v3LegacyEvaluator.js +219 -0
  93. package/dist/cjs/lib/v3LegacyEvaluator.js.map +1 -0
  94. package/dist/cjs/lib/version.d.ts +1 -1
  95. package/dist/cjs/lib/version.js +1 -1
  96. package/dist/cjs/lib/version.js.map +1 -1
  97. package/dist/esm/lib/inference.d.ts +2 -1
  98. package/dist/esm/lib/inference.js +10 -3
  99. package/dist/esm/lib/inference.js.map +1 -1
  100. package/dist/esm/lib/prompt.d.ts +2 -2
  101. package/dist/esm/lib/prompt.js +19 -4
  102. package/dist/esm/lib/prompt.js.map +1 -1
  103. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  104. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  105. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  106. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  107. package/dist/esm/lib/v3/agent/utils/captureAriaTreeProbe.d.ts +35 -0
  108. package/dist/esm/lib/v3/agent/utils/captureAriaTreeProbe.js +35 -0
  109. package/dist/esm/lib/v3/agent/utils/captureAriaTreeProbe.js.map +1 -0
  110. package/dist/esm/lib/v3/agent/utils/postStepProbeEvidence.d.ts +19 -0
  111. package/dist/esm/lib/v3/agent/utils/postStepProbeEvidence.js +50 -0
  112. package/dist/esm/lib/v3/agent/utils/postStepProbeEvidence.js.map +1 -0
  113. package/dist/esm/lib/v3/agent/utils/toolOutputEvidence.d.ts +2 -0
  114. package/dist/esm/lib/v3/agent/utils/toolOutputEvidence.js +59 -0
  115. package/dist/esm/lib/v3/agent/utils/toolOutputEvidence.js.map +1 -0
  116. package/dist/esm/lib/v3/agent/utils/wrapEvidenceCallback.d.ts +3 -0
  117. package/dist/esm/lib/v3/agent/utils/wrapEvidenceCallback.js +22 -0
  118. package/dist/esm/lib/v3/agent/utils/wrapEvidenceCallback.js.map +1 -0
  119. package/dist/esm/lib/v3/api.d.ts +7 -1
  120. package/dist/esm/lib/v3/api.js +100 -29
  121. package/dist/esm/lib/v3/api.js.map +1 -1
  122. package/dist/esm/lib/v3/dom/build/selectorRuntime.generated.d.ts +24 -0
  123. package/dist/esm/lib/v3/dom/build/selectorRuntime.generated.js +28 -0
  124. package/dist/esm/lib/v3/dom/build/selectorRuntime.generated.js.map +1 -0
  125. package/dist/esm/lib/v3/handlers/extractHandler.js +19 -2
  126. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  127. package/dist/esm/lib/v3/handlers/observeHandler.js +2 -1
  128. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  129. package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +1 -0
  130. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +83 -7
  131. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  132. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +11 -0
  133. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +120 -5
  134. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  135. package/dist/esm/lib/v3/index.d.ts +12 -0
  136. package/dist/esm/lib/v3/index.js +10 -0
  137. package/dist/esm/lib/v3/index.js.map +1 -1
  138. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  139. package/dist/esm/lib/v3/launch/local.js +48 -8
  140. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  141. package/dist/esm/lib/v3/llm/LLMProvider.d.ts +3 -0
  142. package/dist/esm/lib/v3/llm/LLMProvider.js +28 -9
  143. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  144. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  145. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  146. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -0
  147. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  148. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  149. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  150. package/dist/esm/lib/v3/types/public/agent.d.ts +7 -1
  151. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  152. package/dist/esm/lib/v3/types/public/agentEvidenceEvents.d.ts +85 -0
  153. package/dist/esm/lib/v3/types/public/agentEvidenceEvents.js +14 -0
  154. package/dist/esm/lib/v3/types/public/agentEvidenceEvents.js.map +1 -0
  155. package/dist/esm/lib/v3/types/public/api.d.ts +584 -65
  156. package/dist/esm/lib/v3/types/public/api.js +105 -5
  157. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  158. package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
  159. package/dist/esm/lib/v3/types/public/index.js +1 -0
  160. package/dist/esm/lib/v3/types/public/index.js.map +1 -1
  161. package/dist/esm/lib/v3/types/public/methods.d.ts +2 -0
  162. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  163. package/dist/esm/lib/v3/types/public/model.d.ts +23 -10
  164. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  165. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  166. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  167. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  168. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  169. package/dist/esm/lib/v3/v3.d.ts +1 -0
  170. package/dist/esm/lib/v3/v3.js +21 -47
  171. package/dist/esm/lib/v3/v3.js.map +1 -1
  172. package/dist/esm/lib/v3/verifier/evidenceNormalization.d.ts +7 -0
  173. package/dist/esm/lib/v3/verifier/evidenceNormalization.js +93 -0
  174. package/dist/esm/lib/v3/verifier/evidenceNormalization.js.map +1 -0
  175. package/dist/esm/lib/v3/verifier/index.d.ts +6 -0
  176. package/dist/esm/lib/v3/verifier/index.js +3 -0
  177. package/dist/esm/lib/v3/verifier/index.js.map +1 -0
  178. package/dist/esm/lib/v3/verifier/trajectory.d.ts +50 -0
  179. package/dist/esm/lib/v3/verifier/trajectory.js +273 -0
  180. package/dist/esm/lib/v3/verifier/trajectory.js.map +1 -0
  181. package/dist/esm/lib/v3/verifier/types.d.ts +281 -0
  182. package/dist/esm/lib/v3/verifier/types.js +9 -0
  183. package/dist/esm/lib/v3/verifier/types.js.map +1 -0
  184. package/dist/esm/lib/v3Evaluator.d.ts +29 -16
  185. package/dist/esm/lib/v3Evaluator.js +183 -193
  186. package/dist/esm/lib/v3Evaluator.js.map +1 -1
  187. package/dist/esm/lib/v3LegacyEvaluator.d.ts +20 -0
  188. package/dist/esm/lib/v3LegacyEvaluator.js +215 -0
  189. package/dist/esm/lib/v3LegacyEvaluator.js.map +1 -0
  190. package/dist/esm/lib/version.d.ts +1 -1
  191. package/dist/esm/lib/version.js +1 -1
  192. package/dist/esm/lib/version.js.map +1 -1
  193. package/package.json +33 -21
  194. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  195. package/dist/cjs/tests/cache-variables.test.js +0 -221
  196. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  197. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  198. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  199. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  200. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  201. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  202. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  203. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  204. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  205. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  206. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  207. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  208. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  209. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  210. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  211. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  212. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  213. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  214. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  215. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  216. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  217. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  218. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  219. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  220. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  221. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  222. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  223. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  224. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  225. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  226. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  227. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  228. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  229. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  230. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  231. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  232. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  233. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  234. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  235. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  236. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  237. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  238. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  239. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  240. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  241. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  242. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  243. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  244. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  245. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  246. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  247. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  248. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  249. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  250. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  251. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  252. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  253. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  254. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  255. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  256. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  257. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  258. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  259. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  260. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  261. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  262. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  263. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  264. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  265. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  266. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  267. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  268. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  269. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  270. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  271. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  272. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  273. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  274. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  275. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  276. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  277. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  278. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  279. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  280. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  281. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  282. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  283. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  284. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  285. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  286. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  287. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  288. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  289. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  290. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  291. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  292. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  293. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  294. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  295. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  296. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  297. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  298. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  299. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  300. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  301. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  302. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  303. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  304. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  305. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  306. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  307. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  308. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  309. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  310. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  311. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  312. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  313. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  314. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  315. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  316. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  317. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  318. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  319. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  320. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  321. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  322. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  323. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  324. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  325. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  326. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  327. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  328. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  329. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  330. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  331. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  332. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  333. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  334. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  335. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  336. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  337. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  338. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  339. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  340. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  341. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  342. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  343. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  344. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  345. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  346. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  347. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  348. package/dist/cjs/tests/integration/testUtils.js +0 -188
  349. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  350. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  351. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  352. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  353. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  354. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  355. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  356. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  357. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  358. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  359. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  360. package/dist/cjs/tests/integration/v3.config.js +0 -11
  361. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  362. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  363. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  364. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  365. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  366. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  367. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  368. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  369. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  370. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  371. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  372. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  373. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  374. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  375. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  376. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  377. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  378. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  379. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  380. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  381. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  382. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  383. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  384. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  385. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  386. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  387. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  388. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  389. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  390. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  391. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  392. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  393. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  394. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  395. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  396. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  397. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  398. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  399. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  400. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  401. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  402. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  403. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  404. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  405. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -133
  406. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  407. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  408. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  409. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  410. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  411. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  412. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  413. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  414. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -62
  415. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  416. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  417. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  418. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  419. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  420. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  421. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  422. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  423. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  424. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  425. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  426. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  427. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  428. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  429. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  430. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  431. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  432. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  433. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  434. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  435. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  436. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  437. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  438. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  439. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  440. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  441. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  442. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  443. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  444. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  445. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  446. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  447. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  448. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  449. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  450. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  451. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  452. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  453. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  454. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  455. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  456. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  457. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  458. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  459. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  460. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  461. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  462. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  463. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  464. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  465. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  466. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  467. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  468. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  469. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  470. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  471. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  472. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  473. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  474. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  475. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  476. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  477. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  478. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  479. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  480. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  481. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  482. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  483. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  484. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  485. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  486. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  487. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  488. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  489. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  490. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  491. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  492. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  493. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  494. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  495. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  496. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  497. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  498. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  499. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  500. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  501. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  502. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  503. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  504. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  505. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  506. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  507. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  508. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  509. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  510. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  511. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  512. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  513. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  514. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  515. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  516. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  517. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  518. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  519. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  520. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  521. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  522. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  523. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  524. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  525. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  526. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  527. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  528. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  529. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  530. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  531. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  532. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  533. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  534. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  535. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  536. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  537. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  538. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  539. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  540. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  541. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  542. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  543. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -897
  544. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  545. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  546. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  547. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  548. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  549. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  550. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  551. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  552. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  553. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  554. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  555. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  556. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  557. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  558. package/dist/esm/tests/cache-variables.test.js +0 -219
  559. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  560. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  561. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  562. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  563. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  564. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  565. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  566. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  567. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  568. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  569. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  570. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  571. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  572. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  573. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  574. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  575. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  576. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  577. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  578. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  579. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  580. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  581. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  582. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  583. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  584. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  585. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  586. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  587. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  588. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  589. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  590. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  591. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  592. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  593. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  594. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  595. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  596. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  597. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  598. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  599. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  600. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  601. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  602. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  603. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  604. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  605. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  606. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  607. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  608. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  609. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  610. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  611. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  612. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  613. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  614. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  615. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  616. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  617. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  618. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  619. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  620. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  621. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  622. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  623. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  624. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  625. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  626. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  627. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  628. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  629. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  630. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  631. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  632. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  633. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  634. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  635. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  636. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  637. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  638. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  639. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  640. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  641. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  642. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  643. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  644. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  645. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  646. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  647. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  648. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  649. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  650. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  651. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  652. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  653. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  654. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  655. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  656. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  657. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  658. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  659. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  660. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  661. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  662. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  663. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  664. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  665. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  666. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  667. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  668. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  669. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  670. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  671. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  672. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  673. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  674. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  675. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  676. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  677. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  678. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  679. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  680. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  681. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  682. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  683. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  684. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  685. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  686. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  687. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  688. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  689. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  690. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  691. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  692. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  693. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  694. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  695. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  696. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  697. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  698. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  699. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  700. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  701. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  702. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  703. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  704. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  705. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  706. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  707. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  708. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  709. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  710. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  711. package/dist/esm/tests/integration/testUtils.js +0 -178
  712. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  713. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  714. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  715. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  716. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  717. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  718. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  719. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  720. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  721. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  722. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  723. package/dist/esm/tests/integration/v3.config.js +0 -7
  724. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  725. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  726. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  727. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  728. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  729. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  730. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  731. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  732. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  733. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  734. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  735. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  736. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  737. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  738. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  739. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  740. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  741. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  742. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  743. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  744. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  745. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  746. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  747. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  748. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  749. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  750. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  751. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  752. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  753. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  754. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  755. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  756. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  757. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  758. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  759. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  760. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  761. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  762. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  763. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  764. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  765. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  766. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  767. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  768. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -131
  769. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  770. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  771. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  772. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  773. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  774. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  775. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  776. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  777. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -60
  778. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  779. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  780. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  781. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  782. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  783. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  784. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  785. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  786. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  787. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  788. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  789. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  790. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  791. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  792. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  793. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  794. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  795. package/dist/esm/tests/unit/cookies.test.js +0 -909
  796. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  797. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  798. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  799. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  800. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  801. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  802. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  803. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  804. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  805. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  806. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  807. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  808. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  809. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  810. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  811. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  812. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  813. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  814. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  815. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  816. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  817. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  818. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  819. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  820. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  821. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  822. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  823. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  824. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  825. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  826. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  827. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  828. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  829. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  830. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  831. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  832. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  833. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  834. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  835. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  836. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  837. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  838. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  839. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  840. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  841. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  842. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  843. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  844. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  845. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  846. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  847. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  848. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  849. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  850. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  851. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  852. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  853. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  854. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  855. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  856. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  857. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  858. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  859. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  860. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  861. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  862. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  863. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  864. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  865. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  866. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  867. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  868. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  869. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  870. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  871. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  872. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  873. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  874. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  875. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  876. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  877. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  878. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  879. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  880. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  881. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  882. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  883. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  884. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  885. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  886. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  887. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  888. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  889. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  890. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  891. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  892. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  893. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  894. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  895. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  896. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  897. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  898. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  899. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  900. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  901. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  902. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  903. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  904. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  905. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  906. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -862
  907. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  908. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  909. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  910. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  911. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  912. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  913. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  914. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  915. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  916. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  917. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  918. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  919. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsdom_1 = require("jsdom");
4
- const vitest_1 = require("vitest");
5
- const xpathResolver_js_1 = require("../../lib/v3/dom/locatorScripts/xpathResolver.js");
6
- const globalRef = globalThis;
7
- const originalGlobals = {
8
- window: globalRef.window,
9
- document: globalRef.document,
10
- Node: globalRef.Node,
11
- NodeFilter: globalRef.NodeFilter,
12
- Element: globalRef.Element,
13
- HTMLElement: globalRef.HTMLElement,
14
- Document: globalRef.Document,
15
- DocumentFragment: globalRef.DocumentFragment,
16
- ShadowRoot: globalRef.ShadowRoot,
17
- XPathResult: globalRef.XPathResult,
18
- };
19
- let dom;
20
- const installDomGlobals = () => {
21
- const win = dom.window;
22
- globalRef.window = win;
23
- globalRef.document = win.document;
24
- globalRef.Node = win.Node;
25
- globalRef.NodeFilter = win.NodeFilter;
26
- globalRef.Element = win.Element;
27
- globalRef.HTMLElement = win.HTMLElement;
28
- globalRef.Document = win.Document;
29
- globalRef.DocumentFragment =
30
- win.DocumentFragment;
31
- globalRef.ShadowRoot = win.ShadowRoot;
32
- globalRef.XPathResult = win.XPathResult;
33
- };
34
- const restoreDomGlobals = () => {
35
- for (const [key, value] of Object.entries(originalGlobals)) {
36
- if (value === undefined) {
37
- delete globalRef[key];
38
- }
39
- else {
40
- globalRef[key] = value;
41
- }
42
- }
43
- };
44
- (0, vitest_1.describe)("xpathResolver composed traversal", () => {
45
- (0, vitest_1.beforeAll)(() => {
46
- dom = new jsdom_1.JSDOM("<!doctype html><html><body></body></html>");
47
- installDomGlobals();
48
- });
49
- (0, vitest_1.afterAll)(() => {
50
- dom.window.close();
51
- restoreDomGlobals();
52
- });
53
- (0, vitest_1.beforeEach)(() => {
54
- document.body.innerHTML = "";
55
- });
56
- (0, vitest_1.it)("counts matches across light + shadow DOM without double counting", () => {
57
- document.body.innerHTML =
58
- '<div id="light-1"></div>' +
59
- '<shadow-host id="host"></shadow-host>' +
60
- '<div id="light-2"></div>';
61
- const host = document.getElementById("host");
62
- const shadow = host.attachShadow({ mode: "open" });
63
- shadow.innerHTML = '<div id="shadow-1"></div><div id="shadow-2"></div>';
64
- (0, vitest_1.expect)((0, xpathResolver_js_1.countXPathMatches)("//div")).toBe(4);
65
- });
66
- (0, vitest_1.it)("resolves nth over composed tree in document-order DFS", () => {
67
- document.body.innerHTML =
68
- '<div id="light-1"></div>' +
69
- '<shadow-host id="host"></shadow-host>' +
70
- '<div id="light-2"></div>';
71
- const host = document.getElementById("host");
72
- const shadow = host.attachShadow({ mode: "open" });
73
- shadow.innerHTML = '<div id="shadow-1"></div><div id="shadow-2"></div>';
74
- (0, vitest_1.expect)((0, xpathResolver_js_1.resolveXPathAtIndex)("//div", 0)?.id).toBe("light-1");
75
- (0, vitest_1.expect)((0, xpathResolver_js_1.resolveXPathAtIndex)("//div", 1)?.id).toBe("shadow-1");
76
- (0, vitest_1.expect)((0, xpathResolver_js_1.resolveXPathAtIndex)("//div", 2)?.id).toBe("shadow-2");
77
- (0, vitest_1.expect)((0, xpathResolver_js_1.resolveXPathAtIndex)("//div", 3)?.id).toBe("light-2");
78
- });
79
- });
80
- //# sourceMappingURL=xpath-resolver.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xpath-resolver.test.js","sourceRoot":"","sources":["../../../../tests/unit/xpath-resolver.test.ts"],"names":[],"mappings":";;AAAA,iCAA8B;AAC9B,mCAA+E;AAC/E,uFAG0D;AAe1D,MAAM,SAAS,GAAG,UAAqD,CAAC;AACxE,MAAM,eAAe,GAAwB;IAC3C,MAAM,EAAE,SAAS,CAAC,MAAM;IACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;IACpB,UAAU,EAAE,SAAS,CAAC,UAAU;IAChC,OAAO,EAAE,SAAS,CAAC,OAAO;IAC1B,WAAW,EAAE,SAAS,CAAC,WAAW;IAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;IAC5C,UAAU,EAAE,SAAS,CAAC,UAAU;IAChC,WAAW,EAAE,SAAS,CAAC,WAAW;CACnC,CAAC;AAEF,IAAI,GAAU,CAAC;AAEf,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACvB,SAAS,CAAC,MAAM,GAAG,GAA4C,CAAC;IAChE,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAClC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,IAA8B,CAAC;IACpD,SAAS,CAAC,UAAU,GAAG,GAAG,CAAC,UAA0C,CAAC;IACtE,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC,OAAoC,CAAC;IAC7D,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,WAA4C,CAAC;IACzE,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAsC,CAAC;IAChE,SAAS,CAAC,gBAAgB;QACxB,GAAG,CAAC,gBAAsD,CAAC;IAC7D,SAAS,CAAC,UAAU,GAAG,GAAG,CAAC,UAA0C,CAAC;IACtE,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,WAA4C,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAQ,SAAqC,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACL,SAAqC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,IAAA,iBAAQ,EAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,GAAG,GAAG,IAAI,aAAK,CAAC,2CAA2C,CAAC,CAAC;QAC7D,iBAAiB,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,GAAG,EAAE;QACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,iBAAiB,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,QAAQ,CAAC,IAAI,CAAC,SAAS;YACrB,0BAA0B;gBAC1B,uCAAuC;gBACvC,0BAA0B,CAAC;QAE7B,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAgB,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,oDAAoD,CAAC;QAExE,IAAA,eAAM,EAAC,IAAA,oCAAiB,EAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,QAAQ,CAAC,IAAI,CAAC,SAAS;YACrB,0BAA0B;gBAC1B,uCAAuC;gBACvC,0BAA0B,CAAC;QAE7B,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAgB,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,oDAAoD,CAAC;QAExE,IAAA,eAAM,EAAC,IAAA,sCAAmB,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAA,eAAM,EAAC,IAAA,sCAAmB,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAA,eAAM,EAAC,IAAA,sCAAmB,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAA,eAAM,EAAC,IAAA,sCAAmB,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { JSDOM } from \"jsdom\";\nimport { afterAll, beforeAll, beforeEach, describe, expect, it } from \"vitest\";\nimport {\n countXPathMatches,\n resolveXPathAtIndex,\n} from \"../../lib/v3/dom/locatorScripts/xpathResolver.js\";\n\ntype DomGlobals = {\n window: Window & typeof globalThis;\n document: Document;\n Node: typeof Node;\n NodeFilter: typeof NodeFilter;\n Element: typeof Element;\n HTMLElement: typeof HTMLElement;\n Document: typeof Document;\n DocumentFragment: typeof DocumentFragment;\n ShadowRoot: typeof ShadowRoot;\n XPathResult: typeof XPathResult;\n};\n\nconst globalRef = globalThis as typeof globalThis & Partial<DomGlobals>;\nconst originalGlobals: Partial<DomGlobals> = {\n window: globalRef.window,\n document: globalRef.document,\n Node: globalRef.Node,\n NodeFilter: globalRef.NodeFilter,\n Element: globalRef.Element,\n HTMLElement: globalRef.HTMLElement,\n Document: globalRef.Document,\n DocumentFragment: globalRef.DocumentFragment,\n ShadowRoot: globalRef.ShadowRoot,\n XPathResult: globalRef.XPathResult,\n};\n\nlet dom: JSDOM;\n\nconst installDomGlobals = () => {\n const win = dom.window;\n globalRef.window = win as unknown as Window & typeof globalThis;\n globalRef.document = win.document;\n globalRef.Node = win.Node as unknown as typeof Node;\n globalRef.NodeFilter = win.NodeFilter as unknown as typeof NodeFilter;\n globalRef.Element = win.Element as unknown as typeof Element;\n globalRef.HTMLElement = win.HTMLElement as unknown as typeof HTMLElement;\n globalRef.Document = win.Document as unknown as typeof Document;\n globalRef.DocumentFragment =\n win.DocumentFragment as unknown as typeof DocumentFragment;\n globalRef.ShadowRoot = win.ShadowRoot as unknown as typeof ShadowRoot;\n globalRef.XPathResult = win.XPathResult as unknown as typeof XPathResult;\n};\n\nconst restoreDomGlobals = () => {\n for (const [key, value] of Object.entries(originalGlobals)) {\n if (value === undefined) {\n delete (globalRef as Record<string, unknown>)[key];\n } else {\n (globalRef as Record<string, unknown>)[key] = value;\n }\n }\n};\n\ndescribe(\"xpathResolver composed traversal\", () => {\n beforeAll(() => {\n dom = new JSDOM(\"<!doctype html><html><body></body></html>\");\n installDomGlobals();\n });\n\n afterAll(() => {\n dom.window.close();\n restoreDomGlobals();\n });\n\n beforeEach(() => {\n document.body.innerHTML = \"\";\n });\n\n it(\"counts matches across light + shadow DOM without double counting\", () => {\n document.body.innerHTML =\n '<div id=\"light-1\"></div>' +\n '<shadow-host id=\"host\"></shadow-host>' +\n '<div id=\"light-2\"></div>';\n\n const host = document.getElementById(\"host\") as HTMLElement;\n const shadow = host.attachShadow({ mode: \"open\" });\n shadow.innerHTML = '<div id=\"shadow-1\"></div><div id=\"shadow-2\"></div>';\n\n expect(countXPathMatches(\"//div\")).toBe(4);\n });\n\n it(\"resolves nth over composed tree in document-order DFS\", () => {\n document.body.innerHTML =\n '<div id=\"light-1\"></div>' +\n '<shadow-host id=\"host\"></shadow-host>' +\n '<div id=\"light-2\"></div>';\n\n const host = document.getElementById(\"host\") as HTMLElement;\n const shadow = host.attachShadow({ mode: \"open\" });\n shadow.innerHTML = '<div id=\"shadow-1\"></div><div id=\"shadow-2\"></div>';\n\n expect(resolveXPathAtIndex(\"//div\", 0)?.id).toBe(\"light-1\");\n expect(resolveXPathAtIndex(\"//div\", 1)?.id).toBe(\"shadow-1\");\n expect(resolveXPathAtIndex(\"//div\", 2)?.id).toBe(\"shadow-2\");\n expect(resolveXPathAtIndex(\"//div\", 3)?.id).toBe(\"light-2\");\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,149 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const vitest_1 = require("vitest");
37
- const z3 = __importStar(require("zod/v3"));
38
- const zod_1 = require("zod");
39
- const handlers_js_1 = require("../../lib/v3/types/private/handlers.js");
40
- /**
41
- * Tests for Zod v3/v4 compatibility with the SupportedUnderstudyAction enum.
42
- *
43
- * This test ensures that z.enum() works correctly with both Zod v3 and v4.
44
- * The key issue is that z.enum() in Zod v3 does NOT accept TypeScript enums directly -
45
- * it only accepts string literal tuples. For TypeScript enums, you need to use
46
- * Object.values() to convert the enum to an array first.
47
- *
48
- * In Zod v4, z.enum() was updated to accept TypeScript enums directly, but for
49
- * backwards compatibility, we should use Object.values() which works with both.
50
- *
51
- * See PR #1613: https://github.com/browserbase/stagehand/pull/1613
52
- */
53
- (0, vitest_1.describe)("SupportedUnderstudyAction enum Zod compatibility", () => {
54
- const testInput = {
55
- elementId: "1-2",
56
- method: "click",
57
- arguments: [],
58
- };
59
- const invalidInput = {
60
- elementId: "1-2",
61
- method: "invalidMethod",
62
- arguments: [],
63
- };
64
- (0, vitest_1.it)("Object.values(SupportedUnderstudyAction) produces correct array for z.enum()", () => {
65
- const enumValues = Object.values(handlers_js_1.SupportedUnderstudyAction);
66
- (0, vitest_1.expect)(enumValues).toContain("click");
67
- (0, vitest_1.expect)(enumValues).toContain("fill");
68
- (0, vitest_1.expect)(enumValues).toContain("type");
69
- (0, vitest_1.expect)(enumValues).toContain("press");
70
- (0, vitest_1.expect)(enumValues).toContain("scrollTo");
71
- (0, vitest_1.expect)(enumValues).toContain("nextChunk");
72
- (0, vitest_1.expect)(enumValues).toContain("prevChunk");
73
- (0, vitest_1.expect)(enumValues).toContain("selectOptionFromDropdown");
74
- (0, vitest_1.expect)(enumValues).toContain("hover");
75
- (0, vitest_1.expect)(enumValues).toContain("doubleClick");
76
- (0, vitest_1.expect)(enumValues).toContain("dragAndDrop");
77
- (0, vitest_1.expect)(enumValues.length).toBe(11);
78
- });
79
- (0, vitest_1.it)("Zod v3 z.enum() with Object.values(SupportedUnderstudyAction) works correctly", () => {
80
- const enumValues = Object.values(handlers_js_1.SupportedUnderstudyAction);
81
- const schema = z3.z.object({
82
- elementId: z3.z.string(),
83
- method: z3.z.enum(enumValues),
84
- arguments: z3.z.array(z3.z.string()),
85
- });
86
- // Valid input should pass
87
- const validResult = schema.safeParse(testInput);
88
- (0, vitest_1.expect)(validResult.success).toBe(true);
89
- if (validResult.success) {
90
- (0, vitest_1.expect)(validResult.data.method).toBe("click");
91
- }
92
- // Invalid input should fail
93
- const invalidResult = schema.safeParse(invalidInput);
94
- (0, vitest_1.expect)(invalidResult.success).toBe(false);
95
- });
96
- (0, vitest_1.it)("Zod v4 z.enum() with Object.values(SupportedUnderstudyAction) works correctly", () => {
97
- const enumValues = Object.values(handlers_js_1.SupportedUnderstudyAction);
98
- const schema = zod_1.z.object({
99
- elementId: zod_1.z.string(),
100
- method: zod_1.z.enum(enumValues),
101
- arguments: zod_1.z.array(zod_1.z.string()),
102
- });
103
- // Valid input should pass
104
- const validResult = schema.safeParse(testInput);
105
- (0, vitest_1.expect)(validResult.success).toBe(true);
106
- if (validResult.success) {
107
- (0, vitest_1.expect)(validResult.data.method).toBe("click");
108
- }
109
- // Invalid input should fail
110
- const invalidResult = schema.safeParse(invalidInput);
111
- (0, vitest_1.expect)(invalidResult.success).toBe(false);
112
- });
113
- (0, vitest_1.it)("Zod v3 z.enum() with raw TypeScript enum throws error on parse", () => {
114
- // This demonstrates the bug that PR #1613 would introduce
115
- // In Zod v3, z.enum() does NOT accept TypeScript enums directly
116
- // The schema creation might succeed, but parsing will fail
117
- const schema = z3.z.object({
118
- elementId: z3.z.string(),
119
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
- method: z3.z.enum(handlers_js_1.SupportedUnderstudyAction),
121
- arguments: z3.z.array(z3.z.string()),
122
- });
123
- // This should throw an error because the enum is not iterable
124
- (0, vitest_1.expect)(() => schema.safeParse(testInput)).toThrow("object is not iterable");
125
- });
126
- (0, vitest_1.it)("Zod v4 z.enum() with raw TypeScript enum works (but not v3 compatible)", () => {
127
- // Zod v4 allows passing TypeScript enums directly to z.enum()
128
- // But this approach is NOT backwards compatible with v3
129
- const schema = zod_1.z.object({
130
- elementId: zod_1.z.string(),
131
- method: zod_1.z.enum(handlers_js_1.SupportedUnderstudyAction),
132
- arguments: zod_1.z.array(zod_1.z.string()),
133
- });
134
- // In v4, this works fine
135
- const validResult = schema.safeParse(testInput);
136
- (0, vitest_1.expect)(validResult.success).toBe(true);
137
- });
138
- (0, vitest_1.it)("All SupportedUnderstudyAction values are valid enum options", () => {
139
- const enumValues = Object.values(handlers_js_1.SupportedUnderstudyAction);
140
- // Test with both v3 and v4 schemas
141
- const v3Schema = z3.z.enum(enumValues);
142
- const v4Schema = zod_1.z.enum(enumValues);
143
- for (const action of enumValues) {
144
- (0, vitest_1.expect)(v3Schema.safeParse(action).success).toBe(true);
145
- (0, vitest_1.expect)(v4Schema.safeParse(action).success).toBe(true);
146
- }
147
- });
148
- });
149
- //# sourceMappingURL=zod-enum-compatibility.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod-enum-compatibility.test.js","sourceRoot":"","sources":["../../../../tests/unit/zod-enum-compatibility.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport * as z3 from \"zod/v3\";\nimport { z as z4 } from \"zod\";\nimport { SupportedUnderstudyAction } from \"../../lib/v3/types/private/handlers.js\";\n\n/**\n * Tests for Zod v3/v4 compatibility with the SupportedUnderstudyAction enum.\n *\n * This test ensures that z.enum() works correctly with both Zod v3 and v4.\n * The key issue is that z.enum() in Zod v3 does NOT accept TypeScript enums directly -\n * it only accepts string literal tuples. For TypeScript enums, you need to use\n * Object.values() to convert the enum to an array first.\n *\n * In Zod v4, z.enum() was updated to accept TypeScript enums directly, but for\n * backwards compatibility, we should use Object.values() which works with both.\n *\n * See PR #1613: https://github.com/browserbase/stagehand/pull/1613\n */\ndescribe(\"SupportedUnderstudyAction enum Zod compatibility\", () => {\n const testInput = {\n elementId: \"1-2\",\n method: \"click\",\n arguments: [] as string[],\n };\n\n const invalidInput = {\n elementId: \"1-2\",\n method: \"invalidMethod\",\n arguments: [] as string[],\n };\n\n it(\"Object.values(SupportedUnderstudyAction) produces correct array for z.enum()\", () => {\n const enumValues = Object.values(\n SupportedUnderstudyAction,\n ) as unknown as readonly [string, ...string[]];\n\n expect(enumValues).toContain(\"click\");\n expect(enumValues).toContain(\"fill\");\n expect(enumValues).toContain(\"type\");\n expect(enumValues).toContain(\"press\");\n expect(enumValues).toContain(\"scrollTo\");\n expect(enumValues).toContain(\"nextChunk\");\n expect(enumValues).toContain(\"prevChunk\");\n expect(enumValues).toContain(\"selectOptionFromDropdown\");\n expect(enumValues).toContain(\"hover\");\n expect(enumValues).toContain(\"doubleClick\");\n expect(enumValues).toContain(\"dragAndDrop\");\n expect(enumValues.length).toBe(11);\n });\n\n it(\"Zod v3 z.enum() with Object.values(SupportedUnderstudyAction) works correctly\", () => {\n const enumValues = Object.values(\n SupportedUnderstudyAction,\n ) as unknown as readonly [string, ...string[]];\n\n const schema = z3.z.object({\n elementId: z3.z.string(),\n method: z3.z.enum(enumValues),\n arguments: z3.z.array(z3.z.string()),\n });\n\n // Valid input should pass\n const validResult = schema.safeParse(testInput);\n expect(validResult.success).toBe(true);\n if (validResult.success) {\n expect(validResult.data.method).toBe(\"click\");\n }\n\n // Invalid input should fail\n const invalidResult = schema.safeParse(invalidInput);\n expect(invalidResult.success).toBe(false);\n });\n\n it(\"Zod v4 z.enum() with Object.values(SupportedUnderstudyAction) works correctly\", () => {\n const enumValues = Object.values(\n SupportedUnderstudyAction,\n ) as unknown as readonly [string, ...string[]];\n\n const schema = z4.object({\n elementId: z4.string(),\n method: z4.enum(enumValues),\n arguments: z4.array(z4.string()),\n });\n\n // Valid input should pass\n const validResult = schema.safeParse(testInput);\n expect(validResult.success).toBe(true);\n if (validResult.success) {\n expect(validResult.data.method).toBe(\"click\");\n }\n\n // Invalid input should fail\n const invalidResult = schema.safeParse(invalidInput);\n expect(invalidResult.success).toBe(false);\n });\n\n it(\"Zod v3 z.enum() with raw TypeScript enum throws error on parse\", () => {\n // This demonstrates the bug that PR #1613 would introduce\n // In Zod v3, z.enum() does NOT accept TypeScript enums directly\n // The schema creation might succeed, but parsing will fail\n\n const schema = z3.z.object({\n elementId: z3.z.string(),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n method: z3.z.enum(SupportedUnderstudyAction as any),\n arguments: z3.z.array(z3.z.string()),\n });\n\n // This should throw an error because the enum is not iterable\n expect(() => schema.safeParse(testInput)).toThrow(\"object is not iterable\");\n });\n\n it(\"Zod v4 z.enum() with raw TypeScript enum works (but not v3 compatible)\", () => {\n // Zod v4 allows passing TypeScript enums directly to z.enum()\n // But this approach is NOT backwards compatible with v3\n\n const schema = z4.object({\n elementId: z4.string(),\n method: z4.enum(SupportedUnderstudyAction),\n arguments: z4.array(z4.string()),\n });\n\n // In v4, this works fine\n const validResult = schema.safeParse(testInput);\n expect(validResult.success).toBe(true);\n });\n\n it(\"All SupportedUnderstudyAction values are valid enum options\", () => {\n const enumValues = Object.values(\n SupportedUnderstudyAction,\n ) as unknown as readonly [string, ...string[]];\n\n // Test with both v3 and v4 schemas\n const v3Schema = z3.z.enum(enumValues);\n const v4Schema = z4.enum(enumValues);\n\n for (const action of enumValues) {\n expect(v3Schema.safeParse(action).success).toBe(true);\n expect(v4Schema.safeParse(action).success).toBe(true);\n }\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,219 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { ActCache } from "../lib/v3/cache/ActCache";
3
- function createFakeStorage(entry) {
4
- return {
5
- enabled: true,
6
- readJson: vi.fn().mockResolvedValue({ value: entry }),
7
- writeJson: vi.fn().mockResolvedValue({}),
8
- directory: "/tmp/cache",
9
- };
10
- }
11
- describe("ActCache variable handling", () => {
12
- it("cache key includes variable keys but not values", async () => {
13
- const storage = {
14
- enabled: true,
15
- readJson: vi.fn(),
16
- writeJson: vi.fn().mockResolvedValue({}),
17
- directory: "/tmp/cache",
18
- };
19
- const cache = new ActCache({
20
- storage,
21
- logger: vi.fn(),
22
- getActHandler: () => null,
23
- getDefaultLlmClient: () => ({}),
24
- domSettleTimeoutMs: undefined,
25
- });
26
- const fakePage = {
27
- url: vi.fn().mockResolvedValue("https://example.com"),
28
- };
29
- // First context with username="user1@example.com"
30
- const context1 = await cache.prepareContext("type %username% into the email field", fakePage, { username: "user1@example.com" });
31
- // Second context with username="user2@example.com"
32
- const context2 = await cache.prepareContext("type %username% into the email field", fakePage, { username: "user2@example.com" });
33
- // Third context with different variable key name
34
- const context3 = await cache.prepareContext("type %email% into the email field", fakePage, { email: "user3@example.com" });
35
- // Same instruction + same variable keys = same cache key
36
- expect(context1?.cacheKey).toBe(context2?.cacheKey);
37
- // Different variable keys = different cache key
38
- expect(context1?.cacheKey).not.toBe(context3?.cacheKey);
39
- // Verify variable keys are sorted and stored
40
- expect(context1?.variableKeys).toEqual(["username"]);
41
- expect(context2?.variableKeys).toEqual(["username"]);
42
- expect(context3?.variableKeys).toEqual(["email"]);
43
- // Verify variable values are preserved in context
44
- expect(context1?.variables).toEqual({ username: "user1@example.com" });
45
- expect(context2?.variables).toEqual({ username: "user2@example.com" });
46
- });
47
- it("replays cached actions with variable substitution", async () => {
48
- // Cached action contains variable placeholder %username%
49
- const action = {
50
- selector: "xpath=/html/body/input[@type='email']",
51
- description: "type username into email field",
52
- method: "type",
53
- arguments: ["%username%"], // Variable placeholder
54
- };
55
- const entry = {
56
- version: 1,
57
- instruction: "type %username% into the email field",
58
- url: "https://example.com",
59
- variableKeys: ["username"],
60
- actions: [action],
61
- actionDescription: "type username",
62
- message: "done",
63
- };
64
- const storage = createFakeStorage(entry);
65
- // Track what variables are passed to takeDeterministicAction
66
- const capturedVariables = [];
67
- const handler = {
68
- takeDeterministicAction: vi
69
- .fn()
70
- .mockImplementation(async (_action, _page, _timeout, _client, _ensure, variables) => {
71
- capturedVariables.push(variables || {});
72
- return {
73
- success: true,
74
- message: "ok",
75
- actionDescription: "type username",
76
- actions: [action],
77
- };
78
- }),
79
- };
80
- const defaultClient = {};
81
- const cache = new ActCache({
82
- storage,
83
- logger: vi.fn(),
84
- getActHandler: () => handler,
85
- getDefaultLlmClient: () => defaultClient,
86
- domSettleTimeoutMs: undefined,
87
- });
88
- // First replay with username="user1@example.com"
89
- const context1 = {
90
- instruction: "type %username% into the email field",
91
- cacheKey: "test-key",
92
- pageUrl: "https://example.com",
93
- variableKeys: ["username"],
94
- variables: { username: "user1@example.com" },
95
- };
96
- const result1 = await cache.tryReplay(context1, {});
97
- expect(result1?.success).toBe(true);
98
- expect(handler.takeDeterministicAction).toHaveBeenCalledTimes(1);
99
- expect(capturedVariables[0]).toEqual({ username: "user1@example.com" });
100
- // Reset
101
- vi.clearAllMocks();
102
- capturedVariables.length = 0;
103
- // Second replay with username="user2@example.com"
104
- const context2 = {
105
- instruction: "type %username% into the email field",
106
- cacheKey: "test-key", // Same cache key!
107
- pageUrl: "https://example.com",
108
- variableKeys: ["username"],
109
- variables: { username: "user2@example.com" },
110
- };
111
- const result2 = await cache.tryReplay(context2, {});
112
- expect(result2?.success).toBe(true);
113
- expect(handler.takeDeterministicAction).toHaveBeenCalledTimes(1);
114
- expect(capturedVariables[0]).toEqual({ username: "user2@example.com" });
115
- });
116
- it("cache miss when variable keys don't match", async () => {
117
- const action = {
118
- selector: "xpath=/html/body/input",
119
- description: "type username",
120
- method: "type",
121
- arguments: ["%username%"],
122
- };
123
- // Cached entry expects "username" variable
124
- const entry = {
125
- version: 1,
126
- instruction: "type %username% into the field",
127
- url: "https://example.com",
128
- variableKeys: ["username"],
129
- actions: [action],
130
- };
131
- const storage = createFakeStorage(entry);
132
- const cache = new ActCache({
133
- storage,
134
- logger: vi.fn(),
135
- getActHandler: () => null,
136
- getDefaultLlmClient: () => ({}),
137
- domSettleTimeoutMs: undefined,
138
- });
139
- // Context has different variable key "email"
140
- const context = {
141
- instruction: "type %email% into the field",
142
- cacheKey: "test-key",
143
- pageUrl: "https://example.com",
144
- variableKeys: ["email"],
145
- variables: { email: "test@example.com" },
146
- };
147
- const result = await cache.tryReplay(context, {});
148
- // Should return null (cache miss) due to variable key mismatch
149
- expect(result).toBeNull();
150
- });
151
- it("cache miss when required variables are missing", async () => {
152
- const action = {
153
- selector: "xpath=/html/body/input",
154
- description: "type username",
155
- method: "type",
156
- arguments: ["%username%"],
157
- };
158
- const entry = {
159
- version: 1,
160
- instruction: "type %username% into the field",
161
- url: "https://example.com",
162
- variableKeys: ["username"],
163
- actions: [action],
164
- };
165
- const storage = createFakeStorage(entry);
166
- const logger = vi.fn();
167
- const cache = new ActCache({
168
- storage,
169
- logger,
170
- getActHandler: () => null,
171
- getDefaultLlmClient: () => ({}),
172
- domSettleTimeoutMs: undefined,
173
- });
174
- // Context missing the username variable value
175
- const context = {
176
- instruction: "type %username% into the field",
177
- cacheKey: "test-key",
178
- pageUrl: "https://example.com",
179
- variableKeys: ["username"],
180
- variables: {}, // Missing username value!
181
- };
182
- const result = await cache.tryReplay(context, {});
183
- // Should return null (cache miss)
184
- expect(result).toBeNull();
185
- // Should log the miss reason
186
- expect(logger).toHaveBeenCalledWith(expect.objectContaining({
187
- category: "cache",
188
- message: "act cache miss: missing variables for replay",
189
- level: 2,
190
- }));
191
- });
192
- it("handles multiple variables correctly", async () => {
193
- const storage = {
194
- enabled: true,
195
- readJson: vi.fn(),
196
- writeJson: vi.fn().mockResolvedValue({}),
197
- directory: "/tmp/cache",
198
- };
199
- const cache = new ActCache({
200
- storage,
201
- logger: vi.fn(),
202
- getActHandler: () => null,
203
- getDefaultLlmClient: () => ({}),
204
- domSettleTimeoutMs: undefined,
205
- });
206
- const fakePage = {
207
- url: vi.fn().mockResolvedValue("https://example.com"),
208
- };
209
- // Context with multiple variables
210
- const context1 = await cache.prepareContext("fill %username% and %password%", fakePage, { username: "user1", password: "pass1" });
211
- const context2 = await cache.prepareContext("fill %username% and %password%", fakePage, { username: "user2", password: "pass2" });
212
- // Same cache key despite different values
213
- expect(context1?.cacheKey).toBe(context2?.cacheKey);
214
- // Variable keys should be sorted
215
- expect(context1?.variableKeys).toEqual(["password", "username"]);
216
- expect(context2?.variableKeys).toEqual(["password", "username"]);
217
- });
218
- });
219
- //# sourceMappingURL=cache-variables.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-variables.test.js","sourceRoot":"","sources":["../../../tests/cache-variables.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it, vi } from \"vitest\";\nimport { ActCache } from \"../lib/v3/cache/ActCache\";\nimport type { CacheStorage } from \"../lib/v3/cache/CacheStorage\";\nimport type { ActHandler } from \"../lib/v3/handlers/actHandler\";\nimport type { LLMClient } from \"../lib/v3/llm/LLMClient\";\nimport type { Page } from \"../lib/v3/understudy/page\";\nimport type { ActCacheContext, CachedActEntry } from \"../lib/v3/types/private\";\nimport type { Action } from \"../lib/v3/types/public\";\n\nfunction createFakeStorage<T>(entry: T): CacheStorage {\n return {\n enabled: true,\n readJson: vi.fn().mockResolvedValue({ value: entry }),\n writeJson: vi.fn().mockResolvedValue({}),\n directory: \"/tmp/cache\",\n } as unknown as CacheStorage;\n}\n\ndescribe(\"ActCache variable handling\", () => {\n it(\"cache key includes variable keys but not values\", async () => {\n const storage = {\n enabled: true,\n readJson: vi.fn(),\n writeJson: vi.fn().mockResolvedValue({}),\n directory: \"/tmp/cache\",\n } as unknown as CacheStorage;\n\n const cache = new ActCache({\n storage,\n logger: vi.fn(),\n getActHandler: () => null as unknown as ActHandler,\n getDefaultLlmClient: () => ({}) as LLMClient,\n domSettleTimeoutMs: undefined,\n });\n\n const fakePage = {\n url: vi.fn().mockResolvedValue(\"https://example.com\"),\n } as unknown as Page;\n\n // First context with username=\"user1@example.com\"\n const context1 = await cache.prepareContext(\n \"type %username% into the email field\",\n fakePage,\n { username: \"user1@example.com\" },\n );\n\n // Second context with username=\"user2@example.com\"\n const context2 = await cache.prepareContext(\n \"type %username% into the email field\",\n fakePage,\n { username: \"user2@example.com\" },\n );\n\n // Third context with different variable key name\n const context3 = await cache.prepareContext(\n \"type %email% into the email field\",\n fakePage,\n { email: \"user3@example.com\" },\n );\n\n // Same instruction + same variable keys = same cache key\n expect(context1?.cacheKey).toBe(context2?.cacheKey);\n\n // Different variable keys = different cache key\n expect(context1?.cacheKey).not.toBe(context3?.cacheKey);\n\n // Verify variable keys are sorted and stored\n expect(context1?.variableKeys).toEqual([\"username\"]);\n expect(context2?.variableKeys).toEqual([\"username\"]);\n expect(context3?.variableKeys).toEqual([\"email\"]);\n\n // Verify variable values are preserved in context\n expect(context1?.variables).toEqual({ username: \"user1@example.com\" });\n expect(context2?.variables).toEqual({ username: \"user2@example.com\" });\n });\n\n it(\"replays cached actions with variable substitution\", async () => {\n // Cached action contains variable placeholder %username%\n const action: Action = {\n selector: \"xpath=/html/body/input[@type='email']\",\n description: \"type username into email field\",\n method: \"type\",\n arguments: [\"%username%\"], // Variable placeholder\n };\n\n const entry: CachedActEntry = {\n version: 1,\n instruction: \"type %username% into the email field\",\n url: \"https://example.com\",\n variableKeys: [\"username\"],\n actions: [action],\n actionDescription: \"type username\",\n message: \"done\",\n };\n\n const storage = createFakeStorage(entry);\n\n // Track what variables are passed to takeDeterministicAction\n const capturedVariables: Record<string, string>[] = [];\n const handler = {\n takeDeterministicAction: vi\n .fn()\n .mockImplementation(\n async (_action, _page, _timeout, _client, _ensure, variables) => {\n capturedVariables.push(variables || {});\n return {\n success: true,\n message: \"ok\",\n actionDescription: \"type username\",\n actions: [action],\n };\n },\n ),\n } as unknown as ActHandler;\n\n const defaultClient = {} as LLMClient;\n\n const cache = new ActCache({\n storage,\n logger: vi.fn(),\n getActHandler: () => handler,\n getDefaultLlmClient: () => defaultClient,\n domSettleTimeoutMs: undefined,\n });\n\n // First replay with username=\"user1@example.com\"\n const context1: ActCacheContext = {\n instruction: \"type %username% into the email field\",\n cacheKey: \"test-key\",\n pageUrl: \"https://example.com\",\n variableKeys: [\"username\"],\n variables: { username: \"user1@example.com\" },\n };\n\n const result1 = await cache.tryReplay(context1, {} as Page);\n\n expect(result1?.success).toBe(true);\n expect(handler.takeDeterministicAction).toHaveBeenCalledTimes(1);\n expect(capturedVariables[0]).toEqual({ username: \"user1@example.com\" });\n\n // Reset\n vi.clearAllMocks();\n capturedVariables.length = 0;\n\n // Second replay with username=\"user2@example.com\"\n const context2: ActCacheContext = {\n instruction: \"type %username% into the email field\",\n cacheKey: \"test-key\", // Same cache key!\n pageUrl: \"https://example.com\",\n variableKeys: [\"username\"],\n variables: { username: \"user2@example.com\" },\n };\n\n const result2 = await cache.tryReplay(context2, {} as Page);\n\n expect(result2?.success).toBe(true);\n expect(handler.takeDeterministicAction).toHaveBeenCalledTimes(1);\n expect(capturedVariables[0]).toEqual({ username: \"user2@example.com\" });\n });\n\n it(\"cache miss when variable keys don't match\", async () => {\n const action: Action = {\n selector: \"xpath=/html/body/input\",\n description: \"type username\",\n method: \"type\",\n arguments: [\"%username%\"],\n };\n\n // Cached entry expects \"username\" variable\n const entry: CachedActEntry = {\n version: 1,\n instruction: \"type %username% into the field\",\n url: \"https://example.com\",\n variableKeys: [\"username\"],\n actions: [action],\n };\n\n const storage = createFakeStorage(entry);\n const cache = new ActCache({\n storage,\n logger: vi.fn(),\n getActHandler: () => null as unknown as ActHandler,\n getDefaultLlmClient: () => ({}) as LLMClient,\n domSettleTimeoutMs: undefined,\n });\n\n // Context has different variable key \"email\"\n const context: ActCacheContext = {\n instruction: \"type %email% into the field\",\n cacheKey: \"test-key\",\n pageUrl: \"https://example.com\",\n variableKeys: [\"email\"],\n variables: { email: \"test@example.com\" },\n };\n\n const result = await cache.tryReplay(context, {} as Page);\n\n // Should return null (cache miss) due to variable key mismatch\n expect(result).toBeNull();\n });\n\n it(\"cache miss when required variables are missing\", async () => {\n const action: Action = {\n selector: \"xpath=/html/body/input\",\n description: \"type username\",\n method: \"type\",\n arguments: [\"%username%\"],\n };\n\n const entry: CachedActEntry = {\n version: 1,\n instruction: \"type %username% into the field\",\n url: \"https://example.com\",\n variableKeys: [\"username\"],\n actions: [action],\n };\n\n const storage = createFakeStorage(entry);\n const logger = vi.fn();\n const cache = new ActCache({\n storage,\n logger,\n getActHandler: () => null as unknown as ActHandler,\n getDefaultLlmClient: () => ({}) as LLMClient,\n domSettleTimeoutMs: undefined,\n });\n\n // Context missing the username variable value\n const context: ActCacheContext = {\n instruction: \"type %username% into the field\",\n cacheKey: \"test-key\",\n pageUrl: \"https://example.com\",\n variableKeys: [\"username\"],\n variables: {}, // Missing username value!\n };\n\n const result = await cache.tryReplay(context, {} as Page);\n\n // Should return null (cache miss)\n expect(result).toBeNull();\n\n // Should log the miss reason\n expect(logger).toHaveBeenCalledWith(\n expect.objectContaining({\n category: \"cache\",\n message: \"act cache miss: missing variables for replay\",\n level: 2,\n }),\n );\n });\n\n it(\"handles multiple variables correctly\", async () => {\n const storage = {\n enabled: true,\n readJson: vi.fn(),\n writeJson: vi.fn().mockResolvedValue({}),\n directory: \"/tmp/cache\",\n } as unknown as CacheStorage;\n\n const cache = new ActCache({\n storage,\n logger: vi.fn(),\n getActHandler: () => null as unknown as ActHandler,\n getDefaultLlmClient: () => ({}) as LLMClient,\n domSettleTimeoutMs: undefined,\n });\n\n const fakePage = {\n url: vi.fn().mockResolvedValue(\"https://example.com\"),\n } as unknown as Page;\n\n // Context with multiple variables\n const context1 = await cache.prepareContext(\n \"fill %username% and %password%\",\n fakePage,\n { username: \"user1\", password: \"pass1\" },\n );\n\n const context2 = await cache.prepareContext(\n \"fill %username% and %password%\",\n fakePage,\n { username: \"user2\", password: \"pass2\" },\n );\n\n // Same cache key despite different values\n expect(context1?.cacheKey).toBe(context2?.cacheKey);\n\n // Variable keys should be sorted\n expect(context1?.variableKeys).toEqual([\"password\", \"username\"]);\n expect(context2?.variableKeys).toEqual([\"password\", \"username\"]);\n });\n});\n"]}