@browserbasehq/orca 3.1.0-patch.3 → 3.2.0-middleware.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.js +2 -210
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -25025
- package/dist/cjs/lib/inference.js +335 -0
- package/dist/cjs/lib/inference.js.map +1 -0
- package/dist/cjs/lib/inferenceLogUtils.js +99 -0
- package/dist/cjs/lib/inferenceLogUtils.js.map +1 -0
- package/dist/cjs/lib/logger.js +331 -0
- package/dist/cjs/lib/logger.js.map +1 -0
- package/dist/cjs/lib/modelUtils.d.ts +1 -0
- package/dist/cjs/lib/modelUtils.js +53 -0
- package/dist/cjs/lib/modelUtils.js.map +1 -0
- package/dist/cjs/lib/prompt.d.ts +3 -2
- package/dist/cjs/lib/prompt.js +245 -0
- package/dist/cjs/lib/prompt.js.map +1 -0
- package/dist/cjs/lib/utils.d.ts +1 -0
- package/dist/cjs/lib/utils.js +674 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/lib/v3/agent/AgentClient.d.ts +8 -0
- package/dist/cjs/lib/v3/agent/AgentClient.js +34 -0
- package/dist/cjs/lib/v3/agent/AgentClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/AgentProvider.js +81 -0
- package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -0
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +843 -0
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +802 -0
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +778 -0
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.d.ts +4 -4
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +681 -0
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +7 -3
- package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js +212 -0
- package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/act.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/act.js +66 -0
- package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
- package/dist/cjs/lib/v3/agent/tools/ariaTree.js +62 -0
- package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/braveSearch.js +77 -0
- package/dist/cjs/lib/v3/agent/tools/braveSearch.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.d.ts +13 -0
- package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.js +70 -0
- package/dist/cjs/lib/v3/agent/tools/browserbaseSearch.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/click.js +100 -0
- package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/clickAndHold.js +72 -0
- package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +101 -0
- package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/extract.js +101 -0
- package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +158 -0
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +8 -3
- package/dist/cjs/lib/v3/agent/tools/fillform.js +78 -0
- package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/goto.js +35 -0
- package/dist/cjs/lib/v3/agent/tools/goto.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/index.d.ts +25 -4
- package/dist/cjs/lib/v3/agent/tools/index.js +130 -0
- package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/keys.d.ts +1 -1
- package/dist/cjs/lib/v3/agent/tools/keys.js +64 -0
- package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/navback.js +27 -0
- package/dist/cjs/lib/v3/agent/tools/navback.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
- package/dist/cjs/lib/v3/agent/tools/screenshot.js +47 -0
- package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/scroll.js +159 -0
- package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/think.js +28 -0
- package/dist/cjs/lib/v3/agent/tools/think.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/type.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/type.js +111 -0
- package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/wait.js +63 -0
- package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/actionMapping.js +103 -0
- package/dist/cjs/lib/v3/agent/utils/actionMapping.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/captchaSolver.d.ts +76 -0
- package/dist/cjs/lib/v3/agent/utils/captchaSolver.js +175 -0
- package/dist/cjs/lib/v3/agent/utils/captchaSolver.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js +33 -0
- package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js +65 -0
- package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js +150 -0
- package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +108 -0
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/imageCompression.js +212 -0
- package/dist/cjs/lib/v3/agent/utils/imageCompression.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/messageProcessing.js +167 -0
- package/dist/cjs/lib/v3/agent/utils/messageProcessing.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js +29 -0
- package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js +90 -0
- package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/variables.d.ts +21 -0
- package/dist/cjs/lib/v3/agent/utils/variables.js +54 -0
- package/dist/cjs/lib/v3/agent/utils/variables.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/xpath.js +22 -0
- package/dist/cjs/lib/v3/agent/utils/xpath.js.map +1 -0
- package/dist/cjs/lib/v3/api.d.ts +23 -5
- package/dist/cjs/lib/v3/api.js +589 -0
- package/dist/cjs/lib/v3/api.js.map +1 -0
- package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
- package/dist/cjs/lib/v3/cache/ActCache.js +280 -0
- package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -0
- package/dist/cjs/lib/v3/cache/AgentCache.d.ts +1 -0
- package/dist/cjs/lib/v3/cache/AgentCache.js +651 -0
- package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -0
- package/dist/cjs/lib/v3/cache/CacheStorage.js +105 -0
- package/dist/cjs/lib/v3/cache/CacheStorage.js.map +1 -0
- package/dist/cjs/lib/v3/cache/serverAgentCache.js +52 -0
- package/dist/cjs/lib/v3/cache/serverAgentCache.js.map +1 -0
- package/dist/cjs/lib/v3/cache/utils.js +44 -0
- package/dist/cjs/lib/v3/cache/utils.js.map +1 -0
- package/dist/cjs/lib/v3/cli.js +15 -0
- package/dist/cjs/lib/v3/cli.js.map +1 -0
- package/dist/cjs/lib/v3/dom/a11yScripts/index.js +124 -0
- package/dist/cjs/lib/v3/dom/a11yScripts/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js +23 -0
- package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js +59 -0
- package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js +5 -0
- package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js +11 -0
- package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/scriptV3Content.js +5 -0
- package/dist/cjs/lib/v3/dom/build/scriptV3Content.js.map +1 -0
- package/dist/cjs/lib/v3/dom/index.js +18 -0
- package/dist/cjs/lib/v3/dom/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/counts.js +278 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/counts.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/index.js +21 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js +474 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js +289 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js +286 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js +381 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js +202 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
- package/dist/cjs/lib/v3/dom/piercer.entry.js +5 -0
- package/dist/cjs/lib/v3/dom/piercer.entry.js.map +1 -0
- package/dist/cjs/lib/v3/dom/piercer.runtime.js +93 -0
- package/dist/cjs/lib/v3/dom/piercer.runtime.js.map +1 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js +5 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js +43 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/index.js +6 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js +85 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
- package/dist/cjs/lib/v3/external_clients/aisdk.js +107 -0
- package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -0
- package/dist/cjs/lib/v3/external_clients/customOpenAI.js +224 -0
- package/dist/cjs/lib/v3/external_clients/customOpenAI.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/EventEmitter.d.ts +7 -0
- package/dist/cjs/lib/v3/flowlogger/EventEmitter.js +30 -0
- package/dist/cjs/lib/v3/flowlogger/EventEmitter.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/EventSink.d.ts +44 -0
- package/dist/cjs/lib/v3/flowlogger/EventSink.js +217 -0
- package/dist/cjs/lib/v3/flowlogger/EventSink.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/EventStore.d.ts +26 -0
- package/dist/cjs/lib/v3/flowlogger/EventStore.js +135 -0
- package/dist/cjs/lib/v3/flowlogger/EventStore.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/FlowLogger.d.ts +99 -0
- package/dist/cjs/lib/v3/flowlogger/FlowLogger.js +591 -0
- package/dist/cjs/lib/v3/flowlogger/FlowLogger.js.map +1 -0
- package/dist/cjs/lib/v3/flowlogger/prettify.d.ts +6 -0
- package/dist/cjs/lib/v3/flowlogger/prettify.js +395 -0
- package/dist/cjs/lib/v3/flowlogger/prettify.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/actHandler.d.ts +2 -1
- package/dist/cjs/lib/v3/handlers/actHandler.js +344 -0
- package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/extractHandler.js +144 -0
- package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +590 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js +17 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/observeHandler.js +159 -0
- package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.d.ts +2 -5
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +506 -0
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.d.ts +5 -0
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +652 -0
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
- package/dist/cjs/lib/v3/index.d.ts +143 -0
- package/dist/cjs/lib/v3/index.js +119 -0
- package/dist/cjs/lib/v3/index.js.map +1 -0
- package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
- package/dist/cjs/lib/v3/launch/browserbase.js +47 -0
- package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -0
- package/dist/cjs/lib/v3/launch/local.js +104 -0
- package/dist/cjs/lib/v3/launch/local.js.map +1 -0
- package/dist/cjs/lib/v3/llm/AnthropicClient.js +246 -0
- package/dist/cjs/lib/v3/llm/AnthropicClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/CerebrasClient.js +242 -0
- package/dist/cjs/lib/v3/llm/CerebrasClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/GoogleClient.js +373 -0
- package/dist/cjs/lib/v3/llm/GoogleClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/GroqClient.js +243 -0
- package/dist/cjs/lib/v3/llm/GroqClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/LLMClient.js +27 -0
- package/dist/cjs/lib/v3/llm/LLMClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/LLMProvider.d.ts +5 -2
- package/dist/cjs/lib/v3/llm/LLMProvider.js +201 -0
- package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -0
- package/dist/cjs/lib/v3/llm/OpenAIClient.js +336 -0
- package/dist/cjs/lib/v3/llm/OpenAIClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/aisdk.js +349 -0
- package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -0
- package/dist/cjs/lib/v3/logger.js +102 -0
- package/dist/cjs/lib/v3/logger.js.map +1 -0
- package/dist/cjs/lib/v3/mcp/connection.d.ts +2 -0
- package/dist/cjs/lib/v3/mcp/connection.js +56 -0
- package/dist/cjs/lib/v3/mcp/connection.js.map +1 -0
- package/dist/cjs/lib/v3/mcp/utils.js +40 -0
- package/dist/cjs/lib/v3/mcp/utils.js.map +1 -0
- package/dist/cjs/lib/v3/runtimePaths.d.ts +6 -0
- package/dist/cjs/lib/v3/runtimePaths.js +119 -0
- package/dist/cjs/lib/v3/runtimePaths.js.map +1 -0
- package/dist/cjs/lib/v3/shutdown/cleanupLocal.js +36 -0
- package/dist/cjs/lib/v3/shutdown/cleanupLocal.js.map +1 -0
- package/dist/cjs/lib/v3/shutdown/supervisor.js +193 -0
- package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -0
- package/dist/cjs/lib/v3/shutdown/supervisorClient.js +95 -0
- package/dist/cjs/lib/v3/shutdown/supervisorClient.js.map +1 -0
- package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
- package/dist/cjs/lib/v3/timeoutConfig.js +36 -0
- package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/agent.js +3 -0
- package/dist/cjs/lib/v3/types/private/agent.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/api.js +3 -0
- package/dist/cjs/lib/v3/types/private/api.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/cache.d.ts +3 -1
- package/dist/cjs/lib/v3/types/private/cache.js +3 -0
- package/dist/cjs/lib/v3/types/private/cache.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/evaluator.js +3 -0
- package/dist/cjs/lib/v3/types/private/evaluator.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -1
- package/dist/cjs/lib/v3/types/private/handlers.js +19 -0
- package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/index.js +24 -0
- package/dist/cjs/lib/v3/types/private/index.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/internal.js +3 -0
- package/dist/cjs/lib/v3/types/private/internal.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/locator.js +3 -0
- package/dist/cjs/lib/v3/types/private/locator.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/network.js +6 -0
- package/dist/cjs/lib/v3/types/private/network.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
- package/dist/cjs/lib/v3/types/private/shutdown.js +6 -0
- package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/shutdownErrors.js +28 -0
- package/dist/cjs/lib/v3/types/private/shutdownErrors.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/snapshot.js +3 -0
- package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/agent.d.ts +76 -4
- package/dist/cjs/lib/v3/types/public/agent.js +18 -0
- package/dist/cjs/lib/v3/types/public/agent.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/api.d.ts +21 -0
- package/dist/cjs/lib/v3/types/public/api.js +930 -0
- package/dist/cjs/lib/v3/types/public/api.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/apiErrors.js +41 -0
- package/dist/cjs/lib/v3/types/public/apiErrors.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/context.d.ts +32 -0
- package/dist/cjs/lib/v3/types/public/context.js +3 -0
- package/dist/cjs/lib/v3/types/public/context.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
- package/dist/cjs/lib/v3/types/public/index.js +56 -0
- package/dist/cjs/lib/v3/types/public/index.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/locator.js +3 -0
- package/dist/cjs/lib/v3/types/public/locator.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/logs.js +16 -0
- package/dist/cjs/lib/v3/types/public/logs.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/methods.d.ts +33 -2
- package/dist/cjs/lib/v3/types/public/methods.js +18 -0
- package/dist/cjs/lib/v3/types/public/methods.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/metrics.js +3 -0
- package/dist/cjs/lib/v3/types/public/metrics.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/model.d.ts +12 -3
- package/dist/cjs/lib/v3/types/public/model.js +3 -0
- package/dist/cjs/lib/v3/types/public/model.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/options.d.ts +15 -0
- package/dist/cjs/lib/v3/types/public/options.js +7 -0
- package/dist/cjs/lib/v3/types/public/options.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/page.js +8 -0
- package/dist/cjs/lib/v3/types/public/page.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/screenshotTypes.js +3 -0
- package/dist/cjs/lib/v3/types/public/screenshotTypes.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +13 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.js +390 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +204 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js +124 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +345 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +132 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js +285 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js +226 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js +12 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js +26 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +143 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js +110 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11yInvocation.js +15 -0
- package/dist/cjs/lib/v3/understudy/a11yInvocation.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/cdp.d.ts +9 -13
- package/dist/cjs/lib/v3/understudy/cdp.js +430 -0
- package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/consoleMessage.js +70 -0
- package/dist/cjs/lib/v3/understudy/consoleMessage.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/context.d.ts +34 -0
- package/dist/cjs/lib/v3/understudy/context.js +960 -0
- package/dist/cjs/lib/v3/understudy/context.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/cookies.d.ts +32 -0
- package/dist/cjs/lib/v3/understudy/cookies.js +142 -0
- package/dist/cjs/lib/v3/understudy/cookies.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/deepLocator.js +204 -0
- package/dist/cjs/lib/v3/understudy/deepLocator.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/executionContextRegistry.js +87 -0
- package/dist/cjs/lib/v3/understudy/executionContextRegistry.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/fileUploadUtils.js +88 -0
- package/dist/cjs/lib/v3/understudy/fileUploadUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/frame.js +232 -0
- package/dist/cjs/lib/v3/understudy/frame.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/frameLocator.js +260 -0
- package/dist/cjs/lib/v3/understudy/frameLocator.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/frameRegistry.js +302 -0
- package/dist/cjs/lib/v3/understudy/frameRegistry.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/initScripts.js +36 -0
- package/dist/cjs/lib/v3/understudy/initScripts.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js +249 -0
- package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/locator.js +790 -0
- package/dist/cjs/lib/v3/understudy/locator.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/locatorInvocation.js +15 -0
- package/dist/cjs/lib/v3/understudy/locatorInvocation.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js +228 -0
- package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/networkManager.js +310 -0
- package/dist/cjs/lib/v3/understudy/networkManager.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
- package/dist/cjs/lib/v3/understudy/page.js +2008 -0
- package/dist/cjs/lib/v3/understudy/page.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/piercer.js +65 -0
- package/dist/cjs/lib/v3/understudy/piercer.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/response.js +335 -0
- package/dist/cjs/lib/v3/understudy/response.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
- package/dist/cjs/lib/v3/understudy/screenshotUtils.js +345 -0
- package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/selectorResolver.js +300 -0
- package/dist/cjs/lib/v3/understudy/selectorResolver.js.map +1 -0
- package/dist/cjs/lib/v3/v3.d.ts +26 -3
- package/dist/cjs/lib/v3/v3.js +1679 -0
- package/dist/cjs/lib/v3/v3.js.map +1 -0
- package/dist/cjs/lib/v3/zodCompat.js +26 -0
- package/dist/cjs/lib/v3/zodCompat.js.map +1 -0
- package/dist/cjs/lib/v3Evaluator.js +214 -0
- package/dist/cjs/lib/v3Evaluator.js.map +1 -0
- package/dist/cjs/lib/version.d.ts +1 -1
- package/dist/cjs/lib/version.js +9 -0
- package/dist/cjs/lib/version.js.map +1 -0
- package/dist/cjs/tests/cache-variables.test.js +221 -0
- package/dist/cjs/tests/cache-variables.test.js.map +1 -0
- package/dist/cjs/tests/integration/agent-abort-signal.spec.js +123 -0
- package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +83 -0
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-callbacks.spec.js +385 -0
- package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-captcha-autosolve.spec.js +56 -0
- package/dist/cjs/tests/integration/agent-captcha-autosolve.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +362 -0
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +262 -0
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-message-continuation.spec.js +112 -0
- package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/agent-streaming.spec.js +140 -0
- package/dist/cjs/tests/integration/agent-streaming.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +41 -0
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cdp-connection-close.spec.js +76 -0
- package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cdp-session-detached.spec.js +45 -0
- package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -0
- package/dist/cjs/tests/integration/click-count.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/click-count.spec.js +163 -0
- package/dist/cjs/tests/integration/click-count.spec.js.map +1 -0
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +99 -0
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
- package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/context-addInitScript.spec.js +285 -0
- package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -0
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +49 -0
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cookies.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cookies.spec.js +187 -0
- package/dist/cjs/tests/integration/cookies.spec.js.map +1 -0
- package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/default-page-tracking.spec.js +52 -0
- package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +1 -0
- package/dist/cjs/tests/integration/downloads.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/downloads.spec.js +52 -0
- package/dist/cjs/tests/integration/downloads.spec.js.map +1 -0
- package/dist/cjs/tests/integration/flowLogger.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/flowLogger.spec.js +714 -0
- package/dist/cjs/tests/integration/flowLogger.spec.js.map +1 -0
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +57 -0
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +474 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
- package/dist/cjs/tests/integration/keep-alive.child.d.ts +1 -0
- package/dist/cjs/tests/integration/keep-alive.child.js +85 -0
- package/dist/cjs/tests/integration/keep-alive.child.js.map +1 -0
- package/dist/cjs/tests/integration/keep-alive.spec.d.ts +22 -0
- package/dist/cjs/tests/integration/keep-alive.spec.js +490 -0
- package/dist/cjs/tests/integration/keep-alive.spec.js.map +1 -0
- package/dist/cjs/tests/integration/keyboard.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/keyboard.spec.js +259 -0
- package/dist/cjs/tests/integration/keyboard.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +150 -0
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-content-methods.spec.js +180 -0
- package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-count-iframe.spec.js +129 -0
- package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-count.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-count.spec.js +68 -0
- package/dist/cjs/tests/integration/locator-count.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-fill.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-fill.spec.js +117 -0
- package/dist/cjs/tests/integration/locator-fill.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-input-methods.spec.js +127 -0
- package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-nth.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-nth.spec.js +175 -0
- package/dist/cjs/tests/integration/locator-nth.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-select-option.spec.js +216 -0
- package/dist/cjs/tests/integration/locator-select-option.spec.js.map +1 -0
- package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/logger-initialization.spec.js +597 -0
- package/dist/cjs/tests/integration/logger-initialization.spec.js.map +1 -0
- package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/multi-instance-logger.spec.js +293 -0
- package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +1 -0
- package/dist/cjs/tests/integration/nested-div.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/nested-div.spec.js +22 -0
- package/dist/cjs/tests/integration/nested-div.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-addInitScript.spec.js +94 -0
- package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-console.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-console.spec.js +47 -0
- package/dist/cjs/tests/integration/page-console.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +437 -0
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-goto-response.spec.js +34 -0
- package/dist/cjs/tests/integration/page-goto-response.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-hover.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-hover.spec.js +165 -0
- package/dist/cjs/tests/integration/page-hover.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-screenshot.spec.js +292 -0
- package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-scroll.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-scroll.spec.js +183 -0
- package/dist/cjs/tests/integration/page-scroll.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-send-cdp.spec.js +47 -0
- package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +1 -0
- package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/perform-understudy-method.spec.js +63 -0
- package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +1 -0
- package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/setinputfiles.spec.js +133 -0
- package/dist/cjs/tests/integration/setinputfiles.spec.js.map +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +161 -0
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +160 -0
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
- package/dist/cjs/tests/integration/testUtils.d.ts +40 -0
- package/dist/cjs/tests/integration/testUtils.js +188 -0
- package/dist/cjs/tests/integration/testUtils.js.map +1 -0
- package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/text-selector-innermost.spec.js +105 -0
- package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +1 -0
- package/dist/cjs/tests/integration/timeouts.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/timeouts.spec.js +307 -0
- package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -0
- package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/user-data-dir.spec.js +77 -0
- package/dist/cjs/tests/integration/user-data-dir.spec.js.map +1 -0
- package/dist/cjs/tests/integration/v3.config.d.ts +4 -0
- package/dist/cjs/tests/integration/v3.config.js +11 -0
- package/dist/cjs/tests/integration/v3.config.js.map +1 -0
- package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +4 -0
- package/dist/cjs/tests/integration/v3.dynamic.config.js +48 -0
- package/dist/cjs/tests/integration/v3.dynamic.config.js.map +1 -0
- package/dist/cjs/tests/integration/v3.playwright.config.d.ts +2 -0
- package/dist/cjs/tests/integration/v3.playwright.config.js +48 -0
- package/dist/cjs/tests/integration/v3.playwright.config.js.map +1 -0
- package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/wait-for-selector.spec.js +683 -0
- package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +1 -0
- package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/wait-for-timeout.spec.js +118 -0
- package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +1 -0
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +87 -0
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
- package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +1 -0
- package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +285 -0
- package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +1 -0
- package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +1 -0
- package/dist/cjs/tests/unit/agent-execution-model.test.js +128 -0
- package/dist/cjs/tests/unit/agent-execution-model.test.js.map +1 -0
- package/dist/cjs/tests/unit/api-multiregion.test.d.ts +1 -0
- package/dist/cjs/tests/unit/api-multiregion.test.js +58 -0
- package/dist/cjs/tests/unit/api-multiregion.test.js.map +1 -0
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +122 -0
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +1 -0
- package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +1 -0
- package/dist/cjs/tests/unit/cache-llm-resolution.test.js +186 -0
- package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +1 -0
- package/dist/cjs/tests/unit/captcha-solver.test.d.ts +1 -0
- package/dist/cjs/tests/unit/captcha-solver.test.js +154 -0
- package/dist/cjs/tests/unit/captcha-solver.test.js.map +1 -0
- package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +1 -0
- package/dist/cjs/tests/unit/cdp-connection-close.test.js +74 -0
- package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +1 -0
- package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/context-extra-http-headers.test.js +58 -0
- package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +1 -0
- package/dist/cjs/tests/unit/cookies.test.d.ts +1 -0
- package/dist/cjs/tests/unit/cookies.test.js +944 -0
- package/dist/cjs/tests/unit/cookies.test.js.map +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +95 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +1 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +43 -0
- package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +1 -0
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +1 -0
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +250 -0
- package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +1 -0
- package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +19 -0
- package/dist/cjs/tests/unit/helpers/mockCDPSession.js +29 -0
- package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +1 -0
- package/dist/cjs/tests/unit/llm-middleware.test.d.ts +1 -0
- package/dist/cjs/tests/unit/llm-middleware.test.js +495 -0
- package/dist/cjs/tests/unit/llm-middleware.test.js.map +1 -0
- package/dist/cjs/tests/unit/llm-provider.test.d.ts +1 -0
- package/dist/cjs/tests/unit/llm-provider.test.js +64 -0
- package/dist/cjs/tests/unit/llm-provider.test.js.map +1 -0
- package/dist/cjs/tests/unit/model-deprecation.test.d.ts +1 -0
- package/dist/cjs/tests/unit/model-deprecation.test.js +142 -0
- package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -0
- package/dist/cjs/tests/unit/model-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/model-utils.test.js +42 -0
- package/dist/cjs/tests/unit/model-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +1 -0
- package/dist/cjs/tests/unit/openai-cua-client.test.js +71 -0
- package/dist/cjs/tests/unit/openai-cua-client.test.js.map +1 -0
- package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
- package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
- package/dist/cjs/tests/unit/page-snapshot.test.d.ts +1 -0
- package/dist/cjs/tests/unit/page-snapshot.test.js +75 -0
- package/dist/cjs/tests/unit/page-snapshot.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/export-surface.test.js +107 -0
- package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +175 -0
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +62 -0
- package/dist/cjs/tests/unit/public-api/public-error-types.test.js +110 -0
- package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/public-types.test.js +99 -0
- package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +60 -0
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/schema-utils.test.js +95 -0
- package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +121 -0
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +65 -0
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/v3-core.test.js +108 -0
- package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +1 -0
- package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +1 -0
- package/dist/cjs/tests/unit/safety-confirmation.test.js +110 -0
- package/dist/cjs/tests/unit/safety-confirmation.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +330 -0
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +286 -0
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +394 -0
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-cbor.test.js +204 -0
- package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +220 -0
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +107 -0
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +89 -0
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +335 -0
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +84 -0
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +74 -0
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/timeout-handlers.test.js +847 -0
- package/dist/cjs/tests/unit/timeout-handlers.test.js.map +1 -0
- package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +1 -0
- package/dist/cjs/tests/unit/understudy-command-exception.test.js +57 -0
- package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +1 -0
- package/dist/cjs/tests/unit/xpath-parser.test.d.ts +1 -0
- package/dist/cjs/tests/unit/xpath-parser.test.js +311 -0
- package/dist/cjs/tests/unit/xpath-parser.test.js.map +1 -0
- package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +1 -0
- package/dist/cjs/tests/unit/xpath-resolver.test.js +80 -0
- package/dist/cjs/tests/unit/xpath-resolver.test.js.map +1 -0
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +149 -0
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +1 -0
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/lib/inference.js +5 -8
- package/dist/esm/lib/inference.js.map +1 -1
- package/dist/esm/lib/modelUtils.d.ts +1 -0
- package/dist/esm/lib/modelUtils.js.map +1 -1
- package/dist/esm/lib/prompt.d.ts +3 -2
- package/dist/esm/lib/prompt.js.map +1 -1
- package/dist/esm/lib/utils.d.ts +1 -0
- package/dist/esm/lib/utils.js +3 -0
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/lib/v3/agent/AgentClient.d.ts +8 -0
- package/dist/esm/lib/v3/agent/AgentClient.js +13 -0
- package/dist/esm/lib/v3/agent/AgentClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.js +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +23 -9
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js +6 -7
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +5 -4
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/OpenAICUAClient.d.ts +4 -4
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js +67 -8
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +7 -3
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +29 -6
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/act.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/act.js +57 -44
- package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
- package/dist/esm/lib/v3/agent/tools/ariaTree.js +49 -22
- package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/braveSearch.js +73 -0
- package/dist/esm/lib/v3/agent/tools/braveSearch.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/browserbaseSearch.d.ts +13 -0
- package/dist/esm/lib/v3/agent/tools/browserbaseSearch.js +66 -0
- package/dist/esm/lib/v3/agent/tools/browserbaseSearch.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/click.js +23 -31
- package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/clickAndHold.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/extract.js +7 -3
- package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js +109 -98
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillform.d.ts +8 -3
- package/dist/esm/lib/v3/agent/tools/fillform.js +70 -52
- package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/index.d.ts +25 -4
- package/dist/esm/lib/v3/agent/tools/index.js +65 -12
- package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/keys.d.ts +1 -1
- package/dist/esm/lib/v3/agent/tools/keys.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
- package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
- package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
- package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/type.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/type.js +80 -79
- package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
- package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/captchaSolver.d.ts +76 -0
- package/dist/esm/lib/v3/agent/utils/captchaSolver.js +171 -0
- package/dist/esm/lib/v3/agent/utils/captchaSolver.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +8 -0
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/variables.d.ts +21 -0
- package/dist/esm/lib/v3/agent/utils/variables.js +48 -0
- package/dist/esm/lib/v3/agent/utils/variables.js.map +1 -0
- package/dist/esm/lib/v3/api.d.ts +23 -5
- package/dist/esm/lib/v3/api.js +74 -13
- package/dist/esm/lib/v3/api.js.map +1 -1
- package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
- package/dist/esm/lib/v3/cache/ActCache.js +2 -18
- package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
- package/dist/esm/lib/v3/cache/AgentCache.d.ts +1 -0
- package/dist/esm/lib/v3/cache/AgentCache.js +18 -11
- package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
- package/dist/esm/lib/v3/flowlogger/EventEmitter.d.ts +7 -0
- package/dist/esm/lib/v3/flowlogger/EventEmitter.js +26 -0
- package/dist/esm/lib/v3/flowlogger/EventEmitter.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/EventSink.d.ts +44 -0
- package/dist/esm/lib/v3/flowlogger/EventSink.js +206 -0
- package/dist/esm/lib/v3/flowlogger/EventSink.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/EventStore.d.ts +26 -0
- package/dist/esm/lib/v3/flowlogger/EventStore.js +127 -0
- package/dist/esm/lib/v3/flowlogger/EventStore.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/FlowLogger.d.ts +99 -0
- package/dist/esm/lib/v3/flowlogger/FlowLogger.js +583 -0
- package/dist/esm/lib/v3/flowlogger/FlowLogger.js.map +1 -0
- package/dist/esm/lib/v3/flowlogger/prettify.d.ts +6 -0
- package/dist/esm/lib/v3/flowlogger/prettify.js +389 -0
- package/dist/esm/lib/v3/flowlogger/prettify.js.map +1 -0
- package/dist/esm/lib/v3/handlers/actHandler.d.ts +2 -1
- package/dist/esm/lib/v3/handlers/actHandler.js +4 -4
- package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
- package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +43 -84
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
- package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
- package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +2 -5
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js +133 -92
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +5 -0
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +134 -14
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/index.d.ts +143 -0
- package/dist/esm/lib/v3/index.js +41 -0
- package/dist/esm/lib/v3/index.js.map +1 -1
- package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
- package/dist/esm/lib/v3/launch/browserbase.js +4 -9
- package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
- package/dist/esm/lib/v3/llm/LLMProvider.d.ts +5 -2
- package/dist/esm/lib/v3/llm/LLMProvider.js +14 -12
- package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
- package/dist/esm/lib/v3/llm/OpenAIClient.js +2 -2
- package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -1
- package/dist/esm/lib/v3/llm/aisdk.js +11 -17
- package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
- package/dist/esm/lib/v3/mcp/connection.d.ts +2 -0
- package/dist/esm/lib/v3/mcp/connection.js +5 -2
- package/dist/esm/lib/v3/mcp/connection.js.map +1 -1
- package/dist/esm/lib/v3/runtimePaths.d.ts +6 -0
- package/dist/esm/lib/v3/runtimePaths.js +107 -0
- package/dist/esm/lib/v3/runtimePaths.js.map +1 -0
- package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
- package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
- package/dist/esm/lib/v3/shutdown/supervisorClient.js +9 -14
- package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
- package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
- package/dist/esm/lib/v3/timeoutConfig.js +5 -0
- package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
- package/dist/esm/lib/v3/types/private/cache.d.ts +3 -1
- package/dist/esm/lib/v3/types/private/cache.js.map +1 -1
- package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -1
- package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
- package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
- package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
- package/dist/esm/lib/v3/types/public/agent.d.ts +76 -4
- package/dist/esm/lib/v3/types/public/agent.js +1 -1
- package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
- package/dist/esm/lib/v3/types/public/api.d.ts +21 -0
- package/dist/esm/lib/v3/types/public/api.js +11 -2
- package/dist/esm/lib/v3/types/public/api.js.map +1 -1
- package/dist/esm/lib/v3/types/public/context.d.ts +32 -0
- package/dist/esm/lib/v3/types/public/context.js +2 -0
- package/dist/esm/lib/v3/types/public/context.js.map +1 -0
- package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
- package/dist/esm/lib/v3/types/public/index.js +1 -0
- package/dist/esm/lib/v3/types/public/index.js.map +1 -1
- package/dist/esm/lib/v3/types/public/methods.d.ts +33 -2
- package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
- package/dist/esm/lib/v3/types/public/model.d.ts +12 -3
- package/dist/esm/lib/v3/types/public/model.js.map +1 -1
- package/dist/esm/lib/v3/types/public/options.d.ts +15 -0
- package/dist/esm/lib/v3/types/public/options.js.map +1 -1
- package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +13 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js +22 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -1
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +1 -1
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -1
- package/dist/esm/lib/v3/understudy/cdp.d.ts +9 -13
- package/dist/esm/lib/v3/understudy/cdp.js +191 -20
- package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
- package/dist/esm/lib/v3/understudy/context.d.ts +34 -0
- package/dist/esm/lib/v3/understudy/context.js +327 -67
- package/dist/esm/lib/v3/understudy/context.js.map +1 -1
- package/dist/esm/lib/v3/understudy/cookies.d.ts +32 -0
- package/dist/esm/lib/v3/understudy/cookies.js +136 -0
- package/dist/esm/lib/v3/understudy/cookies.js.map +1 -0
- package/dist/esm/lib/v3/understudy/deepLocator.js +1 -23
- package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -1
- package/dist/esm/lib/v3/understudy/frame.js +24 -7
- package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
- package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
- package/dist/esm/lib/v3/understudy/page.js +86 -23
- package/dist/esm/lib/v3/understudy/page.js.map +1 -1
- package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
- package/dist/esm/lib/v3/understudy/screenshotUtils.js +1 -19
- package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
- package/dist/esm/lib/v3/understudy/selectorResolver.js +1 -1
- package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -1
- package/dist/esm/lib/v3/v3.d.ts +26 -3
- package/dist/esm/lib/v3/v3.js +261 -190
- package/dist/esm/lib/v3/v3.js.map +1 -1
- package/dist/esm/lib/version.d.ts +1 -1
- package/dist/esm/lib/version.js +1 -1
- package/dist/esm/lib/version.js.map +1 -1
- package/dist/esm/tests/cache-variables.test.d.ts +1 -0
- package/dist/esm/tests/cache-variables.test.js +219 -0
- package/dist/esm/tests/cache-variables.test.js.map +1 -0
- package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-abort-signal.spec.js +121 -0
- package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +78 -0
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-callbacks.spec.js +383 -0
- package/dist/esm/tests/integration/agent-callbacks.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-captcha-autosolve.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-captcha-autosolve.spec.js +54 -0
- package/dist/esm/tests/integration/agent-captcha-autosolve.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-experimental-validation.spec.js +360 -0
- package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +260 -0
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-message-continuation.spec.js +110 -0
- package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-streaming.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-streaming.spec.js +138 -0
- package/dist/esm/tests/integration/agent-streaming.spec.js.map +1 -0
- package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cdp-close-api-region.spec.js +39 -0
- package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +1 -0
- package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cdp-connection-close.spec.js +74 -0
- package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +1 -0
- package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cdp-session-detached.spec.js +43 -0
- package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -0
- package/dist/esm/tests/integration/click-count.spec.d.ts +1 -0
- package/dist/esm/tests/integration/click-count.spec.js +161 -0
- package/dist/esm/tests/integration/click-count.spec.js.map +1 -0
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +97 -0
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
- package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +1 -0
- package/dist/esm/tests/integration/context-addInitScript.spec.js +283 -0
- package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -0
- package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
- package/dist/esm/tests/integration/context-extra-http-headers.spec.js +47 -0
- package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +1 -0
- package/dist/esm/tests/integration/cookies.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cookies.spec.js +185 -0
- package/dist/esm/tests/integration/cookies.spec.js.map +1 -0
- package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +1 -0
- package/dist/esm/tests/integration/default-page-tracking.spec.js +50 -0
- package/dist/esm/tests/integration/default-page-tracking.spec.js.map +1 -0
- package/dist/esm/tests/integration/downloads.spec.d.ts +1 -0
- package/dist/esm/tests/integration/downloads.spec.js +47 -0
- package/dist/esm/tests/integration/downloads.spec.js.map +1 -0
- package/dist/esm/tests/integration/flowLogger.spec.d.ts +1 -0
- package/dist/esm/tests/integration/flowLogger.spec.js +712 -0
- package/dist/esm/tests/integration/flowLogger.spec.js.map +1 -0
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +55 -0
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +472 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
- package/dist/esm/tests/integration/keep-alive.child.d.ts +1 -0
- package/dist/esm/tests/integration/keep-alive.child.js +83 -0
- package/dist/esm/tests/integration/keep-alive.child.js.map +1 -0
- package/dist/esm/tests/integration/keep-alive.spec.d.ts +22 -0
- package/dist/esm/tests/integration/keep-alive.spec.js +482 -0
- package/dist/esm/tests/integration/keep-alive.spec.js.map +1 -0
- package/dist/esm/tests/integration/keyboard.spec.d.ts +1 -0
- package/dist/esm/tests/integration/keyboard.spec.js +257 -0
- package/dist/esm/tests/integration/keyboard.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-backend-node-id.spec.js +148 -0
- package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-content-methods.spec.js +178 -0
- package/dist/esm/tests/integration/locator-content-methods.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-count-iframe.spec.js +127 -0
- package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-count.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-count.spec.js +66 -0
- package/dist/esm/tests/integration/locator-count.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-fill.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-fill.spec.js +115 -0
- package/dist/esm/tests/integration/locator-fill.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-input-methods.spec.js +125 -0
- package/dist/esm/tests/integration/locator-input-methods.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-nth.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-nth.spec.js +173 -0
- package/dist/esm/tests/integration/locator-nth.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-select-option.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-select-option.spec.js +214 -0
- package/dist/esm/tests/integration/locator-select-option.spec.js.map +1 -0
- package/dist/esm/tests/integration/logger-initialization.spec.d.ts +1 -0
- package/dist/esm/tests/integration/logger-initialization.spec.js +595 -0
- package/dist/esm/tests/integration/logger-initialization.spec.js.map +1 -0
- package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +1 -0
- package/dist/esm/tests/integration/multi-instance-logger.spec.js +291 -0
- package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +1 -0
- package/dist/esm/tests/integration/nested-div.spec.d.ts +1 -0
- package/dist/esm/tests/integration/nested-div.spec.js +20 -0
- package/dist/esm/tests/integration/nested-div.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-addInitScript.spec.js +92 -0
- package/dist/esm/tests/integration/page-addInitScript.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-console.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-console.spec.js +45 -0
- package/dist/esm/tests/integration/page-console.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-drag-and-drop.spec.js +435 -0
- package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
- package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-goto-response.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-goto-response.spec.js +32 -0
- package/dist/esm/tests/integration/page-goto-response.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-hover.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-hover.spec.js +163 -0
- package/dist/esm/tests/integration/page-hover.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-screenshot.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-screenshot.spec.js +257 -0
- package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-scroll.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-scroll.spec.js +181 -0
- package/dist/esm/tests/integration/page-scroll.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-send-cdp.spec.js +45 -0
- package/dist/esm/tests/integration/page-send-cdp.spec.js.map +1 -0
- package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +1 -0
- package/dist/esm/tests/integration/perform-understudy-method.spec.js +61 -0
- package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +1 -0
- package/dist/esm/tests/integration/setinputfiles.spec.d.ts +1 -0
- package/dist/esm/tests/integration/setinputfiles.spec.js +128 -0
- package/dist/esm/tests/integration/setinputfiles.spec.js.map +1 -0
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +156 -0
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +155 -0
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
- package/dist/esm/tests/integration/testUtils.d.ts +40 -0
- package/dist/esm/tests/integration/testUtils.js +178 -0
- package/dist/esm/tests/integration/testUtils.js.map +1 -0
- package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +1 -0
- package/dist/esm/tests/integration/text-selector-innermost.spec.js +103 -0
- package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +1 -0
- package/dist/esm/tests/integration/timeouts.spec.d.ts +1 -0
- package/dist/esm/tests/integration/timeouts.spec.js +305 -0
- package/dist/esm/tests/integration/timeouts.spec.js.map +1 -0
- package/dist/esm/tests/integration/user-data-dir.spec.d.ts +1 -0
- package/dist/esm/tests/integration/user-data-dir.spec.js +42 -0
- package/dist/esm/tests/integration/user-data-dir.spec.js.map +1 -0
- package/dist/esm/tests/integration/v3.config.d.ts +4 -0
- package/dist/esm/tests/integration/v3.config.js +7 -0
- package/dist/esm/tests/integration/v3.config.js.map +1 -0
- package/dist/esm/tests/integration/v3.dynamic.config.d.ts +4 -0
- package/dist/esm/tests/integration/v3.dynamic.config.js +44 -0
- package/dist/esm/tests/integration/v3.dynamic.config.js.map +1 -0
- package/dist/esm/tests/integration/v3.playwright.config.d.ts +2 -0
- package/dist/esm/tests/integration/v3.playwright.config.js +46 -0
- package/dist/esm/tests/integration/v3.playwright.config.js.map +1 -0
- package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +1 -0
- package/dist/esm/tests/integration/wait-for-selector.spec.js +681 -0
- package/dist/esm/tests/integration/wait-for-selector.spec.js.map +1 -0
- package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +1 -0
- package/dist/esm/tests/integration/wait-for-timeout.spec.js +116 -0
- package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +1 -0
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +85 -0
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
- package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +1 -0
- package/dist/esm/tests/unit/agent-captcha-hooks.test.js +283 -0
- package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +1 -0
- package/dist/esm/tests/unit/agent-execution-model.test.d.ts +1 -0
- package/dist/esm/tests/unit/agent-execution-model.test.js +126 -0
- package/dist/esm/tests/unit/agent-execution-model.test.js.map +1 -0
- package/dist/esm/tests/unit/api-multiregion.test.d.ts +1 -0
- package/dist/esm/tests/unit/api-multiregion.test.js +56 -0
- package/dist/esm/tests/unit/api-multiregion.test.js.map +1 -0
- package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
- package/dist/esm/tests/unit/browserbase-session-accessors.test.js +120 -0
- package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +1 -0
- package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +1 -0
- package/dist/esm/tests/unit/cache-llm-resolution.test.js +184 -0
- package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +1 -0
- package/dist/esm/tests/unit/captcha-solver.test.d.ts +1 -0
- package/dist/esm/tests/unit/captcha-solver.test.js +152 -0
- package/dist/esm/tests/unit/captcha-solver.test.js.map +1 -0
- package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +1 -0
- package/dist/esm/tests/unit/cdp-connection-close.test.js +72 -0
- package/dist/esm/tests/unit/cdp-connection-close.test.js.map +1 -0
- package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +1 -0
- package/dist/esm/tests/unit/context-extra-http-headers.test.js +56 -0
- package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +1 -0
- package/dist/esm/tests/unit/cookies.test.d.ts +1 -0
- package/dist/esm/tests/unit/cookies.test.js +909 -0
- package/dist/esm/tests/unit/cookies.test.js.map +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +93 -0
- package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +1 -0
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +41 -0
- package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +1 -0
- package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +1 -0
- package/dist/esm/tests/unit/flowlogger-eventstore.test.js +248 -0
- package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +1 -0
- package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +19 -0
- package/dist/esm/tests/unit/helpers/mockCDPSession.js +25 -0
- package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +1 -0
- package/dist/esm/tests/unit/llm-middleware.test.d.ts +1 -0
- package/dist/esm/tests/unit/llm-middleware.test.js +460 -0
- package/dist/esm/tests/unit/llm-middleware.test.js.map +1 -0
- package/dist/esm/tests/unit/llm-provider.test.d.ts +1 -0
- package/dist/esm/tests/unit/llm-provider.test.js +62 -0
- package/dist/esm/tests/unit/llm-provider.test.js.map +1 -0
- package/dist/esm/tests/unit/model-deprecation.test.d.ts +1 -0
- package/dist/esm/tests/unit/model-deprecation.test.js +140 -0
- package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -0
- package/dist/esm/tests/unit/model-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/model-utils.test.js +40 -0
- package/dist/esm/tests/unit/model-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/openai-cua-client.test.d.ts +1 -0
- package/dist/esm/tests/unit/openai-cua-client.test.js +69 -0
- package/dist/esm/tests/unit/openai-cua-client.test.js.map +1 -0
- package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
- package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
- package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
- package/dist/esm/tests/unit/page-snapshot.test.d.ts +1 -0
- package/dist/esm/tests/unit/page-snapshot.test.js +40 -0
- package/dist/esm/tests/unit/page-snapshot.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/export-surface.test.js +72 -0
- package/dist/esm/tests/unit/public-api/export-surface.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +140 -0
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +62 -0
- package/dist/esm/tests/unit/public-api/public-error-types.test.js +74 -0
- package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/public-types.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/public-types.test.js +97 -0
- package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/runtime-utils.test.js +25 -0
- package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/schema-utils.test.js +60 -0
- package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +86 -0
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/tool-type-export.test.js +30 -0
- package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/v3-core.test.js +73 -0
- package/dist/esm/tests/unit/public-api/v3-core.test.js.map +1 -0
- package/dist/esm/tests/unit/safety-confirmation.test.d.ts +1 -0
- package/dist/esm/tests/unit/safety-confirmation.test.js +108 -0
- package/dist/esm/tests/unit/safety-confirmation.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +295 -0
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +284 -0
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +359 -0
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-cbor.test.js +202 -0
- package/dist/esm/tests/unit/snapshot-cbor.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +218 -0
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +105 -0
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +87 -0
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-frame-merge.test.js +333 -0
- package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +82 -0
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +72 -0
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/timeout-handlers.test.d.ts +1 -0
- package/dist/esm/tests/unit/timeout-handlers.test.js +812 -0
- package/dist/esm/tests/unit/timeout-handlers.test.js.map +1 -0
- package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +1 -0
- package/dist/esm/tests/unit/understudy-command-exception.test.js +55 -0
- package/dist/esm/tests/unit/understudy-command-exception.test.js.map +1 -0
- package/dist/esm/tests/unit/xpath-parser.test.d.ts +1 -0
- package/dist/esm/tests/unit/xpath-parser.test.js +309 -0
- package/dist/esm/tests/unit/xpath-parser.test.js.map +1 -0
- package/dist/esm/tests/unit/xpath-resolver.test.d.ts +1 -0
- package/dist/esm/tests/unit/xpath-resolver.test.js +78 -0
- package/dist/esm/tests/unit/xpath-resolver.test.js.map +1 -0
- package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
- package/dist/esm/tests/unit/zod-enum-compatibility.test.js +114 -0
- package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +1 -0
- package/package.json +19 -8
- package/dist/cjs/cli.js.map +0 -7
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
- package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
- package/dist/cjs/lib/v3/flowLogger.d.ts +0 -139
- package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +0 -113
- package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +0 -102
- package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +0 -374
- package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +0 -354
- package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
- package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +0 -105
- package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +0 -126
- package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +0 -44
- package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/click-count.spec.js +0 -147
- package/dist/cjs/lib/v3/tests/click-count.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
- package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +0 -176
- package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +0 -53
- package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/downloads.spec.js +0 -80
- package/dist/cjs/lib/v3/tests/downloads.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
- package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
- package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keep-alive.child.js +0 -92
- package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +0 -568
- package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keep-alive.spec.js +0 -15
- package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keyboard.spec.js +0 -296
- package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
- package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +0 -192
- package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +0 -108
- package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-count.spec.js +0 -71
- package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-fill.spec.js +0 -119
- package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +0 -137
- package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-nth.spec.js +0 -157
- package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +0 -243
- package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +0 -547
- package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +0 -269
- package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/nested-div.spec.js +0 -23
- package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +0 -90
- package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-console.spec.js +0 -56
- package/dist/cjs/lib/v3/tests/page-console.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
- package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +0 -35
- package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-hover.spec.js +0 -167
- package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +0 -295
- package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-scroll.spec.js +0 -182
- package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +0 -46
- package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +0 -98
- package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +0 -148
- package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -156
- package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +0 -156
- package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/testUtils.js +0 -54
- package/dist/cjs/lib/v3/tests/testUtils.js.map +0 -7
- package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +0 -100
- package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/timeouts.spec.js +0 -32
- package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +0 -65
- package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/v3.config.js +0 -36
- package/dist/cjs/lib/v3/tests/v3.config.js.map +0 -7
- package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +0 -67
- package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +0 -7
- package/dist/cjs/lib/v3/tests/v3.playwright.config.js +0 -61
- package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +0 -7
- package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +0 -593
- package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +0 -97
- package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
- package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
- package/dist/cjs/tests/agent-execution-model.test.js +0 -139
- package/dist/cjs/tests/agent-execution-model.test.js.map +0 -7
- package/dist/cjs/tests/api-multiregion.test.js +0 -73
- package/dist/cjs/tests/api-multiregion.test.js.map +0 -7
- package/dist/cjs/tests/browserbase-session-accessors.test.js +0 -101
- package/dist/cjs/tests/browserbase-session-accessors.test.js.map +0 -7
- package/dist/cjs/tests/cache-llm-resolution.test.js +0 -187
- package/dist/cjs/tests/cache-llm-resolution.test.js.map +0 -7
- package/dist/cjs/tests/helpers/mockCDPSession.js +0 -50
- package/dist/cjs/tests/helpers/mockCDPSession.js.map +0 -7
- package/dist/cjs/tests/llm-provider.test.js +0 -57
- package/dist/cjs/tests/llm-provider.test.js.map +0 -7
- package/dist/cjs/tests/model-deprecation.test.js +0 -132
- package/dist/cjs/tests/model-deprecation.test.js.map +0 -7
- package/dist/cjs/tests/model-utils.test.js +0 -43
- package/dist/cjs/tests/model-utils.test.js.map +0 -7
- package/dist/cjs/tests/page-snapshot.test.js +0 -58
- package/dist/cjs/tests/page-snapshot.test.js.map +0 -7
- package/dist/cjs/tests/public-api/export-surface.test.js +0 -77
- package/dist/cjs/tests/public-api/export-surface.test.js.map +0 -7
- package/dist/cjs/tests/public-api/llm-and-agents.test.js +0 -151
- package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +0 -7
- package/dist/cjs/tests/public-api/public-error-types.test.js +0 -106
- package/dist/cjs/tests/public-api/public-error-types.test.js.map +0 -7
- package/dist/cjs/tests/public-api/public-types.test.js +0 -74
- package/dist/cjs/tests/public-api/public-types.test.js.map +0 -7
- package/dist/cjs/tests/public-api/runtime-utils.test.js +0 -53
- package/dist/cjs/tests/public-api/runtime-utils.test.js.map +0 -7
- package/dist/cjs/tests/public-api/schema-utils.test.js +0 -100
- package/dist/cjs/tests/public-api/schema-utils.test.js.map +0 -7
- package/dist/cjs/tests/public-api/timeout-error-types.test.js +0 -103
- package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +0 -7
- package/dist/cjs/tests/public-api/tool-type-export.test.js +0 -47
- package/dist/cjs/tests/public-api/tool-type-export.test.js.map +0 -7
- package/dist/cjs/tests/public-api/v3-core.test.js +0 -105
- package/dist/cjs/tests/public-api/v3-core.test.js.map +0 -7
- package/dist/cjs/tests/safety-confirmation.test.js +0 -134
- package/dist/cjs/tests/safety-confirmation.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +0 -370
- package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +0 -294
- package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-capture-orchestration.test.js +0 -405
- package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-cbor.test.js +0 -197
- package/dist/cjs/tests/snapshot-cbor.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-dom-session-builders.test.js +0 -246
- package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +0 -104
- package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +0 -45
- package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-frame-merge.test.js +0 -388
- package/dist/cjs/tests/snapshot-frame-merge.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-tree-format-utils.test.js +0 -106
- package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-xpath-utils.test.js +0 -74
- package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +0 -7
- package/dist/cjs/tests/timeout-handlers.test.js +0 -864
- package/dist/cjs/tests/timeout-handlers.test.js.map +0 -7
- package/dist/cjs/tests/understudy-command-exception.test.js +0 -52
- package/dist/cjs/tests/understudy-command-exception.test.js.map +0 -7
- package/dist/cjs/tests/xpath-parser.test.js +0 -314
- package/dist/cjs/tests/xpath-parser.test.js.map +0 -7
- package/dist/cjs/tests/xpath-resolver.test.js +0 -70
- package/dist/cjs/tests/xpath-resolver.test.js.map +0 -7
- package/dist/cjs/tests/zod-enum-compatibility.test.js +0 -119
- package/dist/cjs/tests/zod-enum-compatibility.test.js.map +0 -7
- package/dist/esm/lib/v3/agent/tools/search.js +0 -73
- package/dist/esm/lib/v3/agent/tools/search.js.map +0 -1
- package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
- package/dist/esm/lib/v3/dom/build/rerender-index.js.map +0 -1
- package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
- package/dist/esm/lib/v3/dom/build/v3-index.js.map +0 -1
- package/dist/esm/lib/v3/dom/genA11yScripts.js +0 -54
- package/dist/esm/lib/v3/dom/genA11yScripts.js.map +0 -1
- package/dist/esm/lib/v3/dom/genDomScripts.js +0 -38
- package/dist/esm/lib/v3/dom/genDomScripts.js.map +0 -1
- package/dist/esm/lib/v3/dom/genLocatorScripts.js +0 -51
- package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +0 -1
- package/dist/esm/lib/v3/dom/genScreenshotScripts.js +0 -37
- package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +0 -1
- package/dist/esm/lib/v3/flowLogger.d.ts +0 -139
- package/dist/esm/lib/v3/flowLogger.js +0 -868
- package/dist/esm/lib/v3/flowLogger.js.map +0 -1
- package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +0 -113
- package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +0 -80
- package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +0 -374
- package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +0 -357
- package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
- package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +0 -105
- package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-streaming.spec.js +0 -126
- package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +0 -44
- package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/click-count.spec.js +0 -147
- package/dist/esm/lib/v3/tests/click-count.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
- package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +0 -176
- package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +0 -53
- package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/downloads.spec.js +0 -58
- package/dist/esm/lib/v3/tests/downloads.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
- package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
- package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/keep-alive.child.js +0 -92
- package/dist/esm/lib/v3/tests/keep-alive.child.js.map +0 -7
- package/dist/esm/lib/v3/tests/keep-alive.helpers.js +0 -532
- package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +0 -7
- package/dist/esm/lib/v3/tests/keep-alive.spec.js +0 -19
- package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/keyboard.spec.js +0 -296
- package/dist/esm/lib/v3/tests/keyboard.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
- package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +0 -192
- package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +0 -108
- package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-count.spec.js +0 -71
- package/dist/esm/lib/v3/tests/locator-count.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-fill.spec.js +0 -119
- package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +0 -137
- package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-nth.spec.js +0 -157
- package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-select-option.spec.js +0 -243
- package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/logger-initialization.spec.js +0 -552
- package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +0 -269
- package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/nested-div.spec.js +0 -23
- package/dist/esm/lib/v3/tests/nested-div.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +0 -90
- package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-console.spec.js +0 -56
- package/dist/esm/lib/v3/tests/page-console.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
- package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-goto-response.spec.js +0 -35
- package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-hover.spec.js +0 -167
- package/dist/esm/lib/v3/tests/page-hover.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-screenshot.spec.js +0 -273
- package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-scroll.spec.js +0 -182
- package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +0 -46
- package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +0 -98
- package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/setinputfiles.spec.js +0 -126
- package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -134
- package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +0 -134
- package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/testUtils.js +0 -31
- package/dist/esm/lib/v3/tests/testUtils.js.map +0 -7
- package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +0 -100
- package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/timeouts.spec.js +0 -32
- package/dist/esm/lib/v3/tests/timeouts.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/user-data-dir.spec.js +0 -43
- package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/v3.config.js +0 -15
- package/dist/esm/lib/v3/tests/v3.config.js.map +0 -7
- package/dist/esm/lib/v3/tests/v3.dynamic.config.js +0 -43
- package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +0 -7
- package/dist/esm/lib/v3/tests/v3.playwright.config.js +0 -41
- package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +0 -7
- package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +0 -593
- package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +0 -97
- package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
- package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
- package/dist/esm/tests/agent-execution-model.test.js +0 -139
- package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
- package/dist/esm/tests/api-multiregion.test.js +0 -73
- package/dist/esm/tests/api-multiregion.test.js.map +0 -7
- package/dist/esm/tests/browserbase-session-accessors.test.js +0 -101
- package/dist/esm/tests/browserbase-session-accessors.test.js.map +0 -7
- package/dist/esm/tests/cache-llm-resolution.test.js +0 -187
- package/dist/esm/tests/cache-llm-resolution.test.js.map +0 -7
- package/dist/esm/tests/helpers/mockCDPSession.js +0 -27
- package/dist/esm/tests/helpers/mockCDPSession.js.map +0 -7
- package/dist/esm/tests/llm-provider.test.js +0 -57
- package/dist/esm/tests/llm-provider.test.js.map +0 -7
- package/dist/esm/tests/model-deprecation.test.js +0 -135
- package/dist/esm/tests/model-deprecation.test.js.map +0 -7
- package/dist/esm/tests/model-utils.test.js +0 -43
- package/dist/esm/tests/model-utils.test.js.map +0 -7
- package/dist/esm/tests/page-snapshot.test.js +0 -36
- package/dist/esm/tests/page-snapshot.test.js.map +0 -7
- package/dist/esm/tests/public-api/export-surface.test.js +0 -55
- package/dist/esm/tests/public-api/export-surface.test.js.map +0 -7
- package/dist/esm/tests/public-api/llm-and-agents.test.js +0 -129
- package/dist/esm/tests/public-api/llm-and-agents.test.js.map +0 -7
- package/dist/esm/tests/public-api/public-error-types.test.js +0 -73
- package/dist/esm/tests/public-api/public-error-types.test.js.map +0 -7
- package/dist/esm/tests/public-api/public-types.test.js +0 -74
- package/dist/esm/tests/public-api/public-types.test.js.map +0 -7
- package/dist/esm/tests/public-api/runtime-utils.test.js +0 -31
- package/dist/esm/tests/public-api/runtime-utils.test.js.map +0 -7
- package/dist/esm/tests/public-api/schema-utils.test.js +0 -78
- package/dist/esm/tests/public-api/schema-utils.test.js.map +0 -7
- package/dist/esm/tests/public-api/timeout-error-types.test.js +0 -81
- package/dist/esm/tests/public-api/timeout-error-types.test.js.map +0 -7
- package/dist/esm/tests/public-api/tool-type-export.test.js +0 -25
- package/dist/esm/tests/public-api/tool-type-export.test.js.map +0 -7
- package/dist/esm/tests/public-api/v3-core.test.js +0 -83
- package/dist/esm/tests/public-api/v3-core.test.js.map +0 -7
- package/dist/esm/tests/safety-confirmation.test.js +0 -134
- package/dist/esm/tests/safety-confirmation.test.js.map +0 -7
- package/dist/esm/tests/snapshot-a11y-resolvers.test.js +0 -348
- package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +0 -7
- package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +0 -300
- package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-capture-orchestration.test.js +0 -383
- package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +0 -7
- package/dist/esm/tests/snapshot-cbor.test.js +0 -197
- package/dist/esm/tests/snapshot-cbor.test.js.map +0 -7
- package/dist/esm/tests/snapshot-dom-session-builders.test.js +0 -251
- package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +0 -7
- package/dist/esm/tests/snapshot-dom-tree-utils.test.js +0 -109
- package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +0 -49
- package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-frame-merge.test.js +0 -391
- package/dist/esm/tests/snapshot-frame-merge.test.js.map +0 -7
- package/dist/esm/tests/snapshot-tree-format-utils.test.js +0 -113
- package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-xpath-utils.test.js +0 -79
- package/dist/esm/tests/snapshot-xpath-utils.test.js.map +0 -7
- package/dist/esm/tests/timeout-handlers.test.js +0 -850
- package/dist/esm/tests/timeout-handlers.test.js.map +0 -7
- package/dist/esm/tests/understudy-command-exception.test.js +0 -55
- package/dist/esm/tests/understudy-command-exception.test.js.map +0 -7
- package/dist/esm/tests/xpath-parser.test.js +0 -317
- package/dist/esm/tests/xpath-parser.test.js.map +0 -7
- package/dist/esm/tests/xpath-resolver.test.js +0 -73
- package/dist/esm/tests/xpath-resolver.test.js.map +0 -7
- package/dist/esm/tests/zod-enum-compatibility.test.js +0 -97
- package/dist/esm/tests/zod-enum-compatibility.test.js.map +0 -7
- /package/dist/cjs/lib/v3/agent/tools/{search.d.ts → braveSearch.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genA11yScripts.d.ts → tests/cache-variables.test.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genDomScripts.d.ts → tests/integration/agent-abort-signal.spec.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genLocatorScripts.d.ts → tests/integration/agent-cache-self-heal.spec.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genScreenshotScripts.d.ts → tests/integration/agent-callbacks.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genA11yScripts.d.ts → cjs/tests/integration/agent-captcha-autosolve.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genDomScripts.d.ts → cjs/tests/integration/agent-experimental-validation.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genLocatorScripts.d.ts → cjs/tests/integration/agent-hybrid-mode.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genScreenshotScripts.d.ts → cjs/tests/integration/agent-message-continuation.spec.d.ts} +0 -0
- /package/dist/esm/lib/v3/agent/tools/{search.d.ts → braveSearch.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookies.test.js","sourceRoot":"","sources":["../../../../tests/unit/cookies.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { beforeEach, describe, expect, it } from \"vitest\";\nimport {\n filterCookies,\n normalizeCookieParams,\n cookieMatchesFilter,\n} from \"../../lib/v3/understudy/cookies.js\";\nimport { MockCDPSession } from \"./helpers/mockCDPSession.js\";\nimport type { V3Context } from \"../../lib/v3/understudy/context.js\";\nimport { Cookie, CookieParam } from \"../../lib/v3/types/public/context.js\";\n\nfunction makeCookie(overrides: Partial<Cookie> = {}): Cookie {\n return {\n name: \"sid\",\n value: \"abc123\",\n domain: \"example.com\",\n path: \"/\",\n expires: -1,\n httpOnly: false,\n secure: false,\n sameSite: \"Lax\",\n ...overrides,\n };\n}\n\n/** Convert our Cookie type into the shape CDP's Storage.getCookies returns. */\nfunction toCdpCookie(c: Cookie) {\n return {\n name: c.name,\n value: c.value,\n domain: c.domain,\n path: c.path,\n expires: c.expires,\n httpOnly: c.httpOnly,\n secure: c.secure,\n sameSite: c.sameSite,\n size: c.name.length + c.value.length,\n session: c.expires === -1,\n priority: \"Medium\",\n sameParty: false,\n sourceScheme: \"Secure\",\n sourcePort: 443,\n };\n}\n\ndescribe(\"filterCookies\", () => {\n const cookies: Cookie[] = [\n makeCookie({ name: \"a\", domain: \"example.com\", path: \"/\", secure: false }),\n makeCookie({\n name: \"b\",\n domain: \".example.com\",\n path: \"/app\",\n secure: true,\n }),\n makeCookie({ name: \"c\", domain: \"other.com\", path: \"/\", secure: false }),\n makeCookie({\n name: \"d\",\n domain: \"sub.example.com\",\n path: \"/\",\n secure: false,\n }),\n ];\n\n it(\"returns all cookies when urls is empty\", () => {\n expect(filterCookies(cookies, [])).toEqual(cookies);\n });\n\n it(\"filters by domain (exact host match)\", () => {\n const result = filterCookies(cookies, [\"http://example.com/\"]);\n const names = result.map((c) => c.name);\n expect(names).toContain(\"a\");\n // \"b\" (.example.com) domain-matches but is secure — excluded on http://\n expect(names).not.toContain(\"b\");\n expect(names).not.toContain(\"c\");\n expect(names).not.toContain(\"d\");\n });\n\n it(\"filters by domain (dot-prefixed domain matches on https)\", () => {\n const result = filterCookies(cookies, [\"https://example.com/app/settings\"]);\n const names = result.map((c) => c.name);\n expect(names).toContain(\"a\"); // example.com domain match, path \"/\" prefix\n expect(names).toContain(\"b\"); // .example.com domain match + secure + https\n });\n\n it(\"filters by domain (subdomain matches dot-prefixed domain)\", () => {\n const result = filterCookies(cookies, [\"http://sub.example.com/\"]);\n const names = result.map((c) => c.name);\n // \"a\" (example.com) → prepend dot → .example.com → matches .sub.example.com\n expect(names).toContain(\"a\");\n // \"b\" (.example.com) domain-matches sub.example.com but is secure — excluded on http://\n expect(names).not.toContain(\"b\");\n expect(names).toContain(\"d\"); // sub.example.com matches exactly\n expect(names).not.toContain(\"c\");\n });\n\n it(\"filters by path prefix\", () => {\n const result = filterCookies(cookies, [\"https://example.com/app/settings\"]);\n const names = result.map((c) => c.name);\n expect(names).toContain(\"a\"); // path \"/\" is a prefix of \"/app/settings\"\n expect(names).toContain(\"b\"); // path \"/app\" is a prefix of \"/app/settings\"\n });\n\n it(\"excludes secure cookies for non-https URLs\", () => {\n const result = filterCookies(cookies, [\"http://example.com/app/page\"]);\n const names = result.map((c) => c.name);\n expect(names).toContain(\"a\");\n expect(names).not.toContain(\"b\"); // secure cookie, http URL\n });\n\n it(\"allows secure cookies on loopback addresses regardless of protocol\", () => {\n const cases = [\n { domain: \"localhost\", url: \"http://localhost/\" },\n { domain: \"127.0.0.1\", url: \"http://127.0.0.1/\" },\n { domain: \"[::1]\", url: \"http://[::1]/\" },\n ];\n for (const { domain, url } of cases) {\n const cookie = makeCookie({ name: \"loop\", domain, secure: true });\n const result = filterCookies([cookie], [url]);\n expect(result).toHaveLength(1);\n expect(result[0]!.name).toBe(\"loop\");\n }\n });\n\n it(\"matches against multiple URLs (union)\", () => {\n const result = filterCookies(cookies, [\n \"http://example.com/\",\n \"http://other.com/\",\n ]);\n const names = result.map((c) => c.name);\n expect(names).toContain(\"a\");\n expect(names).toContain(\"c\");\n });\n\n it(\"returns empty array when no cookies match any URL\", () => {\n const result = filterCookies(cookies, [\"http://nomatch.dev/\"]);\n expect(result).toHaveLength(0);\n });\n\n it(\"returns empty array when cookie list is empty\", () => {\n const result = filterCookies([], [\"http://example.com/\"]);\n expect(result).toHaveLength(0);\n });\n\n it(\"does not match a sibling subdomain against a host-only domain\", () => {\n // Cookie for \"api.example.com\" should NOT match \"www.example.com\"\n const apiCookie = makeCookie({ name: \"api\", domain: \"api.example.com\" });\n const result = filterCookies([apiCookie], [\"http://www.example.com/\"]);\n expect(result).toHaveLength(0);\n });\n\n it(\"does not match a parent domain against a more specific cookie\", () => {\n // Cookie for \"sub.example.com\" should NOT match \"example.com\"\n const subCookie = makeCookie({ name: \"sub\", domain: \"sub.example.com\" });\n const result = filterCookies([subCookie], [\"http://example.com/\"]);\n expect(result).toHaveLength(0);\n });\n\n it(\"does not match when path does not prefix the URL path\", () => {\n const deepCookie = makeCookie({\n name: \"deep\",\n domain: \"example.com\",\n path: \"/admin\",\n });\n const result = filterCookies([deepCookie], [\"http://example.com/public\"]);\n expect(result).toHaveLength(0);\n });\n\n it(\"does not match when cookie path is a string prefix but not a path boundary\", () => {\n // \"/foo\" should NOT match \"/foobar\" — only \"/foo\", \"/foo/\", \"/foo/bar\"\n const cookie = makeCookie({\n name: \"boundary\",\n domain: \"example.com\",\n path: \"/foo\",\n });\n expect(filterCookies([cookie], [\"http://example.com/foobar\"])).toHaveLength(\n 0,\n );\n expect(filterCookies([cookie], [\"http://example.com/foo\"])).toHaveLength(1);\n expect(\n filterCookies([cookie], [\"http://example.com/foo/bar\"]),\n ).toHaveLength(1);\n });\n\n it(\"matches root path against any URL path\", () => {\n const rootCookie = makeCookie({\n name: \"root\",\n domain: \"example.com\",\n path: \"/\",\n });\n const result = filterCookies(\n [rootCookie],\n [\"http://example.com/deeply/nested/page\"],\n );\n expect(result).toHaveLength(1);\n });\n\n it(\"handles URL with port numbers\", () => {\n const c = makeCookie({ name: \"port\", domain: \"localhost\", path: \"/\" });\n const result = filterCookies([c], [\"http://localhost:3000/api\"]);\n expect(result).toHaveLength(1);\n });\n\n it(\"handles URL with query string and fragment\", () => {\n const c = makeCookie({ name: \"q\", domain: \"example.com\", path: \"/\" });\n const result = filterCookies(\n [c],\n [\"http://example.com/page?q=1&r=2#section\"],\n );\n expect(result).toHaveLength(1);\n });\n\n it(\"throws CookieValidationError for malformed URL\", () => {\n const c = makeCookie({ name: \"a\", domain: \"example.com\" });\n expect(() => filterCookies([c], [\"not-a-valid-url\"])).toThrow(\n /Invalid URL passed to cookies\\(\\)/,\n );\n });\n});\n\ndescribe(\"normalizeCookieParams\", () => {\n it(\"passes through cookies with domain+path\", () => {\n const input: CookieParam[] = [\n { name: \"a\", value: \"1\", domain: \"example.com\", path: \"/\" },\n ];\n const result = normalizeCookieParams(input);\n expect(result[0]!.domain).toBe(\"example.com\");\n expect(result[0]!.path).toBe(\"/\");\n expect(result[0]!.url).toBeUndefined();\n });\n\n it(\"derives domain, path, and secure from url\", () => {\n const input: CookieParam[] = [\n { name: \"a\", value: \"1\", url: \"https://example.com/app/page\" },\n ];\n const result = normalizeCookieParams(input);\n expect(result[0]!.domain).toBe(\"example.com\");\n expect(result[0]!.path).toBe(\"/app/\");\n expect(result[0]!.secure).toBe(true);\n expect(result[0]!.url).toBeUndefined();\n });\n\n it(\"sets secure to false for http urls\", () => {\n const input: CookieParam[] = [\n { name: \"a\", value: \"1\", url: \"http://example.com/\" },\n ];\n const result = normalizeCookieParams(input);\n expect(result[0]!.secure).toBe(false);\n });\n\n it(\"throws when neither url nor domain+path is provided\", () => {\n expect(() => normalizeCookieParams([{ name: \"a\", value: \"1\" }])).toThrow(\n /must have a url or a domain\\/path pair/,\n );\n });\n\n it(\"throws when both url and domain are provided\", () => {\n expect(() =>\n normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"https://x.com/\", domain: \"x.com\" },\n ]),\n ).toThrow(/should have either url or domain/);\n });\n\n it(\"throws when both url and path are provided\", () => {\n expect(() =>\n normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"https://x.com/\", path: \"/\" },\n ]),\n ).toThrow(/should have either url or path/);\n });\n\n it(\"throws for invalid expires (negative, not -1)\", () => {\n expect(() =>\n normalizeCookieParams([\n { name: \"a\", value: \"1\", domain: \"x.com\", path: \"/\", expires: -5 },\n ]),\n ).toThrow(/invalid expires/);\n });\n\n it(\"allows expires of -1 (session cookie)\", () => {\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", domain: \"x.com\", path: \"/\", expires: -1 },\n ]);\n expect(result[0]!.expires).toBe(-1);\n });\n\n it(\"allows a positive expires timestamp\", () => {\n const future = Math.floor(Date.now() / 1000) + 3600;\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", domain: \"x.com\", path: \"/\", expires: future },\n ]);\n expect(result[0]!.expires).toBe(future);\n });\n\n it(\"throws for about:blank url\", () => {\n expect(() =>\n normalizeCookieParams([{ name: \"a\", value: \"1\", url: \"about:blank\" }]),\n ).toThrow(/Blank page/);\n });\n\n it(\"throws for data: url\", () => {\n expect(() =>\n normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"data:text/html,hi\" },\n ]),\n ).toThrow(/Data URL/);\n });\n\n it(\"throws CookieValidationError for malformed url\", () => {\n expect(() =>\n normalizeCookieParams([{ name: \"a\", value: \"1\", url: \"not-a-url\" }]),\n ).toThrow(/Cookie \"a\" has an invalid url/);\n });\n\n it(\"throws when sameSite is None but secure is false\", () => {\n expect(() =>\n normalizeCookieParams([\n {\n name: \"a\",\n value: \"1\",\n domain: \"x.com\",\n path: \"/\",\n sameSite: \"None\",\n secure: false,\n },\n ]),\n ).toThrow(/sameSite: \"None\" without secure: true/);\n });\n\n it(\"throws when sameSite is None and secure is omitted (undefined)\", () => {\n // CDP defaults secure to false when omitted, so the browser will reject it.\n expect(() =>\n normalizeCookieParams([\n { name: \"a\", value: \"1\", domain: \"x.com\", path: \"/\", sameSite: \"None\" },\n ]),\n ).toThrow(/sameSite: \"None\" without secure: true/);\n });\n\n it(\"does NOT throw when sameSite is None and secure is true\", () => {\n const result = normalizeCookieParams([\n {\n name: \"a\",\n value: \"1\",\n domain: \"x.com\",\n path: \"/\",\n sameSite: \"None\",\n secure: true,\n },\n ]);\n expect(result[0]!.sameSite).toBe(\"None\");\n expect(result[0]!.secure).toBe(true);\n });\n\n it(\"derives root path from URL with no trailing path segments\", () => {\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"https://example.com\" },\n ]);\n // URL(\"https://example.com\").pathname is \"/\", lastIndexOf(\"/\") + 1 = 1 → \"/\"\n expect(result[0]!.path).toBe(\"/\");\n });\n\n it(\"handles URL with port number\", () => {\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"https://localhost:3000/api/v1\" },\n ]);\n expect(result[0]!.domain).toBe(\"localhost\");\n expect(result[0]!.path).toBe(\"/api/\");\n expect(result[0]!.secure).toBe(true);\n });\n\n it(\"handles URL with query string (ignores query)\", () => {\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"https://example.com/page?q=1\" },\n ]);\n expect(result[0]!.domain).toBe(\"example.com\");\n expect(result[0]!.path).toBe(\"/\");\n });\n\n it(\"normalises multiple cookies in a single call\", () => {\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", url: \"https://one.com/x\" },\n { name: \"b\", value: \"2\", domain: \"two.com\", path: \"/\" },\n { name: \"c\", value: \"3\", url: \"http://three.com/y/z\" },\n ]);\n expect(result).toHaveLength(3);\n expect(result[0]!.domain).toBe(\"one.com\");\n expect(result[1]!.domain).toBe(\"two.com\");\n expect(result[2]!.domain).toBe(\"three.com\");\n expect(result[2]!.secure).toBe(false);\n });\n\n it(\"does not mutate the original input array\", () => {\n const input: CookieParam[] = [\n { name: \"a\", value: \"1\", url: \"https://example.com/app\" },\n ];\n const frozen = { ...input[0]! };\n normalizeCookieParams(input);\n expect(input[0]).toEqual(frozen);\n });\n\n it(\"preserves optional fields that are explicitly set\", () => {\n const result = normalizeCookieParams([\n {\n name: \"full\",\n value: \"val\",\n domain: \"x.com\",\n path: \"/p\",\n expires: 9999999999,\n httpOnly: true,\n secure: true,\n sameSite: \"Strict\",\n },\n ]);\n const c = result[0]!;\n expect(c.httpOnly).toBe(true);\n expect(c.secure).toBe(true);\n expect(c.sameSite).toBe(\"Strict\");\n expect(c.expires).toBe(9999999999);\n });\n\n it(\"allows expires of 0 (epoch — effectively expired)\", () => {\n // 0 is a positive-ish edge case; browsers treat it as already expired\n const result = normalizeCookieParams([\n { name: \"a\", value: \"1\", domain: \"x.com\", path: \"/\", expires: 0 },\n ]);\n expect(result[0]!.expires).toBe(0);\n });\n\n it(\"throws on the first invalid cookie in a batch\", () => {\n expect(() =>\n normalizeCookieParams([\n { name: \"ok\", value: \"1\", domain: \"x.com\", path: \"/\" },\n { name: \"bad\", value: \"2\" }, // missing url/domain+path\n ]),\n ).toThrow(/Cookie \"bad\"/);\n });\n\n it(\"includes cookie name in every error message\", () => {\n const cases = [\n () => normalizeCookieParams([{ name: \"NAMED\", value: \"1\" }]),\n () =>\n normalizeCookieParams([\n { name: \"NAMED\", value: \"1\", url: \"https://x.com/\", domain: \"x\" },\n ]),\n () =>\n normalizeCookieParams([\n { name: \"NAMED\", value: \"1\", url: \"about:blank\" },\n ]),\n () =>\n normalizeCookieParams([\n {\n name: \"NAMED\",\n value: \"1\",\n domain: \"x.com\",\n path: \"/\",\n sameSite: \"None\",\n secure: false,\n },\n ]),\n ];\n for (const fn of cases) {\n expect(fn).toThrow(/NAMED/);\n }\n });\n});\n\ndescribe(\"cookieMatchesFilter\", () => {\n const cookie = makeCookie({\n name: \"session\",\n domain: \".example.com\",\n path: \"/app\",\n });\n\n it(\"matches when all filters match (exact strings)\", () => {\n expect(\n cookieMatchesFilter(cookie, {\n name: \"session\",\n domain: \".example.com\",\n path: \"/app\",\n }),\n ).toBe(true);\n });\n\n it(\"does not match when name differs\", () => {\n expect(cookieMatchesFilter(cookie, { name: \"other\" })).toBe(false);\n });\n\n it(\"does not match when domain differs\", () => {\n expect(cookieMatchesFilter(cookie, { domain: \"other.com\" })).toBe(false);\n });\n\n it(\"does not match when path differs\", () => {\n expect(cookieMatchesFilter(cookie, { path: \"/other\" })).toBe(false);\n });\n\n it(\"matches with regex name\", () => {\n expect(cookieMatchesFilter(cookie, { name: /^sess/ })).toBe(true);\n expect(cookieMatchesFilter(cookie, { name: /^nope/ })).toBe(false);\n });\n\n it(\"matches with regex domain\", () => {\n expect(cookieMatchesFilter(cookie, { domain: /example\\.com$/ })).toBe(true);\n expect(cookieMatchesFilter(cookie, { domain: /^other/ })).toBe(false);\n });\n\n it(\"matches with regex path\", () => {\n expect(cookieMatchesFilter(cookie, { path: /^\\/app/ })).toBe(true);\n });\n\n it(\"undefined filters match everything\", () => {\n expect(cookieMatchesFilter(cookie, {})).toBe(true);\n expect(cookieMatchesFilter(cookie, { name: undefined })).toBe(true);\n });\n\n it(\"requires ALL filters to match (AND logic)\", () => {\n // name matches but domain does not\n expect(\n cookieMatchesFilter(cookie, { name: \"session\", domain: \"wrong.com\" }),\n ).toBe(false);\n });\n\n it(\"handles global regex lastIndex correctly\", () => {\n const re = /sess/g;\n re.lastIndex = 999;\n expect(cookieMatchesFilter(cookie, { name: re })).toBe(true);\n });\n\n it(\"exact string does not do substring matching\", () => {\n // filter name \"sess\" should NOT match cookie name \"session\"\n expect(cookieMatchesFilter(cookie, { name: \"sess\" })).toBe(false);\n });\n\n it(\"regex can do substring matching\", () => {\n // regex /sess/ SHOULD match cookie name \"session\" (substring)\n expect(cookieMatchesFilter(cookie, { name: /sess/ })).toBe(true);\n });\n\n it(\"works with all three regex filters combined\", () => {\n expect(\n cookieMatchesFilter(cookie, {\n name: /^session$/,\n domain: /example/,\n path: /^\\/app$/,\n }),\n ).toBe(true);\n\n // One of three fails\n expect(\n cookieMatchesFilter(cookie, {\n name: /^session$/,\n domain: /example/,\n path: /^\\/wrong$/,\n }),\n ).toBe(false);\n });\n\n it(\"empty string filter only matches empty cookie property\", () => {\n const emptyPathCookie = makeCookie({\n name: \"x\",\n domain: \"a.com\",\n path: \"\",\n });\n expect(cookieMatchesFilter(emptyPathCookie, { path: \"\" })).toBe(true);\n expect(cookieMatchesFilter(cookie, { path: \"\" })).toBe(false);\n });\n\n it(\"is called once per cookie (no cross-contamination between calls)\", () => {\n const c1 = makeCookie({ name: \"alpha\", domain: \"a.com\", path: \"/\" });\n const c2 = makeCookie({ name: \"beta\", domain: \"b.com\", path: \"/x\" });\n const filter = { name: \"alpha\", domain: \"a.com\" };\n expect(cookieMatchesFilter(c1, filter)).toBe(true);\n expect(cookieMatchesFilter(c2, filter)).toBe(false);\n });\n});\n\ndescribe(\"V3Context cookie methods\", () => {\n // We test V3Context methods by constructing a minimal instance with a mock\n // CDP connection. V3Context.create() requires a real WebSocket, so we build\n // one via type-casting a MockCDPSession into the `conn` slot.\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let V3ContextClass: { prototype: V3Context } & Record<string, any>;\n\n beforeEach(async () => {\n const mod = await import(\"../../lib/v3/understudy/context.js\");\n V3ContextClass = mod.V3Context as typeof V3ContextClass;\n });\n\n function makeContext(\n cdpHandlers: Record<string, (params?: Record<string, unknown>) => unknown>,\n ): V3Context {\n const mockConn = new MockCDPSession(cdpHandlers, \"root\");\n // V3Context stores the connection as `conn` (readonly). We create an\n // object with the real prototype so we get the actual method implementations.\n const ctx = Object.create(V3ContextClass.prototype) as V3Context & {\n conn: MockCDPSession;\n };\n // Assign the mock connection\n Object.defineProperty(ctx, \"conn\", { value: mockConn, writable: false });\n return ctx;\n }\n\n function getMockConn(ctx: V3Context): MockCDPSession {\n return (ctx as unknown as { conn: MockCDPSession }).conn;\n }\n\n describe(\"cookies()\", () => {\n it(\"returns all cookies from Storage.getCookies\", async () => {\n const cdpCookies = [\n toCdpCookie(makeCookie({ name: \"a\", domain: \"example.com\" })),\n toCdpCookie(makeCookie({ name: \"b\", domain: \"other.com\" })),\n ];\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: cdpCookies }),\n });\n\n const result = await ctx.cookies();\n expect(result).toHaveLength(2);\n expect(result.map((c) => c.name)).toEqual([\"a\", \"b\"]);\n });\n\n it(\"filters by URL when provided as string\", async () => {\n const cdpCookies = [\n toCdpCookie(makeCookie({ name: \"a\", domain: \"example.com\" })),\n toCdpCookie(makeCookie({ name: \"b\", domain: \"other.com\" })),\n ];\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: cdpCookies }),\n });\n\n const result = await ctx.cookies(\"http://example.com/\");\n expect(result).toHaveLength(1);\n expect(result[0]!.name).toBe(\"a\");\n });\n\n it(\"filters by URL when provided as array\", async () => {\n const cdpCookies = [\n toCdpCookie(makeCookie({ name: \"a\", domain: \"example.com\" })),\n toCdpCookie(makeCookie({ name: \"b\", domain: \"other.com\" })),\n ];\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: cdpCookies }),\n });\n\n const result = await ctx.cookies([\"http://other.com/\"]);\n expect(result).toHaveLength(1);\n expect(result[0]!.name).toBe(\"b\");\n });\n\n it(\"defaults sameSite to Lax when CDP returns undefined\", async () => {\n const cdpCookie = {\n ...toCdpCookie(makeCookie()),\n sameSite: undefined as string | undefined,\n };\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [cdpCookie] }),\n });\n\n const result = await ctx.cookies();\n expect(result[0]!.sameSite).toBe(\"Lax\");\n });\n\n it(\"returns empty array when browser has no cookies\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [] }),\n });\n const result = await ctx.cookies();\n expect(result).toEqual([]);\n });\n\n it(\"maps all CDP cookie fields to our Cookie type\", async () => {\n const cdpCookie = toCdpCookie(\n makeCookie({\n name: \"full\",\n value: \"v\",\n domain: \".test.com\",\n path: \"/p\",\n expires: 1700000000,\n httpOnly: true,\n secure: true,\n sameSite: \"Strict\",\n }),\n );\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [cdpCookie] }),\n });\n\n const result = await ctx.cookies();\n expect(result[0]).toEqual({\n name: \"full\",\n value: \"v\",\n domain: \".test.com\",\n path: \"/p\",\n expires: 1700000000,\n httpOnly: true,\n secure: true,\n sameSite: \"Strict\",\n });\n });\n\n it(\"strips extra CDP fields (size, priority, etc.) from result\", async () => {\n const cdpCookie = toCdpCookie(makeCookie({ name: \"stripped\" }));\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [cdpCookie] }),\n });\n\n const result = await ctx.cookies();\n const keys = Object.keys(result[0]!);\n expect(keys).not.toContain(\"size\");\n expect(keys).not.toContain(\"priority\");\n expect(keys).not.toContain(\"sourceScheme\");\n expect(keys).not.toContain(\"sourcePort\");\n });\n\n it(\"calls Storage.getCookies exactly once per invocation\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [] }),\n });\n\n await ctx.cookies();\n await ctx.cookies(\"http://example.com\");\n\n const calls = getMockConn(ctx).callsFor(\"Storage.getCookies\");\n expect(calls).toHaveLength(2);\n });\n });\n\n describe(\"addCookies()\", () => {\n it(\"sends all cookies in a single Storage.setCookies call\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.addCookies([\n { name: \"a\", value: \"1\", domain: \"example.com\", path: \"/\" },\n { name: \"b\", value: \"2\", domain: \"other.com\", path: \"/\" },\n ]);\n\n const calls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(calls).toHaveLength(1);\n expect(calls[0]!.params).toMatchObject({\n cookies: [\n { name: \"a\", domain: \"example.com\" },\n { name: \"b\", domain: \"other.com\" },\n ],\n });\n });\n\n it(\"derives domain/path/secure from url\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.addCookies([\n { name: \"a\", value: \"1\", url: \"https://example.com/app/page\" },\n ]);\n\n const calls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(calls[0]!.params).toMatchObject({\n cookies: [\n { name: \"a\", domain: \"example.com\", path: \"/app/\", secure: true },\n ],\n });\n });\n\n it(\"throws when Storage.setCookies fails\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => {\n throw new Error(\"CDP failure\");\n },\n });\n\n await expect(\n ctx.addCookies([\n { name: \"bad\", value: \"x\", domain: \"example.com\", path: \"/\" },\n ]),\n ).rejects.toThrow(/Failed to set cookies \\[\"bad\"\\]/);\n });\n\n it(\"throws for sameSite None without secure\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => ({}),\n });\n\n await expect(\n ctx.addCookies([\n {\n name: \"x\",\n value: \"1\",\n domain: \"example.com\",\n path: \"/\",\n sameSite: \"None\",\n secure: false,\n },\n ]),\n ).rejects.toThrow(/sameSite: \"None\" without secure: true/);\n });\n\n it(\"does nothing when passed an empty array\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.addCookies([]);\n\n const calls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(calls).toHaveLength(0);\n });\n\n it(\"sends all cookie fields to CDP (including optional ones)\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.addCookies([\n {\n name: \"full\",\n value: \"val\",\n domain: \"x.com\",\n path: \"/p\",\n expires: 9999999999,\n httpOnly: true,\n secure: true,\n sameSite: \"Strict\",\n },\n ]);\n\n const calls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(calls[0]!.params).toEqual({\n cookies: [\n {\n name: \"full\",\n value: \"val\",\n domain: \"x.com\",\n path: \"/p\",\n expires: 9999999999,\n httpOnly: true,\n secure: true,\n sameSite: \"Strict\",\n },\n ],\n });\n });\n\n it(\"error message includes all cookie names when batch fails\", async () => {\n const ctx = makeContext({\n \"Storage.setCookies\": () => {\n throw new Error(\"CDP failure\");\n },\n });\n\n await expect(\n ctx.addCookies([\n { name: \"alpha\", value: \"1\", domain: \"a.com\", path: \"/\" },\n { name: \"beta\", value: \"2\", domain: \"b.com\", path: \"/\" },\n ]),\n ).rejects.toThrow(/Failed to set cookies \\[\"alpha\", \"beta\"\\]/);\n });\n });\n\n describe(\"clearCookies()\", () => {\n const cdpCookies = [\n toCdpCookie(\n makeCookie({ name: \"session\", domain: \"example.com\", path: \"/\" }),\n ),\n toCdpCookie(\n makeCookie({ name: \"_ga\", domain: \".example.com\", path: \"/\" }),\n ),\n toCdpCookie(\n makeCookie({ name: \"pref\", domain: \"other.com\", path: \"/settings\" }),\n ),\n ];\n\n it(\"uses atomic Storage.clearCookies when called with no options\", async () => {\n const ctx = makeContext({\n \"Storage.clearCookies\": () => ({}),\n });\n\n await ctx.clearCookies();\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(1);\n\n // Should NOT have fetched or re-set anything\n const getCalls = getMockConn(ctx).callsFor(\"Storage.getCookies\");\n expect(getCalls).toHaveLength(0);\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(0);\n });\n\n it(\"clears and re-adds only non-matching cookies (name filter)\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ name: \"_ga\" });\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(1);\n\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(1);\n const kept = (\n setCalls[0]!.params?.cookies as Array<{ name: string }>\n ).map((c) => c.name);\n expect(kept).toEqual([\"session\", \"pref\"]);\n });\n\n it(\"clears and re-adds only non-matching cookies (domain filter)\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ domain: \"other.com\" });\n\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n const kept = (\n setCalls[0]!.params?.cookies as Array<{ name: string }>\n ).map((c) => c.name);\n expect(kept).toEqual([\"session\", \"_ga\"]);\n });\n\n it(\"clears and re-adds only non-matching cookies (regex name)\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ name: /^_ga/ });\n\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n const kept = (\n setCalls[0]!.params?.cookies as Array<{ name: string }>\n ).map((c) => c.name);\n expect(kept).toEqual([\"session\", \"pref\"]);\n });\n\n it(\"applies AND logic across multiple filters\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ name: \"session\", domain: \"example.com\" });\n\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n const kept = (\n setCalls[0]!.params?.cookies as Array<{ name: string }>\n ).map((c) => c.name);\n expect(kept).toEqual([\"_ga\", \"pref\"]);\n });\n\n it(\"does nothing when filter matches no cookies\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ name: \"nonexistent\" });\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(0);\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(0);\n });\n\n it(\"clears without re-adding when filter matches all cookies\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ name: /.*/ });\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(1);\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(0);\n });\n\n it(\"handles regex that matches multiple cookies\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({\n cookies: [\n toCdpCookie(\n makeCookie({ name: \"_ga_ABC\", domain: \"example.com\", path: \"/\" }),\n ),\n toCdpCookie(\n makeCookie({ name: \"_ga_DEF\", domain: \"example.com\", path: \"/\" }),\n ),\n toCdpCookie(\n makeCookie({ name: \"_gid\", domain: \"example.com\", path: \"/\" }),\n ),\n toCdpCookie(\n makeCookie({ name: \"session\", domain: \"example.com\", path: \"/\" }),\n ),\n ],\n }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ name: /^_ga/ });\n\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n const kept = (\n setCalls[0]!.params?.cookies as Array<{ name: string }>\n ).map((c) => c.name);\n expect(kept).toContain(\"_gid\");\n expect(kept).toContain(\"session\");\n expect(kept).not.toContain(\"_ga_ABC\");\n expect(kept).not.toContain(\"_ga_DEF\");\n });\n\n it(\"regex domain filter combined with path filter\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ domain: /example/, path: \"/settings\" });\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(0);\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(0);\n });\n\n it(\"clearCookies with empty options object uses atomic clear (same as no args)\", async () => {\n const ctx = makeContext({\n \"Storage.clearCookies\": () => ({}),\n });\n\n await ctx.clearCookies({});\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(1);\n });\n\n it(\"clears and re-adds only non-matching cookies (path filter)\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await ctx.clearCookies({ path: \"/settings\" });\n\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(1);\n\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(1);\n const kept = (\n setCalls[0]!.params?.cookies as Array<{ name: string }>\n ).map((c) => c.name);\n expect(kept).toEqual([\"session\", \"_ga\"]);\n expect(kept).not.toContain(\"pref\");\n });\n\n it(\"throws when Storage.getCookies fails during filtered clear\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => {\n throw new Error(\"CDP getCookies failure\");\n },\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => ({}),\n });\n\n await expect(ctx.clearCookies({ name: \"session\" })).rejects.toThrow(\n /CDP getCookies failure/,\n );\n\n // clearCookies and setCookies should never have been called\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(0);\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(0);\n });\n\n it(\"throws when Storage.clearCookies fails during filtered clear\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => {\n throw new Error(\"CDP clearCookies failure\");\n },\n \"Storage.setCookies\": () => ({}),\n });\n\n await expect(ctx.clearCookies({ name: \"session\" })).rejects.toThrow(\n /CDP clearCookies failure/,\n );\n\n // setCookies should never have been called — cookies are untouched\n const setCalls = getMockConn(ctx).callsFor(\"Storage.setCookies\");\n expect(setCalls).toHaveLength(0);\n });\n\n it(\"throws when Storage.setCookies fails during re-add, cookies are already wiped\", async () => {\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [...cdpCookies] }),\n \"Storage.clearCookies\": () => ({}),\n \"Storage.setCookies\": () => {\n throw new Error(\"CDP setCookies failure\");\n },\n });\n\n await expect(ctx.clearCookies({ name: \"session\" })).rejects.toThrow(\n /cookie jar is now empty/,\n );\n\n // clearCookies WAS called — cookies are gone\n const clearCalls = getMockConn(ctx).callsFor(\"Storage.clearCookies\");\n expect(clearCalls).toHaveLength(1);\n });\n });\n\n describe(\"cookies() sameSite mapping\", () => {\n it(\"passes through valid sameSite values as-is\", async () => {\n for (const sameSite of [\"Strict\", \"Lax\", \"None\"] as const) {\n const cdpCookie = { ...toCdpCookie(makeCookie()), sameSite };\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [cdpCookie] }),\n });\n const result = await ctx.cookies();\n expect(result[0]!.sameSite).toBe(sameSite);\n }\n });\n\n it(\"does not normalize lowercase sameSite values from CDP\", async () => {\n // CDP may return lowercase values; the current implementation casts\n // without normalizing, so \"none\" passes through as-is.\n const cdpCookie = { ...toCdpCookie(makeCookie()), sameSite: \"none\" };\n const ctx = makeContext({\n \"Storage.getCookies\": () => ({ cookies: [cdpCookie] }),\n });\n const result = await ctx.cookies();\n // This documents the current behavior: lowercase is NOT normalized.\n expect(result[0]!.sameSite).toBe(\"none\");\n });\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_events_1 = require("node:events");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const cdp_js_1 = require("../../lib/v3/understudy/cdp.js");
|
|
6
|
+
const EventSink_js_1 = require("../../lib/v3/flowlogger/EventSink.js");
|
|
7
|
+
const EventEmitter_js_1 = require("../../lib/v3/flowlogger/EventEmitter.js");
|
|
8
|
+
const EventStore_js_1 = require("../../lib/v3/flowlogger/EventStore.js");
|
|
9
|
+
const FlowLogger_js_1 = require("../../lib/v3/flowlogger/FlowLogger.js");
|
|
10
|
+
function attachEventStoreToBus(store, bus) {
|
|
11
|
+
const onFlowEvent = (event) => {
|
|
12
|
+
if (event instanceof FlowLogger_js_1.FlowEvent) {
|
|
13
|
+
void store.emit(event);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
bus.on("*", onFlowEvent);
|
|
17
|
+
return () => {
|
|
18
|
+
bus.off("*", onFlowEvent);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
class FakeSocket extends node_events_1.EventEmitter {
|
|
22
|
+
sentPayloads = [];
|
|
23
|
+
readyState = 1;
|
|
24
|
+
send(payload) {
|
|
25
|
+
this.sentPayloads.push(payload);
|
|
26
|
+
}
|
|
27
|
+
close() {
|
|
28
|
+
this.readyState = 3;
|
|
29
|
+
this.emit("close", 1000, "");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function createConnection(socket) {
|
|
33
|
+
// The production constructor is private; tests instantiate it directly so
|
|
34
|
+
// they can drive raw websocket messages without a real browser.
|
|
35
|
+
const ConnectionCtor = cdp_js_1.CdpConnection;
|
|
36
|
+
return new ConnectionCtor(socket);
|
|
37
|
+
}
|
|
38
|
+
function requireEvent(events, predicate, description) {
|
|
39
|
+
const match = events.find(predicate);
|
|
40
|
+
(0, vitest_1.expect)(match, `missing ${description}`).toBeDefined();
|
|
41
|
+
return match;
|
|
42
|
+
}
|
|
43
|
+
(0, vitest_1.describe)("flow logger cdp context", () => {
|
|
44
|
+
(0, vitest_1.it)("preserves the active parent chain when a session event handler issues a nested CDP call", async () => {
|
|
45
|
+
const sessionId = "session-test";
|
|
46
|
+
const socket = new FakeSocket();
|
|
47
|
+
const eventBus = new EventEmitter_js_1.EventEmitterWithWildcardSupport();
|
|
48
|
+
const sink = new EventSink_js_1.InMemoryEventSink();
|
|
49
|
+
const eventStore = new EventStore_js_1.EventStore(sessionId, undefined, sink);
|
|
50
|
+
const detachBus = attachEventStoreToBus(eventStore, eventBus);
|
|
51
|
+
const conn = createConnection(socket);
|
|
52
|
+
conn.flowLoggerContext = FlowLogger_js_1.FlowLogger.init(sessionId, eventBus);
|
|
53
|
+
// Seed the target/session mapping the same way a real attach flow would
|
|
54
|
+
// before any session-scoped messages are dispatched.
|
|
55
|
+
conn.onMessage(JSON.stringify({
|
|
56
|
+
method: "Target.attachedToTarget",
|
|
57
|
+
params: {
|
|
58
|
+
sessionId: "target-session",
|
|
59
|
+
targetInfo: { targetId: "target-1" },
|
|
60
|
+
},
|
|
61
|
+
}));
|
|
62
|
+
const session = conn.getSession("target-session");
|
|
63
|
+
(0, vitest_1.expect)(session).toBeDefined();
|
|
64
|
+
session.on("Runtime.consoleAPICalled", () => {
|
|
65
|
+
// This nested send used to lose its parent chain because the callback ran
|
|
66
|
+
// after the original ALS scope had already unwound.
|
|
67
|
+
void session.send("Runtime.evaluate", {
|
|
68
|
+
expression: "2 + 2",
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
await FlowLogger_js_1.FlowLogger.runWithLogging({
|
|
72
|
+
context: conn.flowLoggerContext,
|
|
73
|
+
eventType: "SyntheticParentEvent",
|
|
74
|
+
}, async () => {
|
|
75
|
+
void session.send("Page.navigate", {
|
|
76
|
+
url: "https://example.com",
|
|
77
|
+
});
|
|
78
|
+
}, []);
|
|
79
|
+
conn.onMessage(JSON.stringify({
|
|
80
|
+
method: "Runtime.consoleAPICalled",
|
|
81
|
+
sessionId: "target-session",
|
|
82
|
+
params: { type: "log" },
|
|
83
|
+
}));
|
|
84
|
+
// The nested Runtime.evaluate call should still attach under the synthetic
|
|
85
|
+
// parent event even though it was triggered by a later session callback.
|
|
86
|
+
const events = await eventStore.query({});
|
|
87
|
+
const parentEvent = requireEvent(events, (event) => event.eventType === "SyntheticParentEvent", "SyntheticParentEvent");
|
|
88
|
+
const nestedCallEvent = requireEvent(events, (event) => event.eventType === "CdpCallEvent" &&
|
|
89
|
+
String(event.data.method) === "Runtime.evaluate", "nested Runtime.evaluate CdpCallEvent");
|
|
90
|
+
(0, vitest_1.expect)(nestedCallEvent.eventParentIds).toEqual([parentEvent.eventId]);
|
|
91
|
+
detachBus();
|
|
92
|
+
await eventStore.destroy();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=flowlogger-capturing-cdp.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowlogger-capturing-cdp.test.js","sourceRoot":"","sources":["../../../../tests/unit/flowlogger-capturing-cdp.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventEmitter } from \"node:events\";\nimport { describe, it, expect } from \"vitest\";\nimport { CdpConnection } from \"../../lib/v3/understudy/cdp.js\";\nimport { InMemoryEventSink } from \"../../lib/v3/flowlogger/EventSink.js\";\nimport { EventEmitterWithWildcardSupport } from \"../../lib/v3/flowlogger/EventEmitter.js\";\nimport { EventStore } from \"../../lib/v3/flowlogger/EventStore.js\";\nimport { FlowEvent, FlowLogger } from \"../../lib/v3/flowlogger/FlowLogger.js\";\n\nfunction attachEventStoreToBus(\n store: EventStore,\n bus: EventEmitterWithWildcardSupport,\n): () => void {\n const onFlowEvent = (event: unknown) => {\n if (event instanceof FlowEvent) {\n void store.emit(event);\n }\n };\n\n bus.on(\"*\", onFlowEvent);\n return () => {\n bus.off(\"*\", onFlowEvent);\n };\n}\n\nclass FakeSocket extends EventEmitter {\n sentPayloads: string[] = [];\n readyState = 1;\n\n send(payload: string): void {\n this.sentPayloads.push(payload);\n }\n\n close(): void {\n this.readyState = 3;\n this.emit(\"close\", 1000, \"\");\n }\n}\n\nfunction createConnection(socket: FakeSocket): CdpConnection {\n // The production constructor is private; tests instantiate it directly so\n // they can drive raw websocket messages without a real browser.\n const ConnectionCtor = CdpConnection as unknown as {\n new (ws: FakeSocket): CdpConnection;\n };\n return new ConnectionCtor(socket);\n}\n\nfunction requireEvent(\n events: FlowEvent[],\n predicate: (event: FlowEvent) => boolean,\n description: string,\n): FlowEvent {\n const match = events.find(predicate);\n expect(match, `missing ${description}`).toBeDefined();\n return match as FlowEvent;\n}\n\ndescribe(\"flow logger cdp context\", () => {\n it(\"preserves the active parent chain when a session event handler issues a nested CDP call\", async () => {\n const sessionId = \"session-test\";\n const socket = new FakeSocket();\n const eventBus = new EventEmitterWithWildcardSupport();\n const sink = new InMemoryEventSink();\n const eventStore = new EventStore(sessionId, undefined, sink);\n\n const detachBus = attachEventStoreToBus(eventStore, eventBus);\n\n const conn = createConnection(socket);\n conn.flowLoggerContext = FlowLogger.init(sessionId, eventBus);\n\n // Seed the target/session mapping the same way a real attach flow would\n // before any session-scoped messages are dispatched.\n (conn as unknown as { onMessage(json: string): void }).onMessage(\n JSON.stringify({\n method: \"Target.attachedToTarget\",\n params: {\n sessionId: \"target-session\",\n targetInfo: { targetId: \"target-1\" },\n },\n }),\n );\n\n const session = conn.getSession(\"target-session\");\n expect(session).toBeDefined();\n\n session!.on(\"Runtime.consoleAPICalled\", () => {\n // This nested send used to lose its parent chain because the callback ran\n // after the original ALS scope had already unwound.\n void session!.send(\"Runtime.evaluate\", {\n expression: \"2 + 2\",\n });\n });\n\n await FlowLogger.runWithLogging(\n {\n context: conn.flowLoggerContext,\n eventType: \"SyntheticParentEvent\",\n },\n async () => {\n void session!.send(\"Page.navigate\", {\n url: \"https://example.com\",\n });\n },\n [],\n );\n\n (conn as unknown as { onMessage(json: string): void }).onMessage(\n JSON.stringify({\n method: \"Runtime.consoleAPICalled\",\n sessionId: \"target-session\",\n params: { type: \"log\" },\n }),\n );\n\n // The nested Runtime.evaluate call should still attach under the synthetic\n // parent event even though it was triggered by a later session callback.\n const events = await eventStore.query({});\n const parentEvent = requireEvent(\n events,\n (event) => event.eventType === \"SyntheticParentEvent\",\n \"SyntheticParentEvent\",\n );\n const nestedCallEvent = requireEvent(\n events,\n (event) =>\n event.eventType === \"CdpCallEvent\" &&\n String(event.data.method) === \"Runtime.evaluate\",\n \"nested Runtime.evaluate CdpCallEvent\",\n );\n\n expect(nestedCallEvent.eventParentIds).toEqual([parentEvent.eventId]);\n\n detachBus();\n await eventStore.destroy();\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const FlowLogger_js_1 = require("../../lib/v3/flowlogger/FlowLogger.js");
|
|
5
|
+
(0, vitest_1.describe)("flow logger llm logging", () => {
|
|
6
|
+
(0, vitest_1.it)("no-ops direct llm logging calls when no flow context is active", () => {
|
|
7
|
+
// These helpers are called from multiple model adapters, so they must stay
|
|
8
|
+
// safe even when a test or utility invokes them outside any ALS flow scope.
|
|
9
|
+
(0, vitest_1.expect)(() => FlowLogger_js_1.FlowLogger.logLlmRequest({
|
|
10
|
+
requestId: "req-1",
|
|
11
|
+
model: "mock-model",
|
|
12
|
+
prompt: "hello",
|
|
13
|
+
})).not.toThrow();
|
|
14
|
+
(0, vitest_1.expect)(() => FlowLogger_js_1.FlowLogger.logLlmResponse({
|
|
15
|
+
requestId: "req-1",
|
|
16
|
+
model: "mock-model",
|
|
17
|
+
output: "world",
|
|
18
|
+
inputTokens: 1,
|
|
19
|
+
outputTokens: 1,
|
|
20
|
+
})).not.toThrow();
|
|
21
|
+
});
|
|
22
|
+
(0, vitest_1.it)("does not throw from llm middleware when no flow context is active", async () => {
|
|
23
|
+
const middleware = FlowLogger_js_1.FlowLogger.createLlmLoggingMiddleware("mock-model");
|
|
24
|
+
// Missing flow context should degrade to a silent no-op and preserve the
|
|
25
|
+
// underlying model result.
|
|
26
|
+
await (0, vitest_1.expect)(middleware.wrapGenerate({
|
|
27
|
+
doGenerate: async () => ({
|
|
28
|
+
text: "done",
|
|
29
|
+
usage: {
|
|
30
|
+
inputTokens: 1,
|
|
31
|
+
outputTokens: 1,
|
|
32
|
+
totalTokens: 2,
|
|
33
|
+
},
|
|
34
|
+
}),
|
|
35
|
+
params: {
|
|
36
|
+
prompt: [],
|
|
37
|
+
},
|
|
38
|
+
})).resolves.toMatchObject({
|
|
39
|
+
text: "done",
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=flowlogger-capturing-llm.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowlogger-capturing-llm.test.js","sourceRoot":"","sources":["../../../../tests/unit/flowlogger-capturing-llm.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,yEAAmE;AAEnE,IAAA,iBAAQ,EAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAA,WAAE,EAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,0BAAU,CAAC,aAAa,CAAC;YACvB,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,OAAO;SAChB,CAAC,CACH,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAA,eAAM,EAAC,GAAG,EAAE,CACV,0BAAU,CAAC,cAAc,CAAC;YACxB,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;SAChB,CAAC,CACH,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,UAAU,GAAG,0BAAU,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAEvE,yEAAyE;QACzE,2BAA2B;QAC3B,MAAM,IAAA,eAAM,EACV,UAAU,CAAC,YAAY,CAAC;YACtB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE;oBACL,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,WAAW,EAAE,CAAC;iBACf;aACF,CAAC;YACF,MAAM,EAAE;gBACN,MAAM,EAAE,EAAE;aACX;SACO,CAAC,CACZ,CAAC,QAAQ,CAAC,aAAa,CAAC;YACvB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport { FlowLogger } from \"../../lib/v3/flowlogger/FlowLogger.js\";\n\ndescribe(\"flow logger llm logging\", () => {\n it(\"no-ops direct llm logging calls when no flow context is active\", () => {\n // These helpers are called from multiple model adapters, so they must stay\n // safe even when a test or utility invokes them outside any ALS flow scope.\n expect(() =>\n FlowLogger.logLlmRequest({\n requestId: \"req-1\",\n model: \"mock-model\",\n prompt: \"hello\",\n }),\n ).not.toThrow();\n\n expect(() =>\n FlowLogger.logLlmResponse({\n requestId: \"req-1\",\n model: \"mock-model\",\n output: \"world\",\n inputTokens: 1,\n outputTokens: 1,\n }),\n ).not.toThrow();\n });\n\n it(\"does not throw from llm middleware when no flow context is active\", async () => {\n const middleware = FlowLogger.createLlmLoggingMiddleware(\"mock-model\");\n\n // Missing flow context should degrade to a silent no-op and preserve the\n // underlying model result.\n await expect(\n middleware.wrapGenerate({\n doGenerate: async () => ({\n text: \"done\",\n usage: {\n inputTokens: 1,\n outputTokens: 1,\n totalTokens: 2,\n },\n }),\n params: {\n prompt: [],\n },\n } as never),\n ).resolves.toMatchObject({\n text: \"done\",\n });\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const EventStore_js_1 = require("../../lib/v3/flowlogger/EventStore.js");
|
|
5
|
+
const EventEmitter_js_1 = require("../../lib/v3/flowlogger/EventEmitter.js");
|
|
6
|
+
const FlowLogger_js_1 = require("../../lib/v3/flowlogger/FlowLogger.js");
|
|
7
|
+
function attachEventStoreToBus(store, bus) {
|
|
8
|
+
const onFlowEvent = (event) => {
|
|
9
|
+
if (event instanceof FlowLogger_js_1.FlowEvent) {
|
|
10
|
+
void store.emit(event);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
bus.on("*", onFlowEvent);
|
|
14
|
+
return () => {
|
|
15
|
+
bus.off("*", onFlowEvent);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function createVerboseStoreHarness() {
|
|
19
|
+
const writes = [];
|
|
20
|
+
process.stderr.write = ((chunk, cb) => {
|
|
21
|
+
writes.push(String(chunk));
|
|
22
|
+
cb?.(null);
|
|
23
|
+
return true;
|
|
24
|
+
});
|
|
25
|
+
const store = new EventStore_js_1.EventStore("session-test");
|
|
26
|
+
const bus = new EventEmitter_js_1.EventEmitterWithWildcardSupport();
|
|
27
|
+
const detachBus = attachEventStoreToBus(store, bus);
|
|
28
|
+
return { writes, store, bus, detachBus };
|
|
29
|
+
}
|
|
30
|
+
(0, vitest_1.describe)("flow logger event store", () => {
|
|
31
|
+
const stderrWrite = process.stderr.write.bind(process.stderr);
|
|
32
|
+
(0, vitest_1.afterEach)(() => {
|
|
33
|
+
process.stderr.write = stderrWrite;
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.it)("queries recent events from the default in-memory sink", async () => {
|
|
36
|
+
const store = new EventStore_js_1.EventStore("session-test");
|
|
37
|
+
await store.emit(new FlowLogger_js_1.FlowEvent({
|
|
38
|
+
eventType: "StagehandExtractEvent",
|
|
39
|
+
sessionId: "session-test",
|
|
40
|
+
eventId: "stagehand-1234",
|
|
41
|
+
eventCreatedAt: "2026-03-16T21:45:00.000Z",
|
|
42
|
+
data: { params: ["grab title"] },
|
|
43
|
+
}));
|
|
44
|
+
const events = await store.query({});
|
|
45
|
+
(0, vitest_1.expect)(events).toHaveLength(1);
|
|
46
|
+
(0, vitest_1.expect)(events[0].eventType).toBe("StagehandExtractEvent");
|
|
47
|
+
await store.destroy();
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.it)("drops payloads from the default in-memory sink", async () => {
|
|
50
|
+
const store = new EventStore_js_1.EventStore("session-test");
|
|
51
|
+
await store.emit(new FlowLogger_js_1.FlowEvent({
|
|
52
|
+
eventType: "LlmRequestEvent",
|
|
53
|
+
sessionId: "session-test",
|
|
54
|
+
eventId: "llm-1234",
|
|
55
|
+
eventCreatedAt: "2026-03-16T21:45:00.000Z",
|
|
56
|
+
data: {
|
|
57
|
+
prompt: [{ type: "image_url", image_url: { url: "huge" } }],
|
|
58
|
+
output: "huge",
|
|
59
|
+
},
|
|
60
|
+
}));
|
|
61
|
+
const [event] = await store.query({});
|
|
62
|
+
(0, vitest_1.expect)(event.eventType).toBe("LlmRequestEvent");
|
|
63
|
+
(0, vitest_1.expect)(event.eventId).toBe("llm-1234");
|
|
64
|
+
(0, vitest_1.expect)(event.data).toEqual({});
|
|
65
|
+
await store.destroy();
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)("renders semantic hierarchy tags for non-cdp stderr events only", async () => {
|
|
68
|
+
// Intercept stderr so the pretty sink can be asserted without polluting the
|
|
69
|
+
// real test runner output.
|
|
70
|
+
const { writes, store, bus, detachBus } = createVerboseStoreHarness();
|
|
71
|
+
const stepEvent = new FlowLogger_js_1.FlowEvent({
|
|
72
|
+
eventType: "StagehandExtractEvent",
|
|
73
|
+
sessionId: "session-test",
|
|
74
|
+
eventId: "stagehand-1234",
|
|
75
|
+
eventCreatedAt: "2026-03-16T21:45:00.000Z",
|
|
76
|
+
data: { params: ["grab title"] },
|
|
77
|
+
});
|
|
78
|
+
const cdpEvent = new FlowLogger_js_1.FlowEvent({
|
|
79
|
+
eventType: "CdpCallEvent",
|
|
80
|
+
sessionId: "session-test",
|
|
81
|
+
eventId: "cdp-call-5678",
|
|
82
|
+
eventCreatedAt: "2026-03-16T21:45:00.100Z",
|
|
83
|
+
eventParentIds: [stepEvent.eventId],
|
|
84
|
+
data: {
|
|
85
|
+
method: "Runtime.evaluate",
|
|
86
|
+
params: { expression: "2 + 2" },
|
|
87
|
+
targetId: "1234567890ABCDEF1234567890ABCDEF",
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
// The stderr sink intentionally suppresses CDP noise even though the event
|
|
91
|
+
// still exists for in-memory and file-backed sinks.
|
|
92
|
+
bus.emit(stepEvent.eventType, stepEvent);
|
|
93
|
+
bus.emit(cdpEvent.eventType, cdpEvent);
|
|
94
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
95
|
+
(0, vitest_1.expect)(writes).toHaveLength(1);
|
|
96
|
+
(0, vitest_1.expect)(writes[0]).toContain("[🆂 #1234 EXTRACT]");
|
|
97
|
+
(0, vitest_1.expect)(writes[0]).toContain("Stagehand.extract");
|
|
98
|
+
(0, vitest_1.expect)(writes[0]).not.toContain("Runtime.evaluate");
|
|
99
|
+
detachBus();
|
|
100
|
+
await store.destroy();
|
|
101
|
+
});
|
|
102
|
+
(0, vitest_1.it)("renders generic stagehand events without crashing the stderr sink", async () => {
|
|
103
|
+
const { writes, store, bus, detachBus } = createVerboseStoreHarness();
|
|
104
|
+
// `StagehandEvent` has no action suffix, so this guards the formatter path
|
|
105
|
+
// that cannot assume a method name exists.
|
|
106
|
+
bus.emit("StagehandEvent", new FlowLogger_js_1.FlowEvent({
|
|
107
|
+
eventType: "StagehandEvent",
|
|
108
|
+
sessionId: "session-test",
|
|
109
|
+
eventId: "stagehand-0001",
|
|
110
|
+
eventCreatedAt: "2026-03-16T21:45:00.000Z",
|
|
111
|
+
data: { params: ["noop"] },
|
|
112
|
+
}));
|
|
113
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
114
|
+
(0, vitest_1.expect)(writes).toHaveLength(1);
|
|
115
|
+
(0, vitest_1.expect)(writes[0]).toContain("[🆂 #0001");
|
|
116
|
+
(0, vitest_1.expect)(writes[0]).toContain("Stagehand(");
|
|
117
|
+
detachBus();
|
|
118
|
+
await store.destroy();
|
|
119
|
+
});
|
|
120
|
+
(0, vitest_1.it)("colorizes pretty stderr output with ansi escapes when enabled", async () => {
|
|
121
|
+
const previousForceColor = process.env.FORCE_COLOR;
|
|
122
|
+
const previousNoColor = process.env.NO_COLOR;
|
|
123
|
+
delete process.env.NO_COLOR;
|
|
124
|
+
process.env.FORCE_COLOR = "1";
|
|
125
|
+
const { writes, store, bus, detachBus } = createVerboseStoreHarness();
|
|
126
|
+
try {
|
|
127
|
+
bus.emit("StagehandActEvent", new FlowLogger_js_1.FlowEvent({
|
|
128
|
+
eventType: "StagehandActEvent",
|
|
129
|
+
sessionId: "session-test",
|
|
130
|
+
eventId: "stagehand-0002",
|
|
131
|
+
eventCreatedAt: "2026-03-16T21:45:00.000Z",
|
|
132
|
+
data: { params: ["click submit"] },
|
|
133
|
+
}));
|
|
134
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
135
|
+
(0, vitest_1.expect)(writes).toHaveLength(1);
|
|
136
|
+
(0, vitest_1.expect)(writes[0]).toContain("\u001B[");
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
if (previousNoColor === undefined) {
|
|
140
|
+
delete process.env.NO_COLOR;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
process.env.NO_COLOR = previousNoColor;
|
|
144
|
+
}
|
|
145
|
+
if (previousForceColor === undefined) {
|
|
146
|
+
delete process.env.FORCE_COLOR;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
process.env.FORCE_COLOR = previousForceColor;
|
|
150
|
+
}
|
|
151
|
+
detachBus();
|
|
152
|
+
await store.destroy();
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
(0, vitest_1.it)("keeps agent ancestry and start ids for completion events after many child events", async () => {
|
|
156
|
+
const { writes, store, bus, detachBus } = createVerboseStoreHarness();
|
|
157
|
+
const agentEvent = new FlowLogger_js_1.FlowEvent({
|
|
158
|
+
eventType: "AgentExecuteEvent",
|
|
159
|
+
sessionId: "session-test",
|
|
160
|
+
eventId: "agent-1234",
|
|
161
|
+
eventCreatedAt: "2026-03-16T21:45:00.000Z",
|
|
162
|
+
data: { params: [{ instruction: "click the button" }] },
|
|
163
|
+
});
|
|
164
|
+
const actEvent = new FlowLogger_js_1.FlowEvent({
|
|
165
|
+
eventType: "StagehandActEvent",
|
|
166
|
+
sessionId: "session-test",
|
|
167
|
+
eventId: "stagehand-2222",
|
|
168
|
+
eventCreatedAt: "2026-03-16T21:45:00.001Z",
|
|
169
|
+
eventParentIds: [agentEvent.eventId],
|
|
170
|
+
data: { params: ["click the button"] },
|
|
171
|
+
});
|
|
172
|
+
const clickEvent = new FlowLogger_js_1.FlowEvent({
|
|
173
|
+
eventType: "UnderstudyClickEvent",
|
|
174
|
+
sessionId: "session-test",
|
|
175
|
+
eventId: "action-3333",
|
|
176
|
+
eventCreatedAt: "2026-03-16T21:45:00.002Z",
|
|
177
|
+
eventParentIds: [agentEvent.eventId, actEvent.eventId],
|
|
178
|
+
data: { target: "xpath=/button[1]" },
|
|
179
|
+
});
|
|
180
|
+
bus.emit(agentEvent.eventType, agentEvent);
|
|
181
|
+
bus.emit(actEvent.eventType, actEvent);
|
|
182
|
+
bus.emit(clickEvent.eventType, clickEvent);
|
|
183
|
+
// Flood the retained history with child events so the completion lines have
|
|
184
|
+
// to recover their displayed ancestry from the queryable sink.
|
|
185
|
+
for (let index = 0; index < 150; index += 1) {
|
|
186
|
+
bus.emit("CdpCallEvent", new FlowLogger_js_1.FlowEvent({
|
|
187
|
+
eventType: "CdpCallEvent",
|
|
188
|
+
sessionId: "session-test",
|
|
189
|
+
eventId: `cdp-${String(index).padStart(4, "0")}`,
|
|
190
|
+
eventCreatedAt: `2026-03-16T21:45:00.${String(index + 10).padStart(3, "0")}Z`,
|
|
191
|
+
eventParentIds: [
|
|
192
|
+
agentEvent.eventId,
|
|
193
|
+
actEvent.eventId,
|
|
194
|
+
clickEvent.eventId,
|
|
195
|
+
],
|
|
196
|
+
data: {
|
|
197
|
+
method: "Runtime.evaluate",
|
|
198
|
+
params: { expression: `${index}` },
|
|
199
|
+
targetId: "1234567890ABCDEF1234567890ABCDEF",
|
|
200
|
+
},
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
203
|
+
bus.emit("UnderstudyClickCompletedEvent", new FlowLogger_js_1.FlowEvent({
|
|
204
|
+
eventType: "UnderstudyClickCompletedEvent",
|
|
205
|
+
sessionId: "session-test",
|
|
206
|
+
eventId: "done-4444",
|
|
207
|
+
eventCreatedAt: "2026-03-16T21:45:01.000Z",
|
|
208
|
+
eventParentIds: [
|
|
209
|
+
agentEvent.eventId,
|
|
210
|
+
actEvent.eventId,
|
|
211
|
+
clickEvent.eventId,
|
|
212
|
+
],
|
|
213
|
+
data: { durationMs: 250 },
|
|
214
|
+
}));
|
|
215
|
+
bus.emit("StagehandActCompletedEvent", new FlowLogger_js_1.FlowEvent({
|
|
216
|
+
eventType: "StagehandActCompletedEvent",
|
|
217
|
+
sessionId: "session-test",
|
|
218
|
+
eventId: "done-5555",
|
|
219
|
+
eventCreatedAt: "2026-03-16T21:45:01.001Z",
|
|
220
|
+
eventParentIds: [agentEvent.eventId, actEvent.eventId],
|
|
221
|
+
data: { durationMs: 500 },
|
|
222
|
+
}));
|
|
223
|
+
bus.emit("AgentExecuteCompletedEvent", new FlowLogger_js_1.FlowEvent({
|
|
224
|
+
eventType: "AgentExecuteCompletedEvent",
|
|
225
|
+
sessionId: "session-test",
|
|
226
|
+
eventId: "done-6666",
|
|
227
|
+
eventCreatedAt: "2026-03-16T21:45:01.002Z",
|
|
228
|
+
eventParentIds: [agentEvent.eventId],
|
|
229
|
+
data: { durationMs: 750 },
|
|
230
|
+
}));
|
|
231
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
232
|
+
// Completion lines should reference the original started-event ids, not the
|
|
233
|
+
// synthetic completed-event ids emitted at the end of the lifecycle.
|
|
234
|
+
const clickCompletedLine = writes.find((line) => line.includes("CLICK completed"));
|
|
235
|
+
const actCompletedLine = writes.find((line) => line.includes("ACT completed"));
|
|
236
|
+
const agentCompletedLine = writes.find((line) => line.includes("Agent.execute() completed"));
|
|
237
|
+
(0, vitest_1.expect)(clickCompletedLine).toContain("[🅰 #1234]");
|
|
238
|
+
(0, vitest_1.expect)(clickCompletedLine).toContain("[🆂 #2222 ACT]");
|
|
239
|
+
(0, vitest_1.expect)(clickCompletedLine).toContain("[🆄 #3333 CLICK]");
|
|
240
|
+
(0, vitest_1.expect)(clickCompletedLine).not.toContain("#4444");
|
|
241
|
+
(0, vitest_1.expect)(actCompletedLine).toContain("[🅰 #1234]");
|
|
242
|
+
(0, vitest_1.expect)(actCompletedLine).toContain("[🆂 #2222 ACT]");
|
|
243
|
+
(0, vitest_1.expect)(actCompletedLine).not.toContain("#5555");
|
|
244
|
+
(0, vitest_1.expect)(agentCompletedLine).toContain("[🅰 #1234]");
|
|
245
|
+
(0, vitest_1.expect)(agentCompletedLine).not.toContain("#6666");
|
|
246
|
+
detachBus();
|
|
247
|
+
await store.destroy();
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
//# sourceMappingURL=flowlogger-eventstore.test.js.map
|