@browserbasehq/orca 3.0.9-alpha-3 → 3.1.0-patch.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. package/dist/esm/index.d.ts +3 -0
  2. package/dist/esm/index.js +3 -0
  3. package/dist/esm/lib/inference.d.ts +65 -0
  4. package/dist/esm/lib/inference.js +333 -0
  5. package/dist/esm/lib/inference.js.map +1 -0
  6. package/dist/esm/lib/inferenceLogUtils.d.ts +12 -0
  7. package/dist/esm/lib/inferenceLogUtils.js +92 -0
  8. package/dist/esm/lib/inferenceLogUtils.js.map +1 -0
  9. package/dist/esm/lib/logger.d.ts +69 -0
  10. package/dist/esm/lib/logger.js +323 -0
  11. package/dist/esm/lib/logger.js.map +1 -0
  12. package/dist/esm/lib/modelUtils.d.ts +14 -0
  13. package/dist/esm/lib/modelUtils.js +48 -0
  14. package/dist/esm/lib/modelUtils.js.map +1 -0
  15. package/dist/esm/lib/prompt.d.ts +14 -0
  16. package/dist/esm/lib/prompt.js +230 -0
  17. package/dist/esm/lib/prompt.js.map +1 -0
  18. package/dist/esm/lib/utils.d.ts +68 -0
  19. package/dist/esm/lib/utils.js +654 -0
  20. package/dist/esm/lib/utils.js.map +1 -0
  21. package/dist/esm/lib/v3/agent/AgentClient.d.ts +19 -0
  22. package/dist/esm/lib/v3/agent/AgentClient.js +17 -0
  23. package/dist/esm/lib/v3/agent/AgentClient.js.map +1 -0
  24. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +20 -0
  25. package/dist/esm/lib/v3/agent/AgentProvider.js +77 -0
  26. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -0
  27. package/dist/esm/lib/v3/agent/AnthropicCUAClient.d.ts +57 -0
  28. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +822 -0
  29. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
  30. package/dist/esm/lib/v3/agent/GoogleCUAClient.d.ts +74 -0
  31. package/dist/esm/lib/v3/agent/GoogleCUAClient.js +799 -0
  32. package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -0
  33. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.d.ts +71 -0
  34. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +770 -0
  35. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
  36. package/dist/esm/lib/v3/agent/OpenAICUAClient.d.ts +69 -0
  37. package/dist/esm/lib/v3/agent/OpenAICUAClient.js +615 -0
  38. package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -0
  39. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +12 -0
  40. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +186 -0
  41. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
  42. package/dist/esm/lib/v3/agent/tools/act.d.ts +13 -0
  43. package/dist/esm/lib/v3/agent/tools/act.js +49 -0
  44. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -0
  45. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +5 -0
  46. package/dist/esm/lib/v3/agent/tools/ariaTree.js +31 -0
  47. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -0
  48. package/dist/esm/lib/v3/agent/tools/click.d.ts +6 -0
  49. package/dist/esm/lib/v3/agent/tools/click.js +104 -0
  50. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -0
  51. package/dist/esm/lib/v3/agent/tools/clickAndHold.d.ts +14 -0
  52. package/dist/esm/lib/v3/agent/tools/clickAndHold.js +68 -0
  53. package/dist/esm/lib/v3/agent/tools/clickAndHold.js.map +1 -0
  54. package/dist/esm/lib/v3/agent/tools/dragAndDrop.d.ts +7 -0
  55. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +105 -0
  56. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
  57. package/dist/esm/lib/v3/agent/tools/extract.d.ts +21 -0
  58. package/dist/esm/lib/v3/agent/tools/extract.js +93 -0
  59. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -0
  60. package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +12 -0
  61. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +143 -0
  62. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -0
  63. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +13 -0
  64. package/dist/esm/lib/v3/agent/tools/fillform.js +56 -0
  65. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -0
  66. package/dist/esm/lib/v3/agent/tools/goto.d.ts +12 -0
  67. package/dist/esm/lib/v3/agent/tools/goto.js +31 -0
  68. package/dist/esm/lib/v3/agent/tools/goto.js.map +1 -0
  69. package/dist/esm/lib/v3/agent/tools/index.d.ts +92 -0
  70. package/dist/esm/lib/v3/agent/tools/index.js +74 -0
  71. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -0
  72. package/dist/esm/lib/v3/agent/tools/keys.d.ts +24 -0
  73. package/dist/esm/lib/v3/agent/tools/keys.js +60 -0
  74. package/dist/esm/lib/v3/agent/tools/keys.js.map +1 -0
  75. package/dist/esm/lib/v3/agent/tools/navback.d.ts +6 -0
  76. package/dist/esm/lib/v3/agent/tools/navback.js +23 -0
  77. package/dist/esm/lib/v3/agent/tools/navback.js.map +1 -0
  78. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +6 -0
  79. package/dist/esm/lib/v3/agent/tools/screenshot.js +26 -0
  80. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -0
  81. package/dist/esm/lib/v3/agent/tools/scroll.d.ts +19 -0
  82. package/dist/esm/lib/v3/agent/tools/scroll.js +142 -0
  83. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -0
  84. package/dist/esm/lib/v3/agent/tools/search.d.ts +15 -0
  85. package/dist/esm/lib/v3/agent/tools/search.js +73 -0
  86. package/dist/esm/lib/v3/agent/tools/search.js.map +1 -0
  87. package/dist/esm/lib/v3/agent/tools/think.d.ts +6 -0
  88. package/dist/esm/lib/v3/agent/tools/think.js +24 -0
  89. package/dist/esm/lib/v3/agent/tools/think.js.map +1 -0
  90. package/dist/esm/lib/v3/agent/tools/type.d.ts +7 -0
  91. package/dist/esm/lib/v3/agent/tools/type.js +106 -0
  92. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -0
  93. package/dist/esm/lib/v3/agent/tools/wait.d.ts +5 -0
  94. package/dist/esm/lib/v3/agent/tools/wait.js +53 -0
  95. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -0
  96. package/dist/esm/lib/v3/agent/utils/actionMapping.d.ts +3 -0
  97. package/dist/esm/lib/v3/agent/utils/actionMapping.js +100 -0
  98. package/dist/esm/lib/v3/agent/utils/actionMapping.js.map +1 -0
  99. package/dist/esm/lib/v3/agent/utils/coordinateNormalization.d.ts +13 -0
  100. package/dist/esm/lib/v3/agent/utils/coordinateNormalization.js +28 -0
  101. package/dist/esm/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
  102. package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.d.ts +10 -0
  103. package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.js +62 -0
  104. package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
  105. package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.d.ts +25 -0
  106. package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.js +145 -0
  107. package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
  108. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.d.ts +22 -0
  109. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +101 -0
  110. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
  111. package/dist/esm/lib/v3/agent/utils/imageCompression.d.ts +53 -0
  112. package/dist/esm/lib/v3/agent/utils/imageCompression.js +204 -0
  113. package/dist/esm/lib/v3/agent/utils/imageCompression.js.map +1 -0
  114. package/dist/esm/lib/v3/agent/utils/messageProcessing.d.ts +12 -0
  115. package/dist/esm/lib/v3/agent/utils/messageProcessing.js +164 -0
  116. package/dist/esm/lib/v3/agent/utils/messageProcessing.js.map +1 -0
  117. package/dist/esm/lib/v3/agent/utils/screenshotHandler.d.ts +10 -0
  118. package/dist/esm/lib/v3/agent/utils/screenshotHandler.js +26 -0
  119. package/dist/esm/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
  120. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.d.ts +26 -0
  121. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +79 -0
  122. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
  123. package/dist/esm/lib/v3/agent/utils/xpath.d.ts +11 -0
  124. package/dist/esm/lib/v3/agent/utils/xpath.js +19 -0
  125. package/dist/esm/lib/v3/agent/utils/xpath.js.map +1 -0
  126. package/dist/esm/lib/v3/api.d.ts +86 -0
  127. package/dist/esm/lib/v3/api.js +484 -0
  128. package/dist/esm/lib/v3/api.js.map +1 -0
  129. package/dist/esm/lib/v3/cache/ActCache.d.ts +23 -0
  130. package/dist/esm/lib/v3/cache/ActCache.js +292 -0
  131. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -0
  132. package/dist/esm/lib/v3/cache/AgentCache.d.ts +109 -0
  133. package/dist/esm/lib/v3/cache/AgentCache.js +640 -0
  134. package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -0
  135. package/dist/esm/lib/v3/cache/CacheStorage.d.ts +17 -0
  136. package/dist/esm/lib/v3/cache/CacheStorage.js +98 -0
  137. package/dist/esm/lib/v3/cache/CacheStorage.js.map +1 -0
  138. package/dist/esm/lib/v3/cache/serverAgentCache.d.ts +7 -0
  139. package/dist/esm/lib/v3/cache/serverAgentCache.js +49 -0
  140. package/dist/esm/lib/v3/cache/serverAgentCache.js.map +1 -0
  141. package/dist/esm/lib/v3/cache/utils.d.ts +15 -0
  142. package/dist/esm/lib/v3/cache/utils.js +39 -0
  143. package/dist/esm/lib/v3/cache/utils.js.map +1 -0
  144. package/dist/esm/lib/v3/dom/a11yScripts/index.d.ts +11 -0
  145. package/dist/esm/lib/v3/dom/a11yScripts/index.js +117 -0
  146. package/dist/esm/lib/v3/dom/a11yScripts/index.js.map +1 -0
  147. package/dist/esm/lib/v3/dom/build/a11yScripts.generated.d.ts +16 -0
  148. package/dist/esm/lib/v3/dom/build/a11yScripts.generated.js +20 -0
  149. package/dist/esm/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
  150. package/dist/esm/lib/v3/dom/build/locatorScripts.generated.d.ts +52 -0
  151. package/dist/esm/lib/v3/dom/build/locatorScripts.generated.js +56 -0
  152. package/dist/esm/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
  153. package/dist/esm/lib/v3/dom/build/reRenderScriptContent.d.ts +1 -0
  154. package/dist/esm/lib/v3/dom/build/reRenderScriptContent.js +2 -0
  155. package/dist/esm/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
  156. package/dist/esm/lib/v3/dom/build/rerender-index.js +1 -0
  157. package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.d.ts +4 -0
  158. package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.js +8 -0
  159. package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
  160. package/dist/esm/lib/v3/dom/build/scriptV3Content.d.ts +1 -0
  161. package/dist/esm/lib/v3/dom/build/scriptV3Content.js +2 -0
  162. package/dist/esm/lib/v3/dom/build/scriptV3Content.js.map +1 -0
  163. package/dist/esm/lib/v3/dom/build/v3-index.js +1 -0
  164. package/dist/esm/lib/v3/dom/genA11yScripts.d.ts +1 -0
  165. package/dist/esm/lib/v3/dom/genA11yScripts.js +54 -0
  166. package/dist/esm/lib/v3/dom/genA11yScripts.js.map +1 -0
  167. package/dist/esm/lib/v3/dom/genDomScripts.d.ts +1 -0
  168. package/dist/esm/lib/v3/dom/genDomScripts.js +38 -0
  169. package/dist/esm/lib/v3/dom/genDomScripts.js.map +1 -0
  170. package/dist/esm/lib/v3/dom/genLocatorScripts.d.ts +1 -0
  171. package/dist/esm/lib/v3/dom/genLocatorScripts.js +51 -0
  172. package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +1 -0
  173. package/dist/esm/lib/v3/dom/genScreenshotScripts.d.ts +1 -0
  174. package/dist/esm/lib/v3/dom/genScreenshotScripts.js +37 -0
  175. package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +1 -0
  176. package/dist/esm/lib/v3/dom/index.d.ts +1 -0
  177. package/dist/esm/lib/v3/dom/index.js +2 -0
  178. package/dist/esm/lib/v3/dom/index.js.map +1 -0
  179. package/dist/esm/lib/v3/dom/locatorScripts/counts.d.ts +15 -0
  180. package/dist/esm/lib/v3/dom/locatorScripts/counts.js +272 -0
  181. package/dist/esm/lib/v3/dom/locatorScripts/counts.js.map +1 -0
  182. package/dist/esm/lib/v3/dom/locatorScripts/index.d.ts +4 -0
  183. package/dist/esm/lib/v3/dom/locatorScripts/index.js +5 -0
  184. package/dist/esm/lib/v3/dom/locatorScripts/index.js.map +1 -0
  185. package/dist/esm/lib/v3/dom/locatorScripts/scripts.d.ts +37 -0
  186. package/dist/esm/lib/v3/dom/locatorScripts/scripts.js +458 -0
  187. package/dist/esm/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
  188. package/dist/esm/lib/v3/dom/locatorScripts/selectors.d.ts +4 -0
  189. package/dist/esm/lib/v3/dom/locatorScripts/selectors.js +283 -0
  190. package/dist/esm/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
  191. package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.d.ts +19 -0
  192. package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.js +283 -0
  193. package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
  194. package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.d.ts +76 -0
  195. package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.js +376 -0
  196. package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
  197. package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.d.ts +9 -0
  198. package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.js +196 -0
  199. package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
  200. package/dist/esm/lib/v3/dom/piercer.entry.d.ts +1 -0
  201. package/dist/esm/lib/v3/dom/piercer.entry.js +3 -0
  202. package/dist/esm/lib/v3/dom/piercer.entry.js.map +1 -0
  203. package/dist/esm/lib/v3/dom/piercer.runtime.d.ts +23 -0
  204. package/dist/esm/lib/v3/dom/piercer.runtime.js +90 -0
  205. package/dist/esm/lib/v3/dom/piercer.runtime.js.map +1 -0
  206. package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.d.ts +1 -0
  207. package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.js +3 -0
  208. package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
  209. package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.d.ts +1 -0
  210. package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.js +40 -0
  211. package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
  212. package/dist/esm/lib/v3/dom/screenshotScripts/index.d.ts +1 -0
  213. package/dist/esm/lib/v3/dom/screenshotScripts/index.js +2 -0
  214. package/dist/esm/lib/v3/dom/screenshotScripts/index.js.map +1 -0
  215. package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.d.ts +8 -0
  216. package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.js +82 -0
  217. package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
  218. package/dist/esm/lib/v3/external_clients/aisdk.d.ts +11 -0
  219. package/dist/esm/lib/v3/external_clients/aisdk.js +103 -0
  220. package/dist/esm/lib/v3/external_clients/aisdk.js.map +1 -0
  221. package/dist/esm/lib/v3/external_clients/customOpenAI.d.ts +18 -0
  222. package/dist/esm/lib/v3/external_clients/customOpenAI.js +220 -0
  223. package/dist/esm/lib/v3/external_clients/customOpenAI.js.map +1 -0
  224. package/dist/esm/lib/v3/flowLogger.d.ts +139 -0
  225. package/dist/esm/lib/v3/flowLogger.js +868 -0
  226. package/dist/esm/lib/v3/flowLogger.js.map +1 -0
  227. package/dist/esm/lib/v3/handlers/actHandler.d.ts +21 -0
  228. package/dist/esm/lib/v3/handlers/actHandler.js +340 -0
  229. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -0
  230. package/dist/esm/lib/v3/handlers/extractHandler.d.ts +31 -0
  231. package/dist/esm/lib/v3/handlers/extractHandler.js +139 -0
  232. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -0
  233. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.d.ts +24 -0
  234. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +623 -0
  235. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
  236. package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.d.ts +2 -0
  237. package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.js +14 -0
  238. package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
  239. package/dist/esm/lib/v3/handlers/observeHandler.d.ts +17 -0
  240. package/dist/esm/lib/v3/handlers/observeHandler.js +156 -0
  241. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -0
  242. package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +32 -0
  243. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +461 -0
  244. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -0
  245. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +33 -0
  246. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +528 -0
  247. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
  248. package/dist/esm/lib/v3/index.d.ts +17 -0
  249. package/dist/esm/lib/v3/index.js +13 -0
  250. package/dist/esm/lib/v3/index.js.map +1 -0
  251. package/dist/esm/lib/v3/launch/browserbase.d.ts +7 -0
  252. package/dist/esm/lib/v3/launch/browserbase.js +46 -0
  253. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -0
  254. package/dist/esm/lib/v3/launch/local.d.ts +15 -0
  255. package/dist/esm/lib/v3/launch/local.js +98 -0
  256. package/dist/esm/lib/v3/launch/local.js.map +1 -0
  257. package/dist/esm/lib/v3/llm/AnthropicClient.d.ts +16 -0
  258. package/dist/esm/lib/v3/llm/AnthropicClient.js +239 -0
  259. package/dist/esm/lib/v3/llm/AnthropicClient.js.map +1 -0
  260. package/dist/esm/lib/v3/llm/CerebrasClient.d.ts +17 -0
  261. package/dist/esm/lib/v3/llm/CerebrasClient.js +235 -0
  262. package/dist/esm/lib/v3/llm/CerebrasClient.js.map +1 -0
  263. package/dist/esm/lib/v3/llm/GoogleClient.d.ts +19 -0
  264. package/dist/esm/lib/v3/llm/GoogleClient.js +369 -0
  265. package/dist/esm/lib/v3/llm/GoogleClient.js.map +1 -0
  266. package/dist/esm/lib/v3/llm/GroqClient.d.ts +17 -0
  267. package/dist/esm/lib/v3/llm/GroqClient.js +236 -0
  268. package/dist/esm/lib/v3/llm/GroqClient.js.map +1 -0
  269. package/dist/esm/lib/v3/llm/LLMClient.d.ts +121 -0
  270. package/dist/esm/lib/v3/llm/LLMClient.js +23 -0
  271. package/dist/esm/lib/v3/llm/LLMClient.js.map +1 -0
  272. package/dist/esm/lib/v3/llm/LLMProvider.d.ts +13 -0
  273. package/dist/esm/lib/v3/llm/LLMProvider.js +194 -0
  274. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -0
  275. package/dist/esm/lib/v3/llm/OpenAIClient.d.ts +15 -0
  276. package/dist/esm/lib/v3/llm/OpenAIClient.js +329 -0
  277. package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -0
  278. package/dist/esm/lib/v3/llm/aisdk.d.ts +15 -0
  279. package/dist/esm/lib/v3/llm/aisdk.js +348 -0
  280. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -0
  281. package/dist/esm/lib/v3/logger.d.ts +9 -0
  282. package/dist/esm/lib/v3/logger.js +96 -0
  283. package/dist/esm/lib/v3/logger.js.map +1 -0
  284. package/dist/esm/lib/v3/mcp/connection.d.ts +11 -0
  285. package/dist/esm/lib/v3/mcp/connection.js +49 -0
  286. package/dist/esm/lib/v3/mcp/connection.js.map +1 -0
  287. package/dist/esm/lib/v3/mcp/utils.d.ts +3 -0
  288. package/dist/esm/lib/v3/mcp/utils.js +36 -0
  289. package/dist/esm/lib/v3/mcp/utils.js.map +1 -0
  290. package/dist/esm/lib/v3/shutdown/cleanupLocal.d.ts +14 -0
  291. package/dist/esm/lib/v3/shutdown/cleanupLocal.js +30 -0
  292. package/dist/esm/lib/v3/shutdown/cleanupLocal.js.map +1 -0
  293. package/dist/esm/lib/v3/shutdown/supervisor.d.ts +9 -0
  294. package/dist/esm/lib/v3/shutdown/supervisor.js +156 -0
  295. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -0
  296. package/dist/esm/lib/v3/shutdown/supervisorClient.d.ts +15 -0
  297. package/dist/esm/lib/v3/shutdown/supervisorClient.js +97 -0
  298. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -0
  299. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +113 -0
  300. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +7 -0
  301. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +80 -0
  302. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +7 -0
  303. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +374 -0
  304. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +7 -0
  305. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +357 -0
  306. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +7 -0
  307. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +247 -0
  308. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +7 -0
  309. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +105 -0
  310. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +7 -0
  311. package/dist/esm/lib/v3/tests/agent-streaming.spec.js +126 -0
  312. package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +7 -0
  313. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +44 -0
  314. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +7 -0
  315. package/dist/esm/lib/v3/tests/click-count.spec.js +112 -0
  316. package/dist/esm/lib/v3/tests/click-count.spec.js.map +7 -0
  317. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +54 -0
  318. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +7 -0
  319. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +176 -0
  320. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +7 -0
  321. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +53 -0
  322. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +7 -0
  323. package/dist/esm/lib/v3/tests/downloads.spec.js +58 -0
  324. package/dist/esm/lib/v3/tests/downloads.spec.js.map +7 -0
  325. package/dist/esm/lib/v3/tests/envReporter.js +57 -0
  326. package/dist/esm/lib/v3/tests/envReporter.js.map +7 -0
  327. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +53 -0
  328. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +7 -0
  329. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +447 -0
  330. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +7 -0
  331. package/dist/esm/lib/v3/tests/keep-alive.child.js +92 -0
  332. package/dist/esm/lib/v3/tests/keep-alive.child.js.map +7 -0
  333. package/dist/esm/lib/v3/tests/keep-alive.helpers.js +532 -0
  334. package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +7 -0
  335. package/dist/esm/lib/v3/tests/keep-alive.spec.js +19 -0
  336. package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +7 -0
  337. package/dist/esm/lib/v3/tests/keyboard.spec.js +296 -0
  338. package/dist/esm/lib/v3/tests/keyboard.spec.js.map +7 -0
  339. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +159 -0
  340. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +7 -0
  341. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +191 -0
  342. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +7 -0
  343. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +108 -0
  344. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +7 -0
  345. package/dist/esm/lib/v3/tests/locator-count.spec.js +71 -0
  346. package/dist/esm/lib/v3/tests/locator-count.spec.js.map +7 -0
  347. package/dist/esm/lib/v3/tests/locator-fill.spec.js +118 -0
  348. package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +7 -0
  349. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +136 -0
  350. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +7 -0
  351. package/dist/esm/lib/v3/tests/locator-nth.spec.js +157 -0
  352. package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +7 -0
  353. package/dist/esm/lib/v3/tests/locator-select-option.spec.js +242 -0
  354. package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +7 -0
  355. package/dist/esm/lib/v3/tests/logger-initialization.spec.js +552 -0
  356. package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +7 -0
  357. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +269 -0
  358. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +7 -0
  359. package/dist/esm/lib/v3/tests/nested-div.spec.js +23 -0
  360. package/dist/esm/lib/v3/tests/nested-div.spec.js.map +7 -0
  361. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +90 -0
  362. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +7 -0
  363. package/dist/esm/lib/v3/tests/page-console.spec.js +56 -0
  364. package/dist/esm/lib/v3/tests/page-console.spec.js.map +7 -0
  365. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +418 -0
  366. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +7 -0
  367. package/dist/esm/lib/v3/tests/page-goto-response.spec.js +35 -0
  368. package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +7 -0
  369. package/dist/esm/lib/v3/tests/page-hover.spec.js +167 -0
  370. package/dist/esm/lib/v3/tests/page-hover.spec.js.map +7 -0
  371. package/dist/esm/lib/v3/tests/page-screenshot.spec.js +273 -0
  372. package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +7 -0
  373. package/dist/esm/lib/v3/tests/page-scroll.spec.js +182 -0
  374. package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +7 -0
  375. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +46 -0
  376. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +7 -0
  377. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +98 -0
  378. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +7 -0
  379. package/dist/esm/lib/v3/tests/setinputfiles.spec.js +126 -0
  380. package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +7 -0
  381. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +134 -0
  382. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +7 -0
  383. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +134 -0
  384. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +7 -0
  385. package/dist/esm/lib/v3/tests/testUtils.js +31 -0
  386. package/dist/esm/lib/v3/tests/testUtils.js.map +7 -0
  387. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +100 -0
  388. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +7 -0
  389. package/dist/esm/lib/v3/tests/timeouts.spec.js +32 -0
  390. package/dist/esm/lib/v3/tests/timeouts.spec.js.map +7 -0
  391. package/dist/esm/lib/v3/tests/user-data-dir.spec.js +43 -0
  392. package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +7 -0
  393. package/dist/esm/lib/v3/tests/v3.config.js +15 -0
  394. package/dist/esm/lib/v3/tests/v3.config.js.map +7 -0
  395. package/dist/esm/lib/v3/tests/v3.dynamic.config.js +43 -0
  396. package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +7 -0
  397. package/dist/esm/lib/v3/tests/v3.playwright.config.js +98 -0
  398. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +7 -0
  399. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +593 -0
  400. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +7 -0
  401. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +97 -0
  402. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +7 -0
  403. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +77 -0
  404. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +7 -0
  405. package/dist/esm/lib/v3/timeoutConfig.d.ts +2 -0
  406. package/dist/esm/lib/v3/timeoutConfig.js +27 -0
  407. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -0
  408. package/dist/esm/lib/v3/types/private/agent.d.ts +6 -0
  409. package/dist/esm/lib/v3/types/private/agent.js +2 -0
  410. package/dist/esm/lib/v3/types/private/agent.js.map +1 -0
  411. package/dist/esm/lib/v3/types/private/api.d.ts +11 -0
  412. package/dist/esm/lib/v3/types/private/api.js +2 -0
  413. package/dist/esm/lib/v3/types/private/api.js.map +1 -0
  414. package/dist/esm/lib/v3/types/private/cache.d.ts +128 -0
  415. package/dist/esm/lib/v3/types/private/cache.js +2 -0
  416. package/dist/esm/lib/v3/types/private/cache.js.map +1 -0
  417. package/dist/esm/lib/v3/types/private/evaluator.d.ts +40 -0
  418. package/dist/esm/lib/v3/types/private/evaluator.js +2 -0
  419. package/dist/esm/lib/v3/types/private/evaluator.js.map +1 -0
  420. package/dist/esm/lib/v3/types/private/handlers.d.ts +38 -0
  421. package/dist/esm/lib/v3/types/private/handlers.js +16 -0
  422. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -0
  423. package/dist/esm/lib/v3/types/private/index.d.ts +7 -0
  424. package/dist/esm/lib/v3/types/private/index.js +8 -0
  425. package/dist/esm/lib/v3/types/private/index.js.map +1 -0
  426. package/dist/esm/lib/v3/types/private/internal.d.ts +39 -0
  427. package/dist/esm/lib/v3/types/private/internal.js +2 -0
  428. package/dist/esm/lib/v3/types/private/internal.js.map +1 -0
  429. package/dist/esm/lib/v3/types/private/locator.d.ts +9 -0
  430. package/dist/esm/lib/v3/types/private/locator.js +2 -0
  431. package/dist/esm/lib/v3/types/private/locator.js.map +1 -0
  432. package/dist/esm/lib/v3/types/private/network.d.ts +34 -0
  433. package/dist/esm/lib/v3/types/private/network.js +3 -0
  434. package/dist/esm/lib/v3/types/private/network.js.map +1 -0
  435. package/dist/esm/lib/v3/types/private/shutdown.d.ts +31 -0
  436. package/dist/esm/lib/v3/types/private/shutdown.js +5 -0
  437. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -0
  438. package/dist/esm/lib/v3/types/private/shutdownErrors.d.ts +12 -0
  439. package/dist/esm/lib/v3/types/private/shutdownErrors.js +22 -0
  440. package/dist/esm/lib/v3/types/private/shutdownErrors.js.map +1 -0
  441. package/dist/esm/lib/v3/types/private/snapshot.d.ts +117 -0
  442. package/dist/esm/lib/v3/types/private/snapshot.js +2 -0
  443. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -0
  444. package/dist/esm/lib/v3/types/public/agent.d.ts +595 -0
  445. package/dist/esm/lib/v3/types/public/agent.js +15 -0
  446. package/dist/esm/lib/v3/types/public/agent.js.map +1 -0
  447. package/dist/esm/lib/v3/types/public/api.d.ts +1211 -0
  448. package/dist/esm/lib/v3/types/public/api.js +915 -0
  449. package/dist/esm/lib/v3/types/public/api.js.map +1 -0
  450. package/dist/esm/lib/v3/types/public/apiErrors.d.ts +18 -0
  451. package/dist/esm/lib/v3/types/public/apiErrors.js +32 -0
  452. package/dist/esm/lib/v3/types/public/apiErrors.js.map +1 -0
  453. package/dist/esm/lib/v3/types/public/index.d.ts +12 -0
  454. package/dist/esm/lib/v3/types/public/index.js +14 -0
  455. package/dist/esm/lib/v3/types/public/index.js.map +1 -0
  456. package/dist/esm/lib/v3/types/public/locator.d.ts +9 -0
  457. package/dist/esm/lib/v3/types/public/locator.js +2 -0
  458. package/dist/esm/lib/v3/types/public/locator.js.map +1 -0
  459. package/dist/esm/lib/v3/types/public/logs.d.ts +23 -0
  460. package/dist/esm/lib/v3/types/public/logs.js +13 -0
  461. package/dist/esm/lib/v3/types/public/logs.js.map +1 -0
  462. package/dist/esm/lib/v3/types/public/methods.d.ts +56 -0
  463. package/dist/esm/lib/v3/types/public/methods.js +15 -0
  464. package/dist/esm/lib/v3/types/public/methods.js.map +1 -0
  465. package/dist/esm/lib/v3/types/public/metrics.d.ts +27 -0
  466. package/dist/esm/lib/v3/types/public/metrics.js +2 -0
  467. package/dist/esm/lib/v3/types/public/metrics.js.map +1 -0
  468. package/dist/esm/lib/v3/types/public/model.d.ts +65 -0
  469. package/dist/esm/lib/v3/types/public/model.js +2 -0
  470. package/dist/esm/lib/v3/types/public/model.js.map +1 -0
  471. package/dist/esm/lib/v3/types/public/options.d.ts +70 -0
  472. package/dist/esm/lib/v3/types/public/options.js +4 -0
  473. package/dist/esm/lib/v3/types/public/options.js.map +1 -0
  474. package/dist/esm/lib/v3/types/public/page.d.ts +18 -0
  475. package/dist/esm/lib/v3/types/public/page.js +3 -0
  476. package/dist/esm/lib/v3/types/public/page.js.map +1 -0
  477. package/dist/esm/lib/v3/types/public/screenshotTypes.d.ts +25 -0
  478. package/dist/esm/lib/v3/types/public/screenshotTypes.js +2 -0
  479. package/dist/esm/lib/v3/types/public/screenshotTypes.js.map +1 -0
  480. package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +152 -0
  481. package/dist/esm/lib/v3/types/public/sdkErrors.js +305 -0
  482. package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -0
  483. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.d.ts +15 -0
  484. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +196 -0
  485. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
  486. package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.d.ts +8 -0
  487. package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.js +121 -0
  488. package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
  489. package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.d.ts +77 -0
  490. package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js +336 -0
  491. package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
  492. package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.d.ts +7 -0
  493. package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +129 -0
  494. package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
  495. package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.d.ts +46 -0
  496. package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.js +274 -0
  497. package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
  498. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +24 -0
  499. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +216 -0
  500. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
  501. package/dist/esm/lib/v3/understudy/a11y/snapshot/index.d.ts +4 -0
  502. package/dist/esm/lib/v3/understudy/a11y/snapshot/index.js +5 -0
  503. package/dist/esm/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
  504. package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.d.ts +16 -0
  505. package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.js +22 -0
  506. package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
  507. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.d.ts +28 -0
  508. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +135 -0
  509. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
  510. package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.d.ts +26 -0
  511. package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.js +102 -0
  512. package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
  513. package/dist/esm/lib/v3/understudy/a11yInvocation.d.ts +8 -0
  514. package/dist/esm/lib/v3/understudy/a11yInvocation.js +12 -0
  515. package/dist/esm/lib/v3/understudy/a11yInvocation.js.map +1 -0
  516. package/dist/esm/lib/v3/understudy/cdp.d.ts +69 -0
  517. package/dist/esm/lib/v3/understudy/cdp.js +251 -0
  518. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -0
  519. package/dist/esm/lib/v3/understudy/consoleMessage.d.ts +22 -0
  520. package/dist/esm/lib/v3/understudy/consoleMessage.js +66 -0
  521. package/dist/esm/lib/v3/understudy/consoleMessage.js.map +1 -0
  522. package/dist/esm/lib/v3/understudy/context.d.ts +132 -0
  523. package/dist/esm/lib/v3/understudy/context.js +687 -0
  524. package/dist/esm/lib/v3/understudy/context.js.map +1 -0
  525. package/dist/esm/lib/v3/understudy/deepLocator.d.ts +87 -0
  526. package/dist/esm/lib/v3/understudy/deepLocator.js +218 -0
  527. package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -0
  528. package/dist/esm/lib/v3/understudy/executionContextRegistry.d.ts +15 -0
  529. package/dist/esm/lib/v3/understudy/executionContextRegistry.js +83 -0
  530. package/dist/esm/lib/v3/understudy/executionContextRegistry.js.map +1 -0
  531. package/dist/esm/lib/v3/understudy/fileUploadUtils.d.ts +13 -0
  532. package/dist/esm/lib/v3/understudy/fileUploadUtils.js +81 -0
  533. package/dist/esm/lib/v3/understudy/fileUploadUtils.js.map +1 -0
  534. package/dist/esm/lib/v3/understudy/frame.d.ts +69 -0
  535. package/dist/esm/lib/v3/understudy/frame.js +211 -0
  536. package/dist/esm/lib/v3/understudy/frame.js.map +1 -0
  537. package/dist/esm/lib/v3/understudy/frameLocator.d.ts +50 -0
  538. package/dist/esm/lib/v3/understudy/frameLocator.js +255 -0
  539. package/dist/esm/lib/v3/understudy/frameLocator.js.map +1 -0
  540. package/dist/esm/lib/v3/understudy/frameRegistry.d.ts +101 -0
  541. package/dist/esm/lib/v3/understudy/frameRegistry.js +298 -0
  542. package/dist/esm/lib/v3/understudy/frameRegistry.js.map +1 -0
  543. package/dist/esm/lib/v3/understudy/initScripts.d.ts +2 -0
  544. package/dist/esm/lib/v3/understudy/initScripts.js +33 -0
  545. package/dist/esm/lib/v3/understudy/initScripts.js.map +1 -0
  546. package/dist/esm/lib/v3/understudy/lifecycleWatcher.d.ts +64 -0
  547. package/dist/esm/lib/v3/understudy/lifecycleWatcher.js +245 -0
  548. package/dist/esm/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
  549. package/dist/esm/lib/v3/understudy/locator.d.ts +194 -0
  550. package/dist/esm/lib/v3/understudy/locator.js +753 -0
  551. package/dist/esm/lib/v3/understudy/locator.js.map +1 -0
  552. package/dist/esm/lib/v3/understudy/locatorInvocation.d.ts +8 -0
  553. package/dist/esm/lib/v3/understudy/locatorInvocation.js +12 -0
  554. package/dist/esm/lib/v3/understudy/locatorInvocation.js.map +1 -0
  555. package/dist/esm/lib/v3/understudy/navigationResponseTracker.d.ts +84 -0
  556. package/dist/esm/lib/v3/understudy/navigationResponseTracker.js +224 -0
  557. package/dist/esm/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
  558. package/dist/esm/lib/v3/understudy/networkManager.d.ts +53 -0
  559. package/dist/esm/lib/v3/understudy/networkManager.js +306 -0
  560. package/dist/esm/lib/v3/understudy/networkManager.js.map +1 -0
  561. package/dist/esm/lib/v3/understudy/page.d.ts +354 -0
  562. package/dist/esm/lib/v3/understudy/page.js +1941 -0
  563. package/dist/esm/lib/v3/understudy/page.js.map +1 -0
  564. package/dist/esm/lib/v3/understudy/piercer.d.ts +4 -0
  565. package/dist/esm/lib/v3/understudy/piercer.js +61 -0
  566. package/dist/esm/lib/v3/understudy/piercer.js.map +1 -0
  567. package/dist/esm/lib/v3/understudy/response.d.ts +137 -0
  568. package/dist/esm/lib/v3/understudy/response.js +330 -0
  569. package/dist/esm/lib/v3/understudy/response.js.map +1 -0
  570. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +16 -0
  571. package/dist/esm/lib/v3/understudy/screenshotUtils.js +352 -0
  572. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -0
  573. package/dist/esm/lib/v3/understudy/selectorResolver.d.ts +38 -0
  574. package/dist/esm/lib/v3/understudy/selectorResolver.js +296 -0
  575. package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -0
  576. package/dist/esm/lib/v3/v3.d.ts +191 -0
  577. package/dist/esm/lib/v3/v3.js +1572 -0
  578. package/dist/esm/lib/v3/v3.js.map +1 -0
  579. package/dist/esm/lib/v3/zodCompat.d.ts +12 -0
  580. package/dist/esm/lib/v3/zodCompat.js +17 -0
  581. package/dist/esm/lib/v3/zodCompat.js.map +1 -0
  582. package/dist/esm/lib/v3Evaluator.d.ts +19 -0
  583. package/dist/esm/lib/v3Evaluator.js +210 -0
  584. package/dist/esm/lib/v3Evaluator.js.map +1 -0
  585. package/dist/esm/lib/version.d.ts +5 -0
  586. package/dist/esm/lib/version.js +6 -0
  587. package/dist/esm/lib/version.js.map +1 -0
  588. package/dist/esm/package.json +3 -0
  589. package/dist/esm/tests/agent-execution-model.test.js +139 -0
  590. package/dist/esm/tests/agent-execution-model.test.js.map +7 -0
  591. package/dist/esm/tests/browserbase-session-accessors.test.js +101 -0
  592. package/dist/esm/tests/browserbase-session-accessors.test.js.map +7 -0
  593. package/dist/esm/tests/cache-llm-resolution.test.js +187 -0
  594. package/dist/esm/tests/cache-llm-resolution.test.js.map +7 -0
  595. package/dist/esm/tests/helpers/mockCDPSession.js +27 -0
  596. package/dist/esm/tests/helpers/mockCDPSession.js.map +7 -0
  597. package/dist/esm/tests/llm-provider.test.js +57 -0
  598. package/dist/esm/tests/llm-provider.test.js.map +7 -0
  599. package/dist/esm/tests/model-deprecation.test.js +135 -0
  600. package/dist/esm/tests/model-deprecation.test.js.map +7 -0
  601. package/dist/esm/tests/model-utils.test.js +43 -0
  602. package/dist/esm/tests/model-utils.test.js.map +7 -0
  603. package/dist/esm/tests/page-snapshot.test.js +36 -0
  604. package/dist/esm/tests/page-snapshot.test.js.map +7 -0
  605. package/dist/esm/tests/public-api/export-surface.test.js +53 -0
  606. package/dist/esm/tests/public-api/export-surface.test.js.map +7 -0
  607. package/dist/esm/tests/public-api/llm-and-agents.test.js +128 -0
  608. package/dist/esm/tests/public-api/llm-and-agents.test.js.map +7 -0
  609. package/dist/esm/tests/public-api/public-error-types.test.js +71 -0
  610. package/dist/esm/tests/public-api/public-error-types.test.js.map +7 -0
  611. package/dist/esm/tests/public-api/public-types.test.js +74 -0
  612. package/dist/esm/tests/public-api/public-types.test.js.map +7 -0
  613. package/dist/esm/tests/public-api/runtime-utils.test.js +31 -0
  614. package/dist/esm/tests/public-api/runtime-utils.test.js.map +7 -0
  615. package/dist/esm/tests/public-api/schema-utils.test.js +78 -0
  616. package/dist/esm/tests/public-api/schema-utils.test.js.map +7 -0
  617. package/dist/esm/tests/public-api/timeout-error-types.test.js +81 -0
  618. package/dist/esm/tests/public-api/timeout-error-types.test.js.map +7 -0
  619. package/dist/esm/tests/public-api/tool-type-export.test.js +25 -0
  620. package/dist/esm/tests/public-api/tool-type-export.test.js.map +7 -0
  621. package/dist/esm/tests/public-api/v3-core.test.js +82 -0
  622. package/dist/esm/tests/public-api/v3-core.test.js.map +7 -0
  623. package/dist/esm/tests/safety-confirmation.test.js +134 -0
  624. package/dist/esm/tests/safety-confirmation.test.js.map +7 -0
  625. package/dist/esm/tests/snapshot-a11y-resolvers.test.js +348 -0
  626. package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +7 -0
  627. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +300 -0
  628. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +7 -0
  629. package/dist/esm/tests/snapshot-capture-orchestration.test.js +381 -0
  630. package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +7 -0
  631. package/dist/esm/tests/snapshot-cbor.test.js +197 -0
  632. package/dist/esm/tests/snapshot-cbor.test.js.map +7 -0
  633. package/dist/esm/tests/snapshot-dom-session-builders.test.js +251 -0
  634. package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +7 -0
  635. package/dist/esm/tests/snapshot-dom-tree-utils.test.js +109 -0
  636. package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +7 -0
  637. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +49 -0
  638. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +7 -0
  639. package/dist/esm/tests/snapshot-frame-merge.test.js +391 -0
  640. package/dist/esm/tests/snapshot-frame-merge.test.js.map +7 -0
  641. package/dist/esm/tests/snapshot-tree-format-utils.test.js +113 -0
  642. package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +7 -0
  643. package/dist/esm/tests/snapshot-xpath-utils.test.js +79 -0
  644. package/dist/esm/tests/snapshot-xpath-utils.test.js.map +7 -0
  645. package/dist/esm/tests/timeout-handlers.test.js +850 -0
  646. package/dist/esm/tests/timeout-handlers.test.js.map +7 -0
  647. package/dist/esm/tests/xpath-parser.test.js +317 -0
  648. package/dist/esm/tests/xpath-parser.test.js.map +7 -0
  649. package/dist/esm/tests/xpath-resolver.test.js +73 -0
  650. package/dist/esm/tests/xpath-resolver.test.js.map +7 -0
  651. package/dist/esm/tests/zod-enum-compatibility.test.js +97 -0
  652. package/dist/esm/tests/zod-enum-compatibility.test.js.map +7 -0
  653. package/package.json +42 -27
  654. package/dist/index.d.ts +0 -4321
  655. package/dist/index.js +0 -69585
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentCache.js","sourceRoot":"","sources":["../../../../../lib/v3/cache/AgentCache.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"crypto\";\nimport type { ActHandler } from \"../handlers/actHandler.js\";\nimport type { LLMClient } from \"../llm/LLMClient.js\";\nimport type {\n AgentReplayActStep,\n AgentReplayFillFormStep,\n AgentReplayGotoStep,\n AgentReplayKeysStep,\n AgentReplayNavBackStep,\n AgentReplayScrollStep,\n AgentReplayStep,\n AgentReplayWaitStep,\n CachedAgentEntry,\n SanitizedAgentExecuteOptions,\n ActFn,\n AgentCacheContext,\n AgentCacheDeps,\n AgentCacheTransferPayload,\n} from \"../types/private/index.js\";\nimport type {\n Action,\n AgentResult,\n AgentStreamResult,\n AgentConfig,\n AgentExecuteOptionsBase,\n AvailableModel,\n Logger,\n} from \"../types/public/index.js\";\nimport type { Page } from \"../understudy/page.js\";\nimport type { V3Context } from \"../understudy/context.js\";\nimport { CacheStorage } from \"./CacheStorage.js\";\nimport {\n cloneForCache,\n safeGetPageUrl,\n waitForCachedSelector,\n} from \"./utils.js\";\n\nconst SENSITIVE_CONFIG_KEYS = new Set([\"apikey\", \"api_key\", \"api-key\"]);\n\nexport class AgentCache {\n private readonly storage: CacheStorage;\n private readonly logger: Logger;\n private readonly getActHandler: () => ActHandler | null;\n private readonly getContext: () => V3Context | null;\n private readonly getDefaultLlmClient: () => LLMClient;\n private readonly getBaseModelName: () => AvailableModel;\n private readonly getSystemPrompt: () => string | undefined;\n private readonly domSettleTimeoutMs?: number;\n private readonly act: ActFn;\n private readonly bufferLatestEntry: boolean;\n\n private recording: AgentReplayStep[] | null = null;\n private latestEntry: AgentCacheTransferPayload | null = null;\n\n constructor({\n storage,\n logger,\n getActHandler,\n getContext,\n getDefaultLlmClient,\n getBaseModelName,\n getSystemPrompt,\n domSettleTimeoutMs,\n act,\n bufferLatestEntry,\n }: AgentCacheDeps) {\n this.storage = storage;\n this.logger = logger;\n this.getActHandler = getActHandler;\n this.getContext = getContext;\n this.getDefaultLlmClient = getDefaultLlmClient;\n this.getBaseModelName = getBaseModelName;\n this.getSystemPrompt = getSystemPrompt;\n this.domSettleTimeoutMs = domSettleTimeoutMs;\n this.act = act;\n this.bufferLatestEntry = bufferLatestEntry ?? false;\n }\n\n get enabled(): boolean {\n return this.storage.enabled;\n }\n\n shouldAttemptCache(instruction: string): boolean {\n return this.enabled && instruction.trim().length > 0;\n }\n\n sanitizeExecuteOptions(\n options?: AgentExecuteOptionsBase,\n ): SanitizedAgentExecuteOptions {\n if (!options) return {};\n const sanitized: SanitizedAgentExecuteOptions = {};\n if (typeof options.maxSteps === \"number\") {\n sanitized.maxSteps = options.maxSteps;\n }\n if (\n \"highlightCursor\" in options &&\n typeof (options as { highlightCursor?: unknown }).highlightCursor ===\n \"boolean\"\n ) {\n sanitized.highlightCursor = (\n options as { highlightCursor?: boolean }\n ).highlightCursor;\n }\n return sanitized;\n }\n\n buildConfigSignature(agentOptions?: AgentConfig): string {\n const toolKeys = agentOptions?.tools\n ? Object.keys(agentOptions.tools).sort()\n : undefined;\n const integrationSignatures = agentOptions?.integrations\n ? agentOptions.integrations.map((integration) =>\n typeof integration === \"string\" ? integration : \"client\",\n )\n : undefined;\n const serializedModel = this.serializeAgentModelForCache(\n agentOptions?.model,\n );\n const serializedExecutionModel = this.serializeAgentModelForCache(\n agentOptions?.executionModel,\n );\n\n const isCuaMode =\n agentOptions?.mode !== undefined\n ? agentOptions.mode === \"cua\"\n : agentOptions?.cua === true;\n\n return JSON.stringify({\n v3Model: this.getBaseModelName(),\n systemPrompt: this.getSystemPrompt() ?? \"\",\n agent: {\n cua: isCuaMode,\n model: serializedModel ?? null,\n executionModel: isCuaMode ? null : serializedExecutionModel,\n systemPrompt: agentOptions?.systemPrompt ?? null,\n toolKeys,\n integrations: integrationSignatures,\n },\n });\n }\n\n async prepareContext(params: {\n instruction: string;\n options: SanitizedAgentExecuteOptions;\n configSignature: string;\n page: Page;\n }): Promise<AgentCacheContext | null> {\n if (!this.shouldAttemptCache(params.instruction)) {\n return null;\n }\n const instruction = params.instruction.trim();\n const startUrl = await safeGetPageUrl(params.page);\n const cacheKey = this.buildAgentCacheKey(\n instruction,\n startUrl,\n params.options,\n params.configSignature,\n );\n return {\n instruction,\n startUrl,\n options: params.options,\n configSignature: params.configSignature,\n cacheKey,\n };\n }\n\n async tryReplay(\n context: AgentCacheContext,\n llmClientOverride?: LLMClient,\n ): Promise<AgentResult | null> {\n if (!this.enabled) return null;\n\n const {\n value: entry,\n error,\n path,\n } = await this.storage.readJson<CachedAgentEntry>(\n `agent-${context.cacheKey}.json`,\n );\n if (error && path) {\n this.logger({\n category: \"cache\",\n message: `failed to read agent cache entry: ${path}`,\n level: 1,\n auxiliary: {\n error: { value: String(error), type: \"string\" },\n },\n });\n return null;\n }\n if (!entry || entry.version !== 1) {\n return null;\n }\n\n this.logger({\n category: \"cache\",\n message: \"agent cache hit\",\n level: 1,\n auxiliary: {\n instruction: { value: context.instruction, type: \"string\" },\n url: { value: context.startUrl, type: \"string\" },\n },\n });\n\n return await this.replayAgentCacheEntry(context, entry, llmClientOverride);\n }\n\n /**\n * Attempts to replay a cached agent execution and returns it as a stream result.\n *\n * This method exists because the agent API exposes two execution modes:\n * - `execute()` - Returns a Promise<AgentResult> directly\n * - `stream()` - Returns an AgentStreamResult with async iterables for real-time output\n *\n * When a cache hit occurs, we need to return the appropriate type for each mode:\n * - For `execute()`, we use `tryReplay()` which returns AgentResult\n * - For `stream()`, we use `tryReplayAsStream()` which wraps the result in a\n * stream-compatible interface\n *\n * This ensures consumers using `stream()` can still iterate over `textStream`\n * and await `result` even when the response comes from cache, maintaining\n * API consistency regardless of whether the result was cached or live.\n */\n async tryReplayAsStream(\n context: AgentCacheContext,\n llmClientOverride?: LLMClient,\n ): Promise<AgentStreamResult | null> {\n const result = await this.tryReplay(context, llmClientOverride);\n if (!result) return null;\n return this.createCachedStreamResult(result);\n }\n\n /**\n * Creates a mock AgentStreamResult that wraps a cached AgentResult.\n *\n * AgentStreamResult (from the AI SDK) is a complex type with multiple async\n * iterables and promises. When serving from cache, we don't have an actual\n * LLM stream to consume - we just have the final result. This method creates\n * a \"fake\" stream\n\n * This approach lets cached responses be transparent to the consumer -\n * they can use the same iteration patterns whether the result is live or cached.\n */\n private createCachedStreamResult(\n cachedResult: AgentResult,\n ): AgentStreamResult {\n const message = cachedResult.message ?? \"\";\n\n async function* textStreamGenerator(): AsyncGenerator<string> {\n yield message;\n }\n\n async function* fullStreamGenerator(): AsyncGenerator<{\n type: string;\n textDelta?: string;\n }> {\n yield { type: \"text-delta\", textDelta: message };\n yield { type: \"finish\" };\n }\n\n const mockStreamResult = {\n textStream: textStreamGenerator(),\n fullStream: fullStreamGenerator(),\n result: Promise.resolve(cachedResult),\n text: Promise.resolve(message),\n usage: Promise.resolve({\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n }),\n finishReason: Promise.resolve(\"stop\" as const),\n experimental_providerMetadata: Promise.resolve(undefined),\n response: Promise.resolve({\n id: \"cached\",\n timestamp: new Date(),\n modelId: \"cached\",\n }),\n rawResponse: Promise.resolve({ headers: {} }),\n warnings: Promise.resolve([]),\n steps: Promise.resolve([]),\n toolCalls: Promise.resolve([]),\n toolResults: Promise.resolve([]),\n [Symbol.asyncIterator]: () => textStreamGenerator(),\n } as unknown as AgentStreamResult;\n\n return mockStreamResult;\n }\n\n /**\n * Wraps an AgentStreamResult with caching logic.\n *\n * This method handles the complexity of caching for streaming responses:\n * 1. Begins recording agent replay steps\n * 2. Wraps the stream's result promise to capture completion\n * 3. On success: ends recording and stores the cache entry\n * 4. On error: discards the recording\n *\n * This keeps the caching orchestration in AgentCache rather than\n * spreading it across the V3 class.\n *\n * @param context - The cache context for this execution\n * @param streamResult - The stream result from the agent handler\n * @param beginRecording - Callback to start recording (from V3)\n * @param endRecording - Callback to end recording and get steps (from V3)\n * @param discardRecording - Callback to discard recording on error (from V3)\n * @returns The wrapped stream result with caching enabled\n */\n wrapStreamForCaching(\n context: AgentCacheContext,\n streamResult: AgentStreamResult,\n beginRecording: () => void,\n endRecording: () => AgentReplayStep[],\n discardRecording: () => void,\n ): AgentStreamResult {\n beginRecording();\n\n const originalResultPromise = streamResult.result;\n const wrappedResultPromise = originalResultPromise.then(\n async (result) => {\n const agentSteps = endRecording();\n\n if (result.success && agentSteps.length > 0) {\n await this.store(context, agentSteps, result);\n }\n\n return result;\n },\n (error) => {\n discardRecording();\n throw error;\n },\n );\n\n streamResult.result = wrappedResultPromise;\n return streamResult;\n }\n\n async store(\n context: AgentCacheContext,\n steps: AgentReplayStep[],\n result: AgentResult,\n ): Promise<void> {\n if (!this.enabled) return;\n\n const entry: CachedAgentEntry = {\n version: 1,\n instruction: context.instruction,\n startUrl: context.startUrl,\n options: context.options,\n configSignature: context.configSignature,\n steps: cloneForCache(steps),\n result: this.pruneAgentResult(result),\n timestamp: new Date().toISOString(),\n };\n\n const { error, path } = await this.storage.writeJson(\n `agent-${context.cacheKey}.json`,\n entry,\n );\n if (error && path) {\n this.logger({\n category: \"cache\",\n message: \"failed to write agent cache entry\",\n level: 1,\n auxiliary: {\n error: { value: String(error), type: \"string\" },\n },\n });\n return;\n }\n\n this.logger({\n category: \"cache\",\n message: \"agent cache stored\",\n level: 2,\n auxiliary: {\n instruction: { value: context.instruction, type: \"string\" },\n steps: { value: String(steps.length), type: \"string\" },\n },\n });\n\n if (this.bufferLatestEntry) {\n this.latestEntry = {\n cacheKey: context.cacheKey,\n entry: cloneForCache(entry),\n };\n }\n }\n\n consumeBufferedEntry(): AgentCacheTransferPayload | null {\n if (!this.bufferLatestEntry || !this.latestEntry) {\n return null;\n }\n\n const payload = this.latestEntry;\n this.latestEntry = null;\n return payload;\n }\n\n async storeTransferredEntry(\n payload: AgentCacheTransferPayload | null,\n ): Promise<void> {\n if (!this.enabled || !payload) return;\n\n const entry = cloneForCache(payload.entry);\n const { error, path } = await this.storage.writeJson(\n `agent-${payload.cacheKey}.json`,\n entry,\n );\n if (error && path) {\n this.logger({\n category: \"cache\",\n message: \"failed to import remote agent cache entry\",\n level: 0,\n auxiliary: {\n error: { value: String(error), type: \"string\" },\n },\n });\n return;\n }\n\n this.logger({\n category: \"cache\",\n message: \"agent cache imported from server\",\n level: 2,\n auxiliary: {\n instruction: { value: entry.instruction, type: \"string\" },\n steps: { value: String(entry.steps?.length ?? 0), type: \"string\" },\n },\n });\n }\n\n /**\n * Clone the agent result and prune bulky fields (e.g. screenshot base64 blobs)\n * before persisting it to disk. This keeps cache entries compact without\n * mutating the live AgentResult returned to callers.\n */\n private pruneAgentResult(result: AgentResult): AgentResult {\n const cloned = cloneForCache(result);\n if (!Array.isArray(cloned.actions)) {\n return cloned;\n }\n\n for (const action of cloned.actions) {\n if (action?.type === \"screenshot\") {\n delete action.base64;\n }\n }\n\n return cloned;\n }\n\n beginRecording(): void {\n this.recording = [];\n }\n\n endRecording(): AgentReplayStep[] {\n if (!this.recording) return [];\n const steps = cloneForCache(this.recording);\n this.recording = null;\n return steps;\n }\n\n discardRecording(): void {\n this.recording = null;\n }\n\n isRecording(): boolean {\n return Array.isArray(this.recording);\n }\n\n recordStep(step: AgentReplayStep): void {\n if (!this.isRecording()) return;\n try {\n this.recording!.push(cloneForCache(step));\n } catch (err) {\n this.logger({\n category: \"cache\",\n message: \"failed to record agent replay step\",\n level: 2,\n auxiliary: {\n error: { value: String(err), type: \"string\" },\n },\n });\n }\n }\n\n isReplayActive(): boolean {\n return this.isRecording();\n }\n\n private serializeAgentModelForCache(\n model?: AgentConfig[\"model\"],\n ): null | string | { modelName: string; options?: Record<string, unknown> } {\n if (!model) return null;\n if (typeof model === \"string\") return model;\n\n const { modelName, ...modelOptions } = model;\n const sanitizedOptions =\n Object.keys(modelOptions).length > 0\n ? this.sanitizeModelOptionsForCache(\n modelOptions as Record<string, unknown>,\n )\n : undefined;\n return sanitizedOptions\n ? { modelName, options: sanitizedOptions }\n : modelName;\n }\n\n private buildAgentCacheKey(\n instruction: string,\n startUrl: string,\n options: SanitizedAgentExecuteOptions,\n configSignature: string,\n ): string {\n const payload = {\n instruction,\n startUrl,\n options,\n configSignature,\n };\n return createHash(\"sha256\").update(JSON.stringify(payload)).digest(\"hex\");\n }\n\n private sanitizeModelOptionsForCache(\n value: Record<string, unknown>,\n ): Record<string, unknown> | undefined {\n const sanitizedEntries: Record<string, unknown> = {};\n for (const [key, rawValue] of Object.entries(value)) {\n if (SENSITIVE_CONFIG_KEYS.has(key.toLowerCase())) {\n continue;\n }\n\n const sanitizedValue = this.sanitizeModelValueForCache(rawValue);\n if (sanitizedValue !== undefined) {\n sanitizedEntries[key] = sanitizedValue;\n }\n }\n\n return Object.keys(sanitizedEntries).length > 0\n ? sanitizedEntries\n : undefined;\n }\n\n private sanitizeModelValueForCache(value: unknown): unknown {\n if (Array.isArray(value)) {\n const sanitizedArray = value\n .map((item) => this.sanitizeModelValueForCache(item))\n .filter((item) => item !== undefined);\n return sanitizedArray;\n }\n\n if (value && typeof value === \"object\") {\n return this.sanitizeModelOptionsForCache(\n value as Record<string, unknown>,\n );\n }\n\n return value;\n }\n\n private async replayAgentCacheEntry(\n context: AgentCacheContext,\n entry: CachedAgentEntry,\n llmClientOverride?: LLMClient,\n ): Promise<AgentResult | null> {\n const ctx = this.getContext();\n const handler = this.getActHandler();\n if (!ctx || !handler) return null;\n const effectiveClient = llmClientOverride ?? this.getDefaultLlmClient();\n try {\n const updatedSteps: AgentReplayStep[] = [];\n let stepsChanged = false;\n for (const step of entry.steps ?? []) {\n const replayedStep =\n (await this.executeAgentReplayStep(\n step,\n ctx,\n handler,\n effectiveClient,\n )) ?? step;\n stepsChanged ||= replayedStep !== step;\n updatedSteps.push(replayedStep);\n }\n const result = cloneForCache(entry.result);\n result.usage = {\n input_tokens: 0,\n output_tokens: 0,\n reasoning_tokens: 0,\n cached_input_tokens: 0,\n inference_time_ms: 0,\n };\n result.metadata = {\n ...(result.metadata ?? {}),\n cacheHit: true,\n cacheTimestamp: entry.timestamp,\n };\n if (stepsChanged) {\n await this.refreshAgentCacheEntry(context, entry, updatedSteps);\n }\n return result;\n } catch (err) {\n this.logger({\n category: \"cache\",\n message: \"agent cache replay failed\",\n level: 1,\n auxiliary: {\n error: { value: String(err), type: \"string\" },\n },\n });\n return null;\n }\n }\n\n private async executeAgentReplayStep(\n step: AgentReplayStep,\n ctx: V3Context,\n handler: ActHandler,\n llmClient: LLMClient,\n ): Promise<AgentReplayStep> {\n switch (step.type) {\n case \"act\":\n return await this.replayAgentActStep(\n step as AgentReplayActStep,\n ctx,\n handler,\n llmClient,\n );\n case \"fillForm\":\n return await this.replayAgentFillFormStep(\n step as AgentReplayFillFormStep,\n ctx,\n handler,\n llmClient,\n );\n case \"goto\":\n await this.replayAgentGotoStep(step as AgentReplayGotoStep, ctx);\n return step;\n case \"scroll\":\n await this.replayAgentScrollStep(step as AgentReplayScrollStep, ctx);\n return step;\n case \"wait\":\n await this.replayAgentWaitStep(step as AgentReplayWaitStep);\n return step;\n case \"navback\":\n await this.replayAgentNavBackStep(step as AgentReplayNavBackStep, ctx);\n return step;\n case \"keys\":\n await this.replayAgentKeysStep(step as AgentReplayKeysStep, ctx);\n return step;\n case \"done\":\n case \"extract\":\n case \"screenshot\":\n case \"ariaTree\":\n return step;\n default:\n this.logger({\n category: \"cache\",\n message: `agent cache skipping step type: ${step.type}`,\n level: 2,\n });\n return step;\n }\n }\n\n private async replayAgentActStep(\n step: AgentReplayActStep,\n ctx: V3Context,\n handler: ActHandler,\n llmClient: LLMClient,\n ): Promise<AgentReplayActStep> {\n const actions = Array.isArray(step.actions) ? step.actions : [];\n if (actions.length > 0) {\n const page = await ctx.awaitActivePage();\n const updatedActions: Action[] = [];\n for (const action of actions) {\n await waitForCachedSelector({\n page,\n selector: action.selector,\n timeout: this.domSettleTimeoutMs,\n logger: this.logger,\n context: \"agent act\",\n });\n const result = await handler.takeDeterministicAction(\n action,\n page,\n this.domSettleTimeoutMs,\n llmClient,\n );\n if (result.success && Array.isArray(result.actions)) {\n updatedActions.push(...cloneForCache(result.actions));\n } else {\n updatedActions.push(cloneForCache(action));\n }\n }\n if (this.haveActionsChanged(actions, updatedActions)) {\n return { ...step, actions: updatedActions };\n }\n return step;\n }\n await this.act(step.instruction, { timeout: step.timeout });\n return step;\n }\n\n private async replayAgentFillFormStep(\n step: AgentReplayFillFormStep,\n ctx: V3Context,\n handler: ActHandler,\n llmClient: LLMClient,\n ): Promise<AgentReplayFillFormStep> {\n const actions =\n Array.isArray(step.actions) && step.actions.length > 0\n ? step.actions\n : (step.observeResults ?? []);\n if (!Array.isArray(actions) || actions.length === 0) {\n return step;\n }\n const page = await ctx.awaitActivePage();\n const updatedActions: Action[] = [];\n for (const action of actions) {\n await waitForCachedSelector({\n page,\n selector: action.selector,\n timeout: this.domSettleTimeoutMs,\n logger: this.logger,\n context: \"fillForm\",\n });\n const result = await handler.takeDeterministicAction(\n action,\n page,\n this.domSettleTimeoutMs,\n llmClient,\n );\n if (result.success && Array.isArray(result.actions)) {\n updatedActions.push(...cloneForCache(result.actions));\n } else {\n updatedActions.push(cloneForCache(action));\n }\n }\n if (this.haveActionsChanged(actions, updatedActions)) {\n return { ...step, actions: updatedActions };\n }\n return step;\n }\n\n private async replayAgentGotoStep(\n step: AgentReplayGotoStep,\n ctx: V3Context,\n ): Promise<void> {\n const page = await ctx.awaitActivePage();\n await page.goto(step.url, { waitUntil: step.waitUntil ?? \"load\" });\n }\n\n private async replayAgentScrollStep(\n step: AgentReplayScrollStep,\n ctx: V3Context,\n ): Promise<void> {\n const page = await ctx.awaitActivePage();\n let anchor = step.anchor;\n if (!anchor) {\n anchor = await page\n .mainFrame()\n .evaluate<{ x: number; y: number }>(() => ({\n x: Math.max(0, Math.floor(window.innerWidth / 2)),\n y: Math.max(0, Math.floor(window.innerHeight / 2)),\n }));\n }\n const deltaX = step.deltaX ?? 0;\n const deltaY = step.deltaY ?? 0;\n await page.scroll(\n Math.round(anchor.x ?? 0),\n Math.round(anchor.y ?? 0),\n deltaX,\n deltaY,\n );\n }\n\n private async replayAgentWaitStep(step: AgentReplayWaitStep): Promise<void> {\n if (!step.timeMs || step.timeMs <= 0) return;\n await new Promise((resolve) => setTimeout(resolve, step.timeMs));\n }\n\n private async replayAgentNavBackStep(\n step: AgentReplayNavBackStep,\n ctx: V3Context,\n ): Promise<void> {\n const page = await ctx.awaitActivePage();\n await page.goBack({ waitUntil: step.waitUntil ?? \"domcontentloaded\" });\n }\n\n private async replayAgentKeysStep(\n step: AgentReplayKeysStep,\n ctx: V3Context,\n ): Promise<void> {\n const page = await ctx.awaitActivePage();\n const { method, text, keys, times } = step.playwrightArguments;\n const repeatCount = Math.max(1, times ?? 1);\n\n if (method === \"type\" && text) {\n for (let i = 0; i < repeatCount; i++) {\n await page.type(text, { delay: 100 });\n }\n } else if (method === \"press\" && keys) {\n for (let i = 0; i < repeatCount; i++) {\n await page.keyPress(keys, { delay: 100 });\n }\n }\n }\n\n private haveActionsChanged(original: Action[], updated: Action[]): boolean {\n if (original.length !== updated.length) {\n return true;\n }\n for (let i = 0; i < original.length; i += 1) {\n const orig = original[i];\n const next = updated[i];\n if (!orig || !next) {\n return true;\n }\n if (orig.selector !== next.selector) {\n return true;\n }\n if ((orig.description ?? \"\") !== (next.description ?? \"\")) {\n return true;\n }\n if ((orig.method ?? \"\") !== (next.method ?? \"\")) {\n return true;\n }\n const origArgs = Array.isArray(orig.arguments) ? orig.arguments : [];\n const nextArgs = Array.isArray(next.arguments) ? next.arguments : [];\n if (origArgs.length !== nextArgs.length) {\n return true;\n }\n for (let j = 0; j < origArgs.length; j += 1) {\n if (origArgs[j] !== nextArgs[j]) {\n return true;\n }\n }\n }\n return false;\n }\n\n private async refreshAgentCacheEntry(\n context: AgentCacheContext,\n entry: CachedAgentEntry,\n updatedSteps: AgentReplayStep[],\n ): Promise<void> {\n const updatedEntry: CachedAgentEntry = {\n ...entry,\n steps: cloneForCache(updatedSteps),\n timestamp: new Date().toISOString(),\n };\n const { error, path } = await this.storage.writeJson(\n `agent-${context.cacheKey}.json`,\n updatedEntry,\n );\n if (error && path) {\n this.logger({\n category: \"cache\",\n message: \"failed to update agent cache entry after self-heal\",\n level: 0,\n auxiliary: {\n error: { value: String(error), type: \"string\" },\n },\n });\n return;\n }\n this.logger({\n category: \"cache\",\n message: \"agent cache entry updated after self-heal\",\n level: 2,\n auxiliary: {\n instruction: { value: context.instruction, type: \"string\" },\n steps: { value: String(updatedSteps.length), type: \"string\" },\n },\n });\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type { Logger } from "../types/public/index.js";
2
+ import { ReadJsonResult, WriteJsonResult } from "../types/private/index.js";
3
+ export declare class CacheStorage {
4
+ private readonly logger;
5
+ private readonly dir?;
6
+ private readonly memoryStore?;
7
+ private constructor();
8
+ static create(cacheDir: string | undefined, logger: Logger, options?: {
9
+ label?: string;
10
+ }): CacheStorage;
11
+ static createMemory(logger: Logger): CacheStorage;
12
+ get directory(): string | undefined;
13
+ get enabled(): boolean;
14
+ private resolvePath;
15
+ readJson<T>(fileName: string): Promise<ReadJsonResult<T>>;
16
+ writeJson(fileName: string, data: unknown): Promise<WriteJsonResult>;
17
+ }
@@ -0,0 +1,98 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ const jsonClone = (value) => {
4
+ const serialized = JSON.stringify(value);
5
+ if (serialized === undefined) {
6
+ return value;
7
+ }
8
+ return JSON.parse(serialized);
9
+ };
10
+ export class CacheStorage {
11
+ logger;
12
+ dir;
13
+ memoryStore;
14
+ constructor(logger, dir, memoryStore) {
15
+ this.logger = logger;
16
+ this.dir = dir;
17
+ this.memoryStore = memoryStore;
18
+ }
19
+ static create(cacheDir, logger, options) {
20
+ if (!cacheDir) {
21
+ return new CacheStorage(logger);
22
+ }
23
+ const resolved = path.resolve(cacheDir);
24
+ try {
25
+ fs.mkdirSync(resolved, { recursive: true });
26
+ return new CacheStorage(logger, resolved);
27
+ }
28
+ catch (err) {
29
+ const label = options?.label ?? "cache directory";
30
+ logger({
31
+ category: "cache",
32
+ message: `unable to initialize ${label}: ${resolved}`,
33
+ level: 1,
34
+ auxiliary: {
35
+ error: { value: String(err), type: "string" },
36
+ },
37
+ });
38
+ return new CacheStorage(logger);
39
+ }
40
+ }
41
+ static createMemory(logger) {
42
+ return new CacheStorage(logger, undefined, new Map());
43
+ }
44
+ get directory() {
45
+ return this.dir;
46
+ }
47
+ get enabled() {
48
+ return !!this.dir || !!this.memoryStore;
49
+ }
50
+ resolvePath(fileName) {
51
+ if (!this.dir)
52
+ return null;
53
+ return path.join(this.dir, fileName);
54
+ }
55
+ async readJson(fileName) {
56
+ if (this.memoryStore) {
57
+ if (!this.memoryStore.has(fileName)) {
58
+ return { value: null };
59
+ }
60
+ const existing = this.memoryStore.get(fileName);
61
+ return { value: jsonClone(existing) };
62
+ }
63
+ const filePath = this.resolvePath(fileName);
64
+ if (!filePath) {
65
+ return { value: null };
66
+ }
67
+ try {
68
+ const raw = await fs.promises.readFile(filePath, "utf8");
69
+ return { value: JSON.parse(raw) };
70
+ }
71
+ catch (err) {
72
+ const code = err?.code;
73
+ if (code === "ENOENT") {
74
+ return { value: null };
75
+ }
76
+ return { value: null, error: err, path: filePath };
77
+ }
78
+ }
79
+ async writeJson(fileName, data) {
80
+ if (this.memoryStore) {
81
+ this.memoryStore.set(fileName, jsonClone(data));
82
+ return {};
83
+ }
84
+ const filePath = this.resolvePath(fileName);
85
+ if (!filePath) {
86
+ return {};
87
+ }
88
+ try {
89
+ await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
90
+ await fs.promises.writeFile(filePath, JSON.stringify(data, null, 2), "utf8");
91
+ return {};
92
+ }
93
+ catch (err) {
94
+ return { error: err, path: filePath };
95
+ }
96
+ }
97
+ }
98
+ //# sourceMappingURL=CacheStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheStorage.js","sourceRoot":"","sources":["../../../../../lib/v3/cache/CacheStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport type { Logger } from \"../types/public/index.js\";\nimport { ReadJsonResult, WriteJsonResult } from \"../types/private/index.js\";\n\nconst jsonClone = <T>(value: T): T => {\n const serialized = JSON.stringify(value);\n if (serialized === undefined) {\n return value;\n }\n return JSON.parse(serialized) as T;\n};\n\nexport class CacheStorage {\n private constructor(\n private readonly logger: Logger,\n private readonly dir?: string,\n private readonly memoryStore?: Map<string, unknown>,\n ) {}\n\n static create(\n cacheDir: string | undefined,\n logger: Logger,\n options?: { label?: string },\n ): CacheStorage {\n if (!cacheDir) {\n return new CacheStorage(logger);\n }\n\n const resolved = path.resolve(cacheDir);\n try {\n fs.mkdirSync(resolved, { recursive: true });\n return new CacheStorage(logger, resolved);\n } catch (err) {\n const label = options?.label ?? \"cache directory\";\n logger({\n category: \"cache\",\n message: `unable to initialize ${label}: ${resolved}`,\n level: 1,\n auxiliary: {\n error: { value: String(err), type: \"string\" },\n },\n });\n return new CacheStorage(logger);\n }\n }\n\n static createMemory(logger: Logger): CacheStorage {\n return new CacheStorage(logger, undefined, new Map());\n }\n\n get directory(): string | undefined {\n return this.dir;\n }\n\n get enabled(): boolean {\n return !!this.dir || !!this.memoryStore;\n }\n\n private resolvePath(fileName: string): string | null {\n if (!this.dir) return null;\n return path.join(this.dir, fileName);\n }\n\n async readJson<T>(fileName: string): Promise<ReadJsonResult<T>> {\n if (this.memoryStore) {\n if (!this.memoryStore.has(fileName)) {\n return { value: null };\n }\n const existing = this.memoryStore.get(fileName) as T;\n return { value: jsonClone(existing) };\n }\n\n const filePath = this.resolvePath(fileName);\n if (!filePath) {\n return { value: null };\n }\n\n try {\n const raw = await fs.promises.readFile(filePath, \"utf8\");\n return { value: JSON.parse(raw) as T };\n } catch (err) {\n const code = (err as NodeJS.ErrnoException)?.code;\n if (code === \"ENOENT\") {\n return { value: null };\n }\n return { value: null, error: err, path: filePath };\n }\n }\n\n async writeJson(fileName: string, data: unknown): Promise<WriteJsonResult> {\n if (this.memoryStore) {\n this.memoryStore.set(fileName, jsonClone(data));\n return {};\n }\n\n const filePath = this.resolvePath(fileName);\n if (!filePath) {\n return {};\n }\n\n try {\n await fs.promises.mkdir(path.dirname(filePath), { recursive: true });\n await fs.promises.writeFile(\n filePath,\n JSON.stringify(data, null, 2),\n \"utf8\",\n );\n return {};\n } catch (err) {\n return { error: err, path: filePath };\n }\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { V3 } from "../v3.js";
2
+ import type { AgentCacheTransferPayload } from "../types/private/index.js";
3
+ export interface ServerAgentCacheHandle {
4
+ complete(): AgentCacheTransferPayload | null;
5
+ discard(): void;
6
+ }
7
+ export declare function __internalCreateInMemoryAgentCacheHandle(stagehand: V3): ServerAgentCacheHandle;
@@ -0,0 +1,49 @@
1
+ import { AgentCache } from "./AgentCache.js";
2
+ import { CacheStorage } from "./CacheStorage.js";
3
+ // TODO (refactor-caching): this reflective access is a known temporary escape hatch.
4
+ // Once the caching internals are reworked, replace it with proper V3 helpers so
5
+ // we stop poking private fields from the outside.
6
+ function getInternalField(instance, key) {
7
+ return instance[key];
8
+ }
9
+ function setInternalField(instance, key, value) {
10
+ instance[key] = value;
11
+ }
12
+ function createMemoryAgentCache(stagehand) {
13
+ const resolveLlmClient = getInternalField(stagehand, "resolveLlmClient");
14
+ return new AgentCache({
15
+ storage: CacheStorage.createMemory(stagehand.logger),
16
+ logger: stagehand.logger,
17
+ getActHandler: () => getInternalField(stagehand, "actHandler"),
18
+ getContext: () => getInternalField(stagehand, "ctx"),
19
+ getDefaultLlmClient: () => resolveLlmClient.call(stagehand),
20
+ getBaseModelName: () => getInternalField(stagehand, "modelName"),
21
+ getSystemPrompt: () => getInternalField(stagehand, "opts").systemPrompt,
22
+ domSettleTimeoutMs: getInternalField(stagehand, "domSettleTimeoutMs"),
23
+ act: stagehand.act.bind(stagehand),
24
+ bufferLatestEntry: true,
25
+ });
26
+ }
27
+ export function __internalCreateInMemoryAgentCacheHandle(stagehand) {
28
+ const originalCache = getInternalField(stagehand, "agentCache");
29
+ const memoryCache = createMemoryAgentCache(stagehand);
30
+ setInternalField(stagehand, "agentCache", memoryCache);
31
+ let restored = false;
32
+ const restore = () => {
33
+ if (!restored) {
34
+ setInternalField(stagehand, "agentCache", originalCache);
35
+ restored = true;
36
+ }
37
+ };
38
+ return {
39
+ complete: () => {
40
+ const entry = memoryCache.consumeBufferedEntry();
41
+ restore();
42
+ return entry;
43
+ },
44
+ discard: () => {
45
+ restore();
46
+ },
47
+ };
48
+ }
49
+ //# sourceMappingURL=serverAgentCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverAgentCache.js","sourceRoot":"","sources":["../../../../../lib/v3/cache/serverAgentCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAcjD,qFAAqF;AACrF,gFAAgF;AAChF,kDAAkD;AAClD,SAAS,gBAAgB,CAAI,QAAY,EAAE,GAAW;IACpD,OAAQ,QAA+C,CAAC,GAAG,CAAM,CAAC;AACpE,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAY,EAAE,GAAW,EAAE,KAAc;IAChE,QAA+C,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChE,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAa;IAC3C,MAAM,gBAAgB,GAAG,gBAAgB,CAEvC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAEjC,OAAO,IAAI,UAAU,CAAC;QACpB,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC;QACpD,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,aAAa,EAAE,GAAG,EAAE,CAClB,gBAAgB,CAAoB,SAAS,EAAE,YAAY,CAAC;QAC9D,UAAU,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAmB,SAAS,EAAE,KAAK,CAAC;QACtE,mBAAmB,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3D,gBAAgB,EAAE,GAAG,EAAE,CACrB,gBAAgB,CAAiB,SAAS,EAAE,WAAW,CAAC;QAC1D,eAAe,EAAE,GAAG,EAAE,CACpB,gBAAgB,CAAY,SAAS,EAAE,MAAM,CAAC,CAAC,YAAY;QAC7D,kBAAkB,EAAE,gBAAgB,CAClC,SAAS,EACT,oBAAoB,CACrB;QACD,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,SAAa;IAEb,MAAM,aAAa,GAAG,gBAAgB,CAAa,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAEtD,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;YACzD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE;YACb,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { AgentCache } from \"./AgentCache.js\";\nimport { CacheStorage } from \"./CacheStorage.js\";\nimport type { V3 } from \"../v3.js\";\nimport type { AgentCacheTransferPayload } from \"../types/private/index.js\";\nimport type { ActHandler } from \"../handlers/actHandler.js\";\nimport type { V3Context } from \"../understudy/context.js\";\nimport type { AvailableModel, V3Options } from \"../types/public/index.js\";\nimport type { ModelConfiguration } from \"../types/public/model.js\";\nimport type { LLMClient } from \"../llm/LLMClient.js\";\n\nexport interface ServerAgentCacheHandle {\n complete(): AgentCacheTransferPayload | null;\n discard(): void;\n}\n\n// TODO (refactor-caching): this reflective access is a known temporary escape hatch.\n// Once the caching internals are reworked, replace it with proper V3 helpers so\n// we stop poking private fields from the outside.\nfunction getInternalField<T>(instance: V3, key: string): T {\n return (instance as unknown as Record<string, unknown>)[key] as T;\n}\n\nfunction setInternalField(instance: V3, key: string, value: unknown): void {\n (instance as unknown as Record<string, unknown>)[key] = value;\n}\n\nfunction createMemoryAgentCache(stagehand: V3): AgentCache {\n const resolveLlmClient = getInternalField<\n (model?: ModelConfiguration) => LLMClient\n >(stagehand, \"resolveLlmClient\");\n\n return new AgentCache({\n storage: CacheStorage.createMemory(stagehand.logger),\n logger: stagehand.logger,\n getActHandler: () =>\n getInternalField<ActHandler | null>(stagehand, \"actHandler\"),\n getContext: () => getInternalField<V3Context | null>(stagehand, \"ctx\"),\n getDefaultLlmClient: () => resolveLlmClient.call(stagehand),\n getBaseModelName: () =>\n getInternalField<AvailableModel>(stagehand, \"modelName\"),\n getSystemPrompt: () =>\n getInternalField<V3Options>(stagehand, \"opts\").systemPrompt,\n domSettleTimeoutMs: getInternalField<number | undefined>(\n stagehand,\n \"domSettleTimeoutMs\",\n ),\n act: stagehand.act.bind(stagehand),\n bufferLatestEntry: true,\n });\n}\n\nexport function __internalCreateInMemoryAgentCacheHandle(\n stagehand: V3,\n): ServerAgentCacheHandle {\n const originalCache = getInternalField<AgentCache>(stagehand, \"agentCache\");\n const memoryCache = createMemoryAgentCache(stagehand);\n\n setInternalField(stagehand, \"agentCache\", memoryCache);\n let restored = false;\n const restore = () => {\n if (!restored) {\n setInternalField(stagehand, \"agentCache\", originalCache);\n restored = true;\n }\n };\n\n return {\n complete: () => {\n const entry = memoryCache.consumeBufferedEntry();\n restore();\n return entry;\n },\n discard: () => {\n restore();\n },\n };\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import type { Logger } from "../types/public/index.js";
2
+ import { Page } from "../understudy/page.js";
3
+ export declare function cloneForCache<T>(value: T): T;
4
+ export declare function safeGetPageUrl(page: Page): Promise<string>;
5
+ /**
6
+ * Waits for a cached action's selector to be attached to the DOM before executing.
7
+ * Logs a warning and proceeds if the wait times out (non-blocking).
8
+ */
9
+ export declare function waitForCachedSelector(params: {
10
+ page: Page;
11
+ selector: string | undefined;
12
+ timeout: number | undefined;
13
+ logger: Logger;
14
+ context?: string;
15
+ }): Promise<void>;
@@ -0,0 +1,39 @@
1
+ const DEFAULT_WAIT_TIMEOUT_MS = 15000;
2
+ export function cloneForCache(value) {
3
+ return JSON.parse(JSON.stringify(value));
4
+ }
5
+ export async function safeGetPageUrl(page) {
6
+ try {
7
+ return page.url();
8
+ }
9
+ catch {
10
+ return "";
11
+ }
12
+ }
13
+ /**
14
+ * Waits for a cached action's selector to be attached to the DOM before executing.
15
+ * Logs a warning and proceeds if the wait times out (non-blocking).
16
+ */
17
+ export async function waitForCachedSelector(params) {
18
+ const { page, selector, timeout, logger, context } = params;
19
+ if (!selector)
20
+ return;
21
+ try {
22
+ await page.waitForSelector(selector, {
23
+ state: "attached",
24
+ timeout: timeout ?? DEFAULT_WAIT_TIMEOUT_MS,
25
+ });
26
+ }
27
+ catch (err) {
28
+ logger({
29
+ category: "cache",
30
+ message: `waitForSelector failed for ${context ?? "cached"} action selector, proceeding anyway`,
31
+ level: 2,
32
+ auxiliary: {
33
+ selector: { value: selector, type: "string" },
34
+ error: { value: String(err), type: "string" },
35
+ },
36
+ });
37
+ }
38
+ }
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../lib/v3/cache/utils.ts"],"names":[],"mappings":"AAGA,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,MAAM,UAAU,aAAa,CAAI,KAAQ;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAU;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAM3C;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAC5D,IAAI,CAAC,QAAQ;QAAE,OAAO;IAEtB,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;YACnC,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,OAAO,IAAI,uBAAuB;SAC5C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC;YACL,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,8BAA8B,OAAO,IAAI,QAAQ,qCAAqC;YAC/F,KAAK,EAAE,CAAC;YACR,SAAS,EAAE;gBACT,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC7C,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC","sourcesContent":["import type { Logger } from \"../types/public/index.js\";\nimport { Page } from \"../understudy/page.js\";\n\nconst DEFAULT_WAIT_TIMEOUT_MS = 15000;\n\nexport function cloneForCache<T>(value: T): T {\n return JSON.parse(JSON.stringify(value)) as T;\n}\n\nexport async function safeGetPageUrl(page: Page): Promise<string> {\n try {\n return page.url();\n } catch {\n return \"\";\n }\n}\n\n/**\n * Waits for a cached action's selector to be attached to the DOM before executing.\n * Logs a warning and proceeds if the wait times out (non-blocking).\n */\nexport async function waitForCachedSelector(params: {\n page: Page;\n selector: string | undefined;\n timeout: number | undefined;\n logger: Logger;\n context?: string;\n}): Promise<void> {\n const { page, selector, timeout, logger, context } = params;\n if (!selector) return;\n\n try {\n await page.waitForSelector(selector, {\n state: \"attached\",\n timeout: timeout ?? DEFAULT_WAIT_TIMEOUT_MS,\n });\n } catch (err) {\n logger({\n category: \"cache\",\n message: `waitForSelector failed for ${context ?? \"cached\"} action selector, proceeding anyway`,\n level: 2,\n auxiliary: {\n selector: { value: selector, type: \"string\" },\n error: { value: String(err), type: \"string\" },\n },\n });\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ export declare function getScrollOffsets(): {
2
+ sx: number;
3
+ sy: number;
4
+ };
5
+ export declare function getBoundingRectLite(this: Element): {
6
+ left: number;
7
+ top: number;
8
+ };
9
+ export declare function resolveDeepActiveElement(): Element | null;
10
+ export declare function nodeToAbsoluteXPath(this: Node | null | undefined): string;
11
+ export declare function documentHasFocusStrict(): boolean;
@@ -0,0 +1,117 @@
1
+ export function getScrollOffsets() {
2
+ try {
3
+ const sx = window.scrollX ??
4
+ window.pageXOffset ??
5
+ document.documentElement?.scrollLeft ??
6
+ 0;
7
+ const sy = window.scrollY ??
8
+ window.pageYOffset ??
9
+ document.documentElement?.scrollTop ??
10
+ 0;
11
+ return { sx: Number(sx) || 0, sy: Number(sy) || 0 };
12
+ }
13
+ catch {
14
+ return { sx: 0, sy: 0 };
15
+ }
16
+ }
17
+ export function getBoundingRectLite() {
18
+ try {
19
+ const rect = this.getBoundingClientRect();
20
+ return {
21
+ left: Number(rect?.left ?? 0) || 0,
22
+ top: Number(rect?.top ?? 0) || 0,
23
+ };
24
+ }
25
+ catch {
26
+ return { left: 0, top: 0 };
27
+ }
28
+ }
29
+ export function resolveDeepActiveElement() {
30
+ try {
31
+ const deepActive = (doc) => {
32
+ let el = doc.activeElement ?? null;
33
+ while (el && el.shadowRoot && el.shadowRoot.activeElement) {
34
+ el = el.shadowRoot.activeElement;
35
+ }
36
+ return el ?? null;
37
+ };
38
+ return deepActive(document);
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
44
+ export function nodeToAbsoluteXPath() {
45
+ const compute = (node) => {
46
+ try {
47
+ const sibIndex = (n) => {
48
+ if (!n || !n.parentNode)
49
+ return 1;
50
+ let i = 1;
51
+ const targetKey = `${n.nodeType}:${(n.nodeName || "").toLowerCase()}`;
52
+ for (let p = n.previousSibling; p; p = p.previousSibling) {
53
+ const key = `${p.nodeType}:${(p.nodeName || "").toLowerCase()}`;
54
+ if (key === targetKey)
55
+ i += 1;
56
+ }
57
+ return i;
58
+ };
59
+ const step = (n) => {
60
+ if (!n)
61
+ return "";
62
+ if (n.nodeType === Node.DOCUMENT_NODE)
63
+ return "";
64
+ if (n.nodeType === Node.DOCUMENT_FRAGMENT_NODE)
65
+ return "//";
66
+ if (n.nodeType === Node.TEXT_NODE)
67
+ return `text()[${sibIndex(n)}]`;
68
+ if (n.nodeType === Node.COMMENT_NODE)
69
+ return `comment()[${sibIndex(n)}]`;
70
+ const tag = (n.nodeName || "").toLowerCase();
71
+ const name = tag.includes(":") ? `*[name()='${tag}']` : tag;
72
+ return `${name}[${sibIndex(n)}]`;
73
+ };
74
+ const parts = [];
75
+ let cur = node;
76
+ while (cur) {
77
+ if (cur.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
78
+ parts.push("//");
79
+ cur = cur.host ?? null;
80
+ continue;
81
+ }
82
+ const s = step(cur);
83
+ if (s)
84
+ parts.push(s);
85
+ cur = cur.parentNode;
86
+ }
87
+ parts.reverse();
88
+ let out = "";
89
+ for (const part of parts) {
90
+ if (part === "//") {
91
+ out = out ? (out.endsWith("/") ? `${out}/` : `${out}//`) : "//";
92
+ }
93
+ else {
94
+ out = out
95
+ ? out.endsWith("/")
96
+ ? `${out}${part}`
97
+ : `${out}/${part}`
98
+ : `/${part}`;
99
+ }
100
+ }
101
+ return out || "/";
102
+ }
103
+ catch {
104
+ return "/";
105
+ }
106
+ };
107
+ return compute(this);
108
+ }
109
+ export function documentHasFocusStrict() {
110
+ try {
111
+ return document.hasFocus() === true;
112
+ }
113
+ catch {
114
+ return false;
115
+ }
116
+ }
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../lib/v3/dom/a11yScripts/index.ts"],"names":[],"mappings":"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","sourcesContent":["export function getScrollOffsets(): { sx: number; sy: number } {\n try {\n const sx =\n window.scrollX ??\n window.pageXOffset ??\n document.documentElement?.scrollLeft ??\n 0;\n const sy =\n window.scrollY ??\n window.pageYOffset ??\n document.documentElement?.scrollTop ??\n 0;\n return { sx: Number(sx) || 0, sy: Number(sy) || 0 };\n } catch {\n return { sx: 0, sy: 0 };\n }\n}\n\nexport function getBoundingRectLite(this: Element): {\n left: number;\n top: number;\n} {\n try {\n const rect = this.getBoundingClientRect();\n return {\n left: Number(rect?.left ?? 0) || 0,\n top: Number(rect?.top ?? 0) || 0,\n };\n } catch {\n return { left: 0, top: 0 };\n }\n}\n\nexport function resolveDeepActiveElement(): Element | null {\n try {\n const deepActive = (doc: Document | ShadowRoot): Element | null => {\n let el: Element | null = doc.activeElement ?? null;\n while (el && el.shadowRoot && el.shadowRoot.activeElement) {\n el = el.shadowRoot.activeElement;\n }\n return el ?? null;\n };\n return deepActive(document);\n } catch {\n return null;\n }\n}\n\nexport function nodeToAbsoluteXPath(this: Node | null | undefined): string {\n const compute = (node: Node | null | undefined): string => {\n try {\n const sibIndex = (n: Node | null | undefined): number => {\n if (!n || !n.parentNode) return 1;\n let i = 1;\n const targetKey = `${n.nodeType}:${(n.nodeName || \"\").toLowerCase()}`;\n for (let p = n.previousSibling; p; p = p.previousSibling) {\n const key = `${p.nodeType}:${(p.nodeName || \"\").toLowerCase()}`;\n if (key === targetKey) i += 1;\n }\n return i;\n };\n\n const step = (n: Node | null | undefined): string => {\n if (!n) return \"\";\n if (n.nodeType === Node.DOCUMENT_NODE) return \"\";\n if (n.nodeType === Node.DOCUMENT_FRAGMENT_NODE) return \"//\";\n if (n.nodeType === Node.TEXT_NODE) return `text()[${sibIndex(n)}]`;\n if (n.nodeType === Node.COMMENT_NODE)\n return `comment()[${sibIndex(n)}]`;\n const tag = (n.nodeName || \"\").toLowerCase();\n const name = tag.includes(\":\") ? `*[name()='${tag}']` : tag;\n return `${name}[${sibIndex(n)}]`;\n };\n\n const parts: string[] = [];\n let cur: Node | null | undefined = node;\n while (cur) {\n if (cur.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n parts.push(\"//\");\n cur = (cur as ShadowRoot).host ?? null;\n continue;\n }\n const s = step(cur);\n if (s) parts.push(s);\n cur = cur.parentNode;\n }\n parts.reverse();\n\n let out = \"\";\n for (const part of parts) {\n if (part === \"//\") {\n out = out ? (out.endsWith(\"/\") ? `${out}/` : `${out}//`) : \"//\";\n } else {\n out = out\n ? out.endsWith(\"/\")\n ? `${out}${part}`\n : `${out}/${part}`\n : `/${part}`;\n }\n }\n return out || \"/\";\n } catch {\n return \"/\";\n }\n };\n\n return compute(this);\n}\n\nexport function documentHasFocusStrict(): boolean {\n try {\n return document.hasFocus() === true;\n } catch {\n return false;\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ export declare const a11yScriptBootstrap = "if (!globalThis.__stagehandA11yScripts) { var __stagehandA11yScriptsFactory=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var N=(o,t)=>{for(var n in t)i(o,n,{get:t[n],enumerable:!0})},h=(o,t,n,d)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let u of f(t))!p.call(o,u)&&u!==n&&i(o,u,{get:()=>t[u],enumerable:!(d=a(t,u))||d.enumerable});return o};var E=o=>h(i({},\"__esModule\",{value:!0}),o);var b={};N(b,{documentHasFocusStrict:()=>g,getBoundingRectLite:()=>w,getScrollOffsets:()=>y,nodeToAbsoluteXPath:()=>$,resolveDeepActiveElement:()=>T});function y(){try{let o=window.scrollX??window.pageXOffset??document.documentElement?.scrollLeft??0,t=window.scrollY??window.pageYOffset??document.documentElement?.scrollTop??0;return{sx:Number(o)||0,sy:Number(t)||0}}catch{return{sx:0,sy:0}}}function w(){try{let o=this.getBoundingClientRect();return{left:Number(o?.left??0)||0,top:Number(o?.top??0)||0}}catch{return{left:0,top:0}}}function T(){try{return(t=>{let n=t.activeElement??null;for(;n&&n.shadowRoot&&n.shadowRoot.activeElement;)n=n.shadowRoot.activeElement;return n??null})(document)}catch{return null}}function $(){return(t=>{try{let n=e=>{if(!e||!e.parentNode)return 1;let l=1,m=`${e.nodeType}:${(e.nodeName||\"\").toLowerCase()}`;for(let c=e.previousSibling;c;c=c.previousSibling)`${c.nodeType}:${(c.nodeName||\"\").toLowerCase()}`===m&&(l+=1);return l},d=e=>{if(!e||e.nodeType===Node.DOCUMENT_NODE)return\"\";if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return\"//\";if(e.nodeType===Node.TEXT_NODE)return`text()[${n(e)}]`;if(e.nodeType===Node.COMMENT_NODE)return`comment()[${n(e)}]`;let l=(e.nodeName||\"\").toLowerCase();return`${l.includes(\":\")?`*[name()='${l}']`:l}[${n(e)}]`},u=[],s=t;for(;s;){if(s.nodeType===Node.DOCUMENT_FRAGMENT_NODE){u.push(\"//\"),s=s.host??null;continue}let e=d(s);e&&u.push(e),s=s.parentNode}u.reverse();let r=\"\";for(let e of u)e===\"//\"?r=r?r.endsWith(\"/\")?`${r}/`:`${r}//`:\"//\":r=r?r.endsWith(\"/\")?`${r}${e}`:`${r}/${e}`:`/${e}`;return r||\"/\"}catch{return\"/\"}})(this)}function g(){try{return document.hasFocus()===!0}catch{return!1}}return E(b);})();\n globalThis.__stagehandA11yScripts = __stagehandA11yScriptsFactory;\n}";
2
+ export declare const a11yScriptSources: {
3
+ readonly documentHasFocusStrict: "function h(){try{return document.hasFocus()===!0}catch{return!1}}";
4
+ readonly getBoundingRectLite: "function f(){try{let r=this.getBoundingClientRect();return{left:Number(r?.left??0)||0,top:Number(r?.top??0)||0}}catch{return{left:0,top:0}}}";
5
+ readonly getScrollOffsets: "function a(){try{let r=window.scrollX??window.pageXOffset??document.documentElement?.scrollLeft??0,s=window.scrollY??window.pageYOffset??document.documentElement?.scrollTop??0;return{sx:Number(r)||0,sy:Number(s)||0}}catch{return{sx:0,sy:0}}}";
6
+ readonly nodeToAbsoluteXPath: "function N(){return(s=>{try{let n=e=>{if(!e||!e.parentNode)return 1;let u=1,d=`${e.nodeType}:${(e.nodeName||\"\").toLowerCase()}`;for(let l=e.previousSibling;l;l=l.previousSibling)`${l.nodeType}:${(l.nodeName||\"\").toLowerCase()}`===d&&(u+=1);return u},i=e=>{if(!e||e.nodeType===Node.DOCUMENT_NODE)return\"\";if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return\"//\";if(e.nodeType===Node.TEXT_NODE)return`text()[${n(e)}]`;if(e.nodeType===Node.COMMENT_NODE)return`comment()[${n(e)}]`;let u=(e.nodeName||\"\").toLowerCase();return`${u.includes(\":\")?`*[name()='${u}']`:u}[${n(e)}]`},c=[],o=s;for(;o;){if(o.nodeType===Node.DOCUMENT_FRAGMENT_NODE){c.push(\"//\"),o=o.host??null;continue}let e=i(o);e&&c.push(e),o=o.parentNode}c.reverse();let t=\"\";for(let e of c)e===\"//\"?t=t?t.endsWith(\"/\")?`${t}/`:`${t}//`:\"//\":t=t?t.endsWith(\"/\")?`${t}${e}`:`${t}/${e}`:`/${e}`;return t||\"/\"}catch{return\"/\"}})(this)}";
7
+ readonly resolveDeepActiveElement: "function p(){try{return(s=>{let n=s.activeElement??null;for(;n&&n.shadowRoot&&n.shadowRoot.activeElement;)n=n.shadowRoot.activeElement;return n??null})(document)}catch{return null}}";
8
+ };
9
+ export declare const a11yScriptGlobalRefs: {
10
+ readonly documentHasFocusStrict: "globalThis.__stagehandA11yScripts.documentHasFocusStrict";
11
+ readonly getBoundingRectLite: "globalThis.__stagehandA11yScripts.getBoundingRectLite";
12
+ readonly getScrollOffsets: "globalThis.__stagehandA11yScripts.getScrollOffsets";
13
+ readonly nodeToAbsoluteXPath: "globalThis.__stagehandA11yScripts.nodeToAbsoluteXPath";
14
+ readonly resolveDeepActiveElement: "globalThis.__stagehandA11yScripts.resolveDeepActiveElement";
15
+ };
16
+ export type A11yScriptName = keyof typeof a11yScriptSources;
@@ -0,0 +1,20 @@
1
+ /*
2
+ * AUTO-GENERATED FILE. DO NOT EDIT.
3
+ * Update sources in lib/v3/dom/a11yScripts and run genA11yScripts.ts.
4
+ */
5
+ export const a11yScriptBootstrap = "if (!globalThis.__stagehandA11yScripts) { var __stagehandA11yScriptsFactory=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var N=(o,t)=>{for(var n in t)i(o,n,{get:t[n],enumerable:!0})},h=(o,t,n,d)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let u of f(t))!p.call(o,u)&&u!==n&&i(o,u,{get:()=>t[u],enumerable:!(d=a(t,u))||d.enumerable});return o};var E=o=>h(i({},\"__esModule\",{value:!0}),o);var b={};N(b,{documentHasFocusStrict:()=>g,getBoundingRectLite:()=>w,getScrollOffsets:()=>y,nodeToAbsoluteXPath:()=>$,resolveDeepActiveElement:()=>T});function y(){try{let o=window.scrollX??window.pageXOffset??document.documentElement?.scrollLeft??0,t=window.scrollY??window.pageYOffset??document.documentElement?.scrollTop??0;return{sx:Number(o)||0,sy:Number(t)||0}}catch{return{sx:0,sy:0}}}function w(){try{let o=this.getBoundingClientRect();return{left:Number(o?.left??0)||0,top:Number(o?.top??0)||0}}catch{return{left:0,top:0}}}function T(){try{return(t=>{let n=t.activeElement??null;for(;n&&n.shadowRoot&&n.shadowRoot.activeElement;)n=n.shadowRoot.activeElement;return n??null})(document)}catch{return null}}function $(){return(t=>{try{let n=e=>{if(!e||!e.parentNode)return 1;let l=1,m=`${e.nodeType}:${(e.nodeName||\"\").toLowerCase()}`;for(let c=e.previousSibling;c;c=c.previousSibling)`${c.nodeType}:${(c.nodeName||\"\").toLowerCase()}`===m&&(l+=1);return l},d=e=>{if(!e||e.nodeType===Node.DOCUMENT_NODE)return\"\";if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return\"//\";if(e.nodeType===Node.TEXT_NODE)return`text()[${n(e)}]`;if(e.nodeType===Node.COMMENT_NODE)return`comment()[${n(e)}]`;let l=(e.nodeName||\"\").toLowerCase();return`${l.includes(\":\")?`*[name()='${l}']`:l}[${n(e)}]`},u=[],s=t;for(;s;){if(s.nodeType===Node.DOCUMENT_FRAGMENT_NODE){u.push(\"//\"),s=s.host??null;continue}let e=d(s);e&&u.push(e),s=s.parentNode}u.reverse();let r=\"\";for(let e of u)e===\"//\"?r=r?r.endsWith(\"/\")?`${r}/`:`${r}//`:\"//\":r=r?r.endsWith(\"/\")?`${r}${e}`:`${r}/${e}`:`/${e}`;return r||\"/\"}catch{return\"/\"}})(this)}function g(){try{return document.hasFocus()===!0}catch{return!1}}return E(b);})();\n globalThis.__stagehandA11yScripts = __stagehandA11yScriptsFactory;\n}";
6
+ export const a11yScriptSources = {
7
+ "documentHasFocusStrict": "function h(){try{return document.hasFocus()===!0}catch{return!1}}",
8
+ "getBoundingRectLite": "function f(){try{let r=this.getBoundingClientRect();return{left:Number(r?.left??0)||0,top:Number(r?.top??0)||0}}catch{return{left:0,top:0}}}",
9
+ "getScrollOffsets": "function a(){try{let r=window.scrollX??window.pageXOffset??document.documentElement?.scrollLeft??0,s=window.scrollY??window.pageYOffset??document.documentElement?.scrollTop??0;return{sx:Number(r)||0,sy:Number(s)||0}}catch{return{sx:0,sy:0}}}",
10
+ "nodeToAbsoluteXPath": "function N(){return(s=>{try{let n=e=>{if(!e||!e.parentNode)return 1;let u=1,d=`${e.nodeType}:${(e.nodeName||\"\").toLowerCase()}`;for(let l=e.previousSibling;l;l=l.previousSibling)`${l.nodeType}:${(l.nodeName||\"\").toLowerCase()}`===d&&(u+=1);return u},i=e=>{if(!e||e.nodeType===Node.DOCUMENT_NODE)return\"\";if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return\"//\";if(e.nodeType===Node.TEXT_NODE)return`text()[${n(e)}]`;if(e.nodeType===Node.COMMENT_NODE)return`comment()[${n(e)}]`;let u=(e.nodeName||\"\").toLowerCase();return`${u.includes(\":\")?`*[name()='${u}']`:u}[${n(e)}]`},c=[],o=s;for(;o;){if(o.nodeType===Node.DOCUMENT_FRAGMENT_NODE){c.push(\"//\"),o=o.host??null;continue}let e=i(o);e&&c.push(e),o=o.parentNode}c.reverse();let t=\"\";for(let e of c)e===\"//\"?t=t?t.endsWith(\"/\")?`${t}/`:`${t}//`:\"//\":t=t?t.endsWith(\"/\")?`${t}${e}`:`${t}/${e}`:`/${e}`;return t||\"/\"}catch{return\"/\"}})(this)}",
11
+ "resolveDeepActiveElement": "function p(){try{return(s=>{let n=s.activeElement??null;for(;n&&n.shadowRoot&&n.shadowRoot.activeElement;)n=n.shadowRoot.activeElement;return n??null})(document)}catch{return null}}"
12
+ };
13
+ export const a11yScriptGlobalRefs = {
14
+ "documentHasFocusStrict": "globalThis.__stagehandA11yScripts.documentHasFocusStrict",
15
+ "getBoundingRectLite": "globalThis.__stagehandA11yScripts.getBoundingRectLite",
16
+ "getScrollOffsets": "globalThis.__stagehandA11yScripts.getScrollOffsets",
17
+ "nodeToAbsoluteXPath": "globalThis.__stagehandA11yScripts.nodeToAbsoluteXPath",
18
+ "resolveDeepActiveElement": "globalThis.__stagehandA11yScripts.resolveDeepActiveElement"
19
+ };
20
+ //# sourceMappingURL=a11yScripts.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11yScripts.generated.js","sourceRoot":"","sources":["../../../../../../lib/v3/dom/build/a11yScripts.generated.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,4uEAA4uE,CAAC;AAChxE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,wBAAwB,EAAE,mEAAmE;IAC7F,qBAAqB,EAAE,8IAA8I;IACrK,kBAAkB,EAAE,mPAAmP;IACvQ,qBAAqB,EAAE,o5BAAo5B;IAC36B,0BAA0B,EAAE,uLAAuL;CAC3M,CAAC;AACX,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,wBAAwB,EAAE,0DAA0D;IACpF,qBAAqB,EAAE,uDAAuD;IAC9E,kBAAkB,EAAE,oDAAoD;IACxE,qBAAqB,EAAE,uDAAuD;IAC9E,0BAA0B,EAAE,4DAA4D;CAChF,CAAC","sourcesContent":["/*\n * AUTO-GENERATED FILE. DO NOT EDIT.\n * Update sources in lib/v3/dom/a11yScripts and run genA11yScripts.ts.\n */\nexport const a11yScriptBootstrap = \"if (!globalThis.__stagehandA11yScripts) { var __stagehandA11yScriptsFactory=(()=>{var i=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var N=(o,t)=>{for(var n in t)i(o,n,{get:t[n],enumerable:!0})},h=(o,t,n,d)=>{if(t&&typeof t==\\\"object\\\"||typeof t==\\\"function\\\")for(let u of f(t))!p.call(o,u)&&u!==n&&i(o,u,{get:()=>t[u],enumerable:!(d=a(t,u))||d.enumerable});return o};var E=o=>h(i({},\\\"__esModule\\\",{value:!0}),o);var b={};N(b,{documentHasFocusStrict:()=>g,getBoundingRectLite:()=>w,getScrollOffsets:()=>y,nodeToAbsoluteXPath:()=>$,resolveDeepActiveElement:()=>T});function y(){try{let o=window.scrollX??window.pageXOffset??document.documentElement?.scrollLeft??0,t=window.scrollY??window.pageYOffset??document.documentElement?.scrollTop??0;return{sx:Number(o)||0,sy:Number(t)||0}}catch{return{sx:0,sy:0}}}function w(){try{let o=this.getBoundingClientRect();return{left:Number(o?.left??0)||0,top:Number(o?.top??0)||0}}catch{return{left:0,top:0}}}function T(){try{return(t=>{let n=t.activeElement??null;for(;n&&n.shadowRoot&&n.shadowRoot.activeElement;)n=n.shadowRoot.activeElement;return n??null})(document)}catch{return null}}function $(){return(t=>{try{let n=e=>{if(!e||!e.parentNode)return 1;let l=1,m=`${e.nodeType}:${(e.nodeName||\\\"\\\").toLowerCase()}`;for(let c=e.previousSibling;c;c=c.previousSibling)`${c.nodeType}:${(c.nodeName||\\\"\\\").toLowerCase()}`===m&&(l+=1);return l},d=e=>{if(!e||e.nodeType===Node.DOCUMENT_NODE)return\\\"\\\";if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return\\\"//\\\";if(e.nodeType===Node.TEXT_NODE)return`text()[${n(e)}]`;if(e.nodeType===Node.COMMENT_NODE)return`comment()[${n(e)}]`;let l=(e.nodeName||\\\"\\\").toLowerCase();return`${l.includes(\\\":\\\")?`*[name()='${l}']`:l}[${n(e)}]`},u=[],s=t;for(;s;){if(s.nodeType===Node.DOCUMENT_FRAGMENT_NODE){u.push(\\\"//\\\"),s=s.host??null;continue}let e=d(s);e&&u.push(e),s=s.parentNode}u.reverse();let r=\\\"\\\";for(let e of u)e===\\\"//\\\"?r=r?r.endsWith(\\\"/\\\")?`${r}/`:`${r}//`:\\\"//\\\":r=r?r.endsWith(\\\"/\\\")?`${r}${e}`:`${r}/${e}`:`/${e}`;return r||\\\"/\\\"}catch{return\\\"/\\\"}})(this)}function g(){try{return document.hasFocus()===!0}catch{return!1}}return E(b);})();\\n globalThis.__stagehandA11yScripts = __stagehandA11yScriptsFactory;\\n}\";\nexport const a11yScriptSources = {\n \"documentHasFocusStrict\": \"function h(){try{return document.hasFocus()===!0}catch{return!1}}\",\n \"getBoundingRectLite\": \"function f(){try{let r=this.getBoundingClientRect();return{left:Number(r?.left??0)||0,top:Number(r?.top??0)||0}}catch{return{left:0,top:0}}}\",\n \"getScrollOffsets\": \"function a(){try{let r=window.scrollX??window.pageXOffset??document.documentElement?.scrollLeft??0,s=window.scrollY??window.pageYOffset??document.documentElement?.scrollTop??0;return{sx:Number(r)||0,sy:Number(s)||0}}catch{return{sx:0,sy:0}}}\",\n \"nodeToAbsoluteXPath\": \"function N(){return(s=>{try{let n=e=>{if(!e||!e.parentNode)return 1;let u=1,d=`${e.nodeType}:${(e.nodeName||\\\"\\\").toLowerCase()}`;for(let l=e.previousSibling;l;l=l.previousSibling)`${l.nodeType}:${(l.nodeName||\\\"\\\").toLowerCase()}`===d&&(u+=1);return u},i=e=>{if(!e||e.nodeType===Node.DOCUMENT_NODE)return\\\"\\\";if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return\\\"//\\\";if(e.nodeType===Node.TEXT_NODE)return`text()[${n(e)}]`;if(e.nodeType===Node.COMMENT_NODE)return`comment()[${n(e)}]`;let u=(e.nodeName||\\\"\\\").toLowerCase();return`${u.includes(\\\":\\\")?`*[name()='${u}']`:u}[${n(e)}]`},c=[],o=s;for(;o;){if(o.nodeType===Node.DOCUMENT_FRAGMENT_NODE){c.push(\\\"//\\\"),o=o.host??null;continue}let e=i(o);e&&c.push(e),o=o.parentNode}c.reverse();let t=\\\"\\\";for(let e of c)e===\\\"//\\\"?t=t?t.endsWith(\\\"/\\\")?`${t}/`:`${t}//`:\\\"//\\\":t=t?t.endsWith(\\\"/\\\")?`${t}${e}`:`${t}/${e}`:`/${e}`;return t||\\\"/\\\"}catch{return\\\"/\\\"}})(this)}\",\n \"resolveDeepActiveElement\": \"function p(){try{return(s=>{let n=s.activeElement??null;for(;n&&n.shadowRoot&&n.shadowRoot.activeElement;)n=n.shadowRoot.activeElement;return n??null})(document)}catch{return null}}\"\n} as const;\nexport const a11yScriptGlobalRefs = {\n \"documentHasFocusStrict\": \"globalThis.__stagehandA11yScripts.documentHasFocusStrict\",\n \"getBoundingRectLite\": \"globalThis.__stagehandA11yScripts.getBoundingRectLite\",\n \"getScrollOffsets\": \"globalThis.__stagehandA11yScripts.getScrollOffsets\",\n \"nodeToAbsoluteXPath\": \"globalThis.__stagehandA11yScripts.nodeToAbsoluteXPath\",\n \"resolveDeepActiveElement\": \"globalThis.__stagehandA11yScripts.resolveDeepActiveElement\"\n} as const;\nexport type A11yScriptName = keyof typeof a11yScriptSources;\n"]}