gitextract_8uatdfoc/ ├── .changeset/ │ ├── config.json │ └── crazy-nights-prove.md ├── .cursorrules ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── actions/ │ │ ├── select-browserbase-region/ │ │ │ └── action.yml │ │ ├── setup-node-pnpm-turbo/ │ │ │ └── action.yml │ │ ├── upload-ctrf-report/ │ │ │ └── action.yml │ │ ├── upload-v8-coverage/ │ │ │ └── action.yml │ │ └── verify-chromium-launch/ │ │ └── action.yml │ ├── pull_request_template │ └── workflows/ │ ├── ci.yml │ ├── claude.yml │ ├── external-contributor-pr-approval-handoff.yml │ ├── external-contributor-pr.yml │ ├── feature-parity.yml │ ├── release.yml │ ├── stagehand-server-v3-release.yml │ ├── stagehand-server-v3-sea-build.yml │ ├── stagehand-server-v4-release.yml │ ├── stagehand-server-v4-sea-build.yml │ └── stainless.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode/ │ └── settings.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── claude.md ├── eslint.config.mjs ├── package.json ├── packages/ │ ├── README.md │ ├── cli/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── tests/ │ │ │ ├── cli.test.ts │ │ │ └── mode.test.ts │ │ ├── tsconfig.json │ │ ├── tsup.config.ts │ │ └── vitest.config.ts │ ├── core/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── examples/ │ │ │ ├── 2048.ts │ │ │ ├── CHANGELOG.md │ │ │ ├── actionable_observe_example.ts │ │ │ ├── agent-custom-tools.ts │ │ │ ├── agent_stream_example.ts │ │ │ ├── cua-example.ts │ │ │ ├── custom_client_aisdk.ts │ │ │ ├── custom_client_langchain.ts │ │ │ ├── custom_client_openai.ts │ │ │ ├── example.ts │ │ │ ├── external_clients/ │ │ │ │ ├── aisdk.ts │ │ │ │ ├── customOpenAI.ts │ │ │ │ └── langchain.ts │ │ │ ├── form_filling_sensible.ts │ │ │ ├── google_enter.ts │ │ │ ├── instructions.ts │ │ │ ├── integrations/ │ │ │ │ ├── exa.ts │ │ │ │ └── supabase.ts │ │ │ ├── mcp.ts │ │ │ ├── operator-example.ts │ │ │ ├── oss-cua-example.ts │ │ │ ├── parameterizeApiKey.ts │ │ │ ├── persist_logs_example.ts │ │ │ ├── tsconfig.json │ │ │ ├── v3/ │ │ │ │ ├── cuaReplay.ts │ │ │ │ ├── deepLocator.ts │ │ │ │ ├── dropdown.ts │ │ │ │ ├── highlight.ts │ │ │ │ ├── patchright.ts │ │ │ │ ├── playwright.ts │ │ │ │ ├── puppeteer.ts │ │ │ │ ├── recordVideo.ts │ │ │ │ ├── returnXpath.ts │ │ │ │ ├── shadowRoot.ts │ │ │ │ ├── targetedExtract.ts │ │ │ │ └── v3_agent.ts │ │ │ ├── v3_example.ts │ │ │ └── wordle.ts │ │ ├── lib/ │ │ │ ├── CHANGELOG.md │ │ │ ├── inference.ts │ │ │ ├── inferenceLogUtils.ts │ │ │ ├── logger.ts │ │ │ ├── modelUtils.ts │ │ │ ├── prompt.ts │ │ │ ├── utils.ts │ │ │ ├── v3/ │ │ │ │ ├── agent/ │ │ │ │ │ ├── AgentClient.ts │ │ │ │ │ ├── AgentProvider.ts │ │ │ │ │ ├── AnthropicCUAClient.ts │ │ │ │ │ ├── GoogleCUAClient.ts │ │ │ │ │ ├── MicrosoftCUAClient.ts │ │ │ │ │ ├── OpenAICUAClient.ts │ │ │ │ │ ├── prompts/ │ │ │ │ │ │ └── agentSystemPrompt.ts │ │ │ │ │ ├── tools/ │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── act.ts │ │ │ │ │ │ ├── ariaTree.ts │ │ │ │ │ │ ├── braveSearch.ts │ │ │ │ │ │ ├── browserbaseSearch.ts │ │ │ │ │ │ ├── click.ts │ │ │ │ │ │ ├── clickAndHold.ts │ │ │ │ │ │ ├── dragAndDrop.ts │ │ │ │ │ │ ├── extract.ts │ │ │ │ │ │ ├── fillFormVision.ts │ │ │ │ │ │ ├── fillform.ts │ │ │ │ │ │ ├── goto.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── keys.ts │ │ │ │ │ │ ├── navback.ts │ │ │ │ │ │ ├── screenshot.ts │ │ │ │ │ │ ├── scroll.ts │ │ │ │ │ │ ├── think.ts │ │ │ │ │ │ ├── type.ts │ │ │ │ │ │ └── wait.ts │ │ │ │ │ └── utils/ │ │ │ │ │ ├── actionMapping.ts │ │ │ │ │ ├── captchaSolver.ts │ │ │ │ │ ├── coordinateNormalization.ts │ │ │ │ │ ├── cuaKeyMapping.ts │ │ │ │ │ ├── googleCustomToolHandler.ts │ │ │ │ │ ├── handleDoneToolCall.ts │ │ │ │ │ ├── imageCompression.ts │ │ │ │ │ ├── messageProcessing.ts │ │ │ │ │ ├── screenshotHandler.ts │ │ │ │ │ ├── validateExperimentalFeatures.ts │ │ │ │ │ ├── variables.ts │ │ │ │ │ └── xpath.ts │ │ │ │ ├── api.ts │ │ │ │ ├── cache/ │ │ │ │ │ ├── ActCache.ts │ │ │ │ │ ├── AgentCache.ts │ │ │ │ │ ├── CacheStorage.ts │ │ │ │ │ ├── serverAgentCache.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── cli.js │ │ │ │ ├── dom/ │ │ │ │ │ ├── a11yScripts/ │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── genA11yScripts.ts │ │ │ │ │ ├── genDomScripts.ts │ │ │ │ │ ├── genLocatorScripts.ts │ │ │ │ │ ├── genScreenshotScripts.ts │ │ │ │ │ ├── global.d.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── locatorScripts/ │ │ │ │ │ │ ├── counts.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── scripts.ts │ │ │ │ │ │ ├── selectors.ts │ │ │ │ │ │ ├── waitForSelector.ts │ │ │ │ │ │ ├── xpathParser.ts │ │ │ │ │ │ └── xpathResolver.ts │ │ │ │ │ ├── piercer.entry.ts │ │ │ │ │ ├── piercer.runtime.ts │ │ │ │ │ ├── rerenderMissingShadows.entry.ts │ │ │ │ │ ├── rerenderMissingShadows.runtime.ts │ │ │ │ │ └── screenshotScripts/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── resolveMaskRect.ts │ │ │ │ ├── external_clients/ │ │ │ │ │ ├── aisdk.ts │ │ │ │ │ └── customOpenAI.ts │ │ │ │ ├── flowlogger/ │ │ │ │ │ ├── EventEmitter.ts │ │ │ │ │ ├── EventSink.ts │ │ │ │ │ ├── EventStore.ts │ │ │ │ │ ├── FlowLogger.ts │ │ │ │ │ └── prettify.ts │ │ │ │ ├── handlers/ │ │ │ │ │ ├── actHandler.ts │ │ │ │ │ ├── extractHandler.ts │ │ │ │ │ ├── handlerUtils/ │ │ │ │ │ │ ├── actHandlerUtils.ts │ │ │ │ │ │ └── timeoutGuard.ts │ │ │ │ │ ├── observeHandler.ts │ │ │ │ │ ├── v3AgentHandler.ts │ │ │ │ │ └── v3CuaAgentHandler.ts │ │ │ │ ├── index.ts │ │ │ │ ├── launch/ │ │ │ │ │ ├── browserbase.ts │ │ │ │ │ └── local.ts │ │ │ │ ├── llm/ │ │ │ │ │ ├── AnthropicClient.ts │ │ │ │ │ ├── CerebrasClient.ts │ │ │ │ │ ├── GoogleClient.ts │ │ │ │ │ ├── GroqClient.ts │ │ │ │ │ ├── LLMClient.ts │ │ │ │ │ ├── LLMProvider.ts │ │ │ │ │ ├── OpenAIClient.ts │ │ │ │ │ └── aisdk.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── mcp/ │ │ │ │ │ ├── connection.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── runtimePaths.ts │ │ │ │ ├── shutdown/ │ │ │ │ │ ├── cleanupLocal.ts │ │ │ │ │ ├── supervisor.ts │ │ │ │ │ └── supervisorClient.ts │ │ │ │ ├── timeoutConfig.ts │ │ │ │ ├── types/ │ │ │ │ │ ├── private/ │ │ │ │ │ │ ├── agent.ts │ │ │ │ │ │ ├── api.ts │ │ │ │ │ │ ├── cache.ts │ │ │ │ │ │ ├── evaluator.ts │ │ │ │ │ │ ├── handlers.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── internal.ts │ │ │ │ │ │ ├── locator.ts │ │ │ │ │ │ ├── network.ts │ │ │ │ │ │ ├── shutdown.ts │ │ │ │ │ │ ├── shutdownErrors.ts │ │ │ │ │ │ └── snapshot.ts │ │ │ │ │ └── public/ │ │ │ │ │ ├── agent.ts │ │ │ │ │ ├── api.ts │ │ │ │ │ ├── apiErrors.ts │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── locator.ts │ │ │ │ │ ├── logs.ts │ │ │ │ │ ├── methods.ts │ │ │ │ │ ├── metrics.ts │ │ │ │ │ ├── model.ts │ │ │ │ │ ├── options.ts │ │ │ │ │ ├── page.ts │ │ │ │ │ ├── screenshotTypes.ts │ │ │ │ │ └── sdkErrors.ts │ │ │ │ ├── understudy/ │ │ │ │ │ ├── a11y/ │ │ │ │ │ │ └── snapshot/ │ │ │ │ │ │ ├── a11yTree.ts │ │ │ │ │ │ ├── activeElement.ts │ │ │ │ │ │ ├── capture.ts │ │ │ │ │ │ ├── coordinateResolver.ts │ │ │ │ │ │ ├── domTree.ts │ │ │ │ │ │ ├── focusSelectors.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── sessions.ts │ │ │ │ │ │ ├── treeFormatUtils.ts │ │ │ │ │ │ └── xpathUtils.ts │ │ │ │ │ ├── a11yInvocation.ts │ │ │ │ │ ├── cdp.ts │ │ │ │ │ ├── consoleMessage.ts │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── cookies.ts │ │ │ │ │ ├── deepLocator.ts │ │ │ │ │ ├── executionContextRegistry.ts │ │ │ │ │ ├── fileUploadUtils.ts │ │ │ │ │ ├── frame.ts │ │ │ │ │ ├── frameLocator.ts │ │ │ │ │ ├── frameRegistry.ts │ │ │ │ │ ├── initScripts.ts │ │ │ │ │ ├── lifecycleWatcher.ts │ │ │ │ │ ├── locator.ts │ │ │ │ │ ├── locatorInvocation.ts │ │ │ │ │ ├── navigationResponseTracker.ts │ │ │ │ │ ├── networkManager.ts │ │ │ │ │ ├── page.ts │ │ │ │ │ ├── piercer.ts │ │ │ │ │ ├── response.ts │ │ │ │ │ ├── screenshotUtils.ts │ │ │ │ │ └── selectorResolver.ts │ │ │ │ ├── v3.ts │ │ │ │ └── zodCompat.ts │ │ │ └── v3Evaluator.ts │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── build-cjs.ts │ │ │ ├── build-esm.ts │ │ │ ├── coverage.ts │ │ │ ├── gen-version.ts │ │ │ ├── normalize-v8-coverage.ts │ │ │ ├── prepare.js │ │ │ ├── test-core.ts │ │ │ ├── test-e2e.ts │ │ │ └── test-utils.ts │ │ ├── tests/ │ │ │ ├── cache-variables.test.ts │ │ │ ├── integration/ │ │ │ │ ├── agent-abort-signal.spec.ts │ │ │ │ ├── agent-cache-self-heal.spec.ts │ │ │ │ ├── agent-callbacks.spec.ts │ │ │ │ ├── agent-captcha-autosolve.spec.ts │ │ │ │ ├── agent-experimental-validation.spec.ts │ │ │ │ ├── agent-hybrid-mode.spec.ts │ │ │ │ ├── agent-message-continuation.spec.ts │ │ │ │ ├── agent-streaming.spec.ts │ │ │ │ ├── cdp-close-api-region.spec.ts │ │ │ │ ├── cdp-connection-close.spec.ts │ │ │ │ ├── cdp-session-detached.spec.ts │ │ │ │ ├── click-count.spec.ts │ │ │ │ ├── connect-to-existing-browser.spec.ts │ │ │ │ ├── context-addInitScript.spec.ts │ │ │ │ ├── context-extra-http-headers.spec.ts │ │ │ │ ├── cookies.spec.ts │ │ │ │ ├── default-page-tracking.spec.ts │ │ │ │ ├── downloads.spec.ts │ │ │ │ ├── flowLogger.spec.ts │ │ │ │ ├── frame-get-location-and-click.spec.ts │ │ │ │ ├── iframe-ctx-addInitScript-race.spec.ts │ │ │ │ ├── iframe-ctx-addInitScript.spec.ts │ │ │ │ ├── keep-alive.child.ts │ │ │ │ ├── keep-alive.spec.ts │ │ │ │ ├── keyboard.spec.ts │ │ │ │ ├── locator-backend-node-id.spec.ts │ │ │ │ ├── locator-content-methods.spec.ts │ │ │ │ ├── locator-count-iframe.spec.ts │ │ │ │ ├── locator-count.spec.ts │ │ │ │ ├── locator-fill.spec.ts │ │ │ │ ├── locator-input-methods.spec.ts │ │ │ │ ├── locator-nth.spec.ts │ │ │ │ ├── locator-select-option.spec.ts │ │ │ │ ├── logger-initialization.spec.ts │ │ │ │ ├── multi-instance-logger.spec.ts │ │ │ │ ├── nested-div.spec.ts │ │ │ │ ├── page-addInitScript.spec.ts │ │ │ │ ├── page-console.spec.ts │ │ │ │ ├── page-drag-and-drop.spec.ts │ │ │ │ ├── page-extra-http-headers.spec.ts │ │ │ │ ├── page-goto-response.spec.ts │ │ │ │ ├── page-hover.spec.ts │ │ │ │ ├── page-screenshot.spec.ts │ │ │ │ ├── page-scroll.spec.ts │ │ │ │ ├── page-send-cdp.spec.ts │ │ │ │ ├── perform-understudy-method.spec.ts │ │ │ │ ├── setinputfiles.spec.ts │ │ │ │ ├── shadow-iframe-oopif.spec.ts │ │ │ │ ├── shadow-iframe-spif.spec.ts │ │ │ │ ├── testUtils.ts │ │ │ │ ├── text-selector-innermost.spec.ts │ │ │ │ ├── timeouts.spec.ts │ │ │ │ ├── user-data-dir.spec.ts │ │ │ │ ├── v3.config.ts │ │ │ │ ├── v3.dynamic.config.ts │ │ │ │ ├── v3.playwright.config.ts │ │ │ │ ├── wait-for-selector.spec.ts │ │ │ │ ├── wait-for-timeout.spec.ts │ │ │ │ └── xpath-for-location-deep.spec.ts │ │ │ └── unit/ │ │ │ ├── agent-captcha-hooks.test.ts │ │ │ ├── agent-execution-model.test.ts │ │ │ ├── api-multiregion.test.ts │ │ │ ├── browserbase-session-accessors.test.ts │ │ │ ├── cache-llm-resolution.test.ts │ │ │ ├── captcha-solver.test.ts │ │ │ ├── cdp-connection-close.test.ts │ │ │ ├── context-extra-http-headers.test.ts │ │ │ ├── cookies.test.ts │ │ │ ├── flowlogger-capturing-cdp.test.ts │ │ │ ├── flowlogger-capturing-llm.test.ts │ │ │ ├── flowlogger-eventstore.test.ts │ │ │ ├── helpers/ │ │ │ │ └── mockCDPSession.ts │ │ │ ├── llm-provider.test.ts │ │ │ ├── model-deprecation.test.ts │ │ │ ├── model-utils.test.ts │ │ │ ├── openai-cua-client.test.ts │ │ │ ├── page-extra-http-headers.test.ts │ │ │ ├── page-snapshot.test.ts │ │ │ ├── public-api/ │ │ │ │ ├── export-surface.test.ts │ │ │ │ ├── llm-and-agents.test.ts │ │ │ │ ├── public-error-types.test.ts │ │ │ │ ├── public-types.test.ts │ │ │ │ ├── runtime-utils.test.ts │ │ │ │ ├── schema-utils.test.ts │ │ │ │ ├── timeout-error-types.test.ts │ │ │ │ ├── tool-type-export.test.ts │ │ │ │ └── v3-core.test.ts │ │ │ ├── safety-confirmation.test.ts │ │ │ ├── snapshot-a11y-resolvers.test.ts │ │ │ ├── snapshot-a11y-tree-utils.test.ts │ │ │ ├── snapshot-capture-orchestration.test.ts │ │ │ ├── snapshot-cbor.test.ts │ │ │ ├── snapshot-dom-session-builders.test.ts │ │ │ ├── snapshot-dom-tree-utils.test.ts │ │ │ ├── snapshot-focus-selectors-utils.test.ts │ │ │ ├── snapshot-frame-merge.test.ts │ │ │ ├── snapshot-tree-format-utils.test.ts │ │ │ ├── snapshot-xpath-utils.test.ts │ │ │ ├── timeout-handlers.test.ts │ │ │ ├── understudy-command-exception.test.ts │ │ │ ├── xpath-parser.test.ts │ │ │ ├── xpath-resolver.test.ts │ │ │ └── zod-enum-compatibility.test.ts │ │ ├── tsconfig.json │ │ ├── vitest.cjs.config.mjs │ │ ├── vitest.config.ts │ │ └── vitest.esm.config.mjs │ ├── docs/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── docs.json │ │ ├── language-selector.js │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── runtimePaths.js │ │ │ └── sync-sdk-docs.js │ │ ├── snippets/ │ │ │ ├── excalidraw.mdx │ │ │ └── v3-banner.mdx │ │ ├── v2/ │ │ │ ├── basics/ │ │ │ │ ├── act.mdx │ │ │ │ ├── agent.mdx │ │ │ │ ├── extract.mdx │ │ │ │ └── observe.mdx │ │ │ ├── best-practices/ │ │ │ │ ├── agent-fallbacks.mdx │ │ │ │ ├── build-agent.mdx │ │ │ │ ├── caching.mdx │ │ │ │ ├── computer-use.mdx │ │ │ │ ├── contributing.mdx │ │ │ │ ├── cost-optimization.mdx │ │ │ │ ├── deployments.mdx │ │ │ │ ├── mcp-integrations.mdx │ │ │ │ ├── playwright-interop.mdx │ │ │ │ ├── prompting-best-practices.mdx │ │ │ │ ├── speed-optimization.mdx │ │ │ │ ├── usecase-observe.mdx │ │ │ │ ├── user-data.mdx │ │ │ │ ├── using-multiple-tabs.mdx │ │ │ │ └── working-with-iframes.mdx │ │ │ ├── configuration/ │ │ │ │ ├── browser.mdx │ │ │ │ ├── evals.mdx │ │ │ │ ├── logging.mdx │ │ │ │ ├── models.mdx │ │ │ │ └── observability.mdx │ │ │ ├── first-steps/ │ │ │ │ ├── ai-rules.mdx │ │ │ │ ├── installation.mdx │ │ │ │ ├── introduction.mdx │ │ │ │ └── quickstart.mdx │ │ │ ├── integrations/ │ │ │ │ ├── crew-ai/ │ │ │ │ │ ├── configuration.mdx │ │ │ │ │ └── introduction.mdx │ │ │ │ ├── langchain/ │ │ │ │ │ ├── configuration.mdx │ │ │ │ │ └── introduction.mdx │ │ │ │ ├── mcp/ │ │ │ │ │ ├── configuration.mdx │ │ │ │ │ ├── introduction.mdx │ │ │ │ │ ├── setup.mdx │ │ │ │ │ └── tools.mdx │ │ │ │ └── vercel/ │ │ │ │ ├── configuration.mdx │ │ │ │ └── introduction.mdx │ │ │ └── references/ │ │ │ ├── act.mdx │ │ │ ├── agent.mdx │ │ │ ├── extract.mdx │ │ │ ├── observe.mdx │ │ │ └── stagehand.mdx │ │ └── v3/ │ │ ├── basics/ │ │ │ ├── act.mdx │ │ │ ├── agent.mdx │ │ │ ├── evals.mdx │ │ │ ├── extract.mdx │ │ │ └── observe.mdx │ │ ├── best-practices/ │ │ │ ├── agent-fallbacks.mdx │ │ │ ├── caching.mdx │ │ │ ├── computer-use.mdx │ │ │ ├── cost-optimization.mdx │ │ │ ├── deployments.mdx │ │ │ ├── deterministic-agent.mdx │ │ │ ├── history.mdx │ │ │ ├── mcp-integrations.mdx │ │ │ ├── prompting-best-practices.mdx │ │ │ ├── speed-optimization.mdx │ │ │ ├── usecase-observe.mdx │ │ │ ├── user-data.mdx │ │ │ └── using-multiple-tabs.mdx │ │ ├── configuration/ │ │ │ ├── browser.mdx │ │ │ ├── logging.mdx │ │ │ ├── models.mdx │ │ │ └── observability.mdx │ │ ├── first-steps/ │ │ │ ├── ai-rules.mdx │ │ │ ├── installation.mdx │ │ │ ├── introduction.mdx │ │ │ └── quickstart.mdx │ │ ├── integrations/ │ │ │ ├── convex/ │ │ │ │ ├── configuration.mdx │ │ │ │ └── introduction.mdx │ │ │ ├── crew-ai/ │ │ │ │ ├── configuration.mdx │ │ │ │ └── introduction.mdx │ │ │ ├── langchain/ │ │ │ │ ├── configuration.mdx │ │ │ │ └── introduction.mdx │ │ │ ├── mcp/ │ │ │ │ ├── configuration.mdx │ │ │ │ ├── introduction.mdx │ │ │ │ ├── setup.mdx │ │ │ │ └── tools.mdx │ │ │ ├── playwright.mdx │ │ │ ├── puppeteer.mdx │ │ │ ├── selenium.mdx │ │ │ └── vercel/ │ │ │ ├── configuration.mdx │ │ │ └── introduction.mdx │ │ ├── migrations/ │ │ │ ├── python.mdx │ │ │ └── v2.mdx │ │ ├── references/ │ │ │ ├── act.mdx │ │ │ ├── agent.mdx │ │ │ ├── context.mdx │ │ │ ├── deeplocator.mdx │ │ │ ├── extract.mdx │ │ │ ├── locator.mdx │ │ │ ├── observe.mdx │ │ │ ├── page.mdx │ │ │ ├── response.mdx │ │ │ └── stagehand.mdx │ │ └── sdk/ │ │ ├── go.mdx │ │ ├── java.mdx │ │ ├── python.mdx │ │ └── ruby.mdx │ ├── evals/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── args.ts │ │ ├── assets/ │ │ │ ├── cart.html │ │ │ └── peeler.html │ │ ├── browserbaseCleanup.ts │ │ ├── cli.ts │ │ ├── datasets/ │ │ │ ├── gaia/ │ │ │ │ └── GAIA_web.jsonl │ │ │ ├── onlineMind2Web/ │ │ │ │ └── onlineMind2Web.jsonl │ │ │ ├── webtailbench/ │ │ │ │ └── WebTailBench_data.jsonl │ │ │ └── webvoyager/ │ │ │ └── WebVoyager_data.jsonl │ │ ├── env.ts │ │ ├── evals.config.json │ │ ├── index.eval.ts │ │ ├── initV3.ts │ │ ├── lib/ │ │ │ └── AISdkClientWrapped.ts │ │ ├── llm_clients/ │ │ │ ├── hn_aisdk.ts │ │ │ ├── hn_customOpenAI.ts │ │ │ └── hn_langchain.ts │ │ ├── logger.ts │ │ ├── package.json │ │ ├── run.ts │ │ ├── runtimePaths.ts │ │ ├── scoring.ts │ │ ├── scripts/ │ │ │ ├── build-cli.ts │ │ │ ├── build-esm.ts │ │ │ └── test-evals.ts │ │ ├── suites/ │ │ │ ├── gaia.ts │ │ │ ├── onlineMind2Web.ts │ │ │ ├── webtailbench.ts │ │ │ └── webvoyager.ts │ │ ├── summary.ts │ │ ├── taskConfig.ts │ │ ├── tasks/ │ │ │ ├── agent/ │ │ │ │ ├── alibaba_supplier_search.ts │ │ │ │ ├── all_recipes.ts │ │ │ │ ├── amazon_shoes_cart.ts │ │ │ │ ├── apple_trade_in.ts │ │ │ │ ├── apple_tv.ts │ │ │ │ ├── arxiv_gpt_report.ts │ │ │ │ ├── columbia_tuition.ts │ │ │ │ ├── flipkart_laptops.ts │ │ │ │ ├── gaia.ts │ │ │ │ ├── github.ts │ │ │ │ ├── github_react_version.ts │ │ │ │ ├── google_flights.ts │ │ │ │ ├── google_maps.ts │ │ │ │ ├── google_maps_2.ts │ │ │ │ ├── google_maps_3.ts │ │ │ │ ├── google_shopping.ts │ │ │ │ ├── hotel_booking.ts │ │ │ │ ├── hotels_paris_amenities.ts │ │ │ │ ├── hugging_face.ts │ │ │ │ ├── iframe_form.ts │ │ │ │ ├── iframe_form_multiple.ts │ │ │ │ ├── instacart_organic_bananas.ts │ │ │ │ ├── kayak.ts │ │ │ │ ├── kfc_tenders_combo.ts │ │ │ │ ├── kith.ts │ │ │ │ ├── made_in_china_supplier.ts │ │ │ │ ├── nba_trades.ts │ │ │ │ ├── nvidia_hgx_driver.ts │ │ │ │ ├── oed_word_search.ts │ │ │ │ ├── onlineMind2Web.ts │ │ │ │ ├── radiotimes_tv_schedule.ts │ │ │ │ ├── redfin_apartment_rental.ts │ │ │ │ ├── sf_library_card.ts │ │ │ │ ├── sf_library_card_multiple.ts │ │ │ │ ├── sign_in.ts │ │ │ │ ├── steam_games.ts │ │ │ │ ├── thegamer_opinion_article.ts │ │ │ │ ├── trailhead_superbadge.ts │ │ │ │ ├── trivago.ts │ │ │ │ ├── trustpilot_hr_companies.ts │ │ │ │ ├── ubereats.ts │ │ │ │ ├── uniqlo_mens_blazers.ts │ │ │ │ ├── webmd_audiologist_search.ts │ │ │ │ ├── webmd_ovulation_calculator.ts │ │ │ │ ├── webtailbench.ts │ │ │ │ └── webvoyager.ts │ │ │ ├── allrecipes.ts │ │ │ ├── amazon_add_to_cart.ts │ │ │ ├── apple.ts │ │ │ ├── arxiv.ts │ │ │ ├── bidnet.ts │ │ │ ├── checkboxes.ts │ │ │ ├── combination_sauce.ts │ │ │ ├── costar.ts │ │ │ ├── csr_in_oopif.ts │ │ │ ├── csr_in_spif.ts │ │ │ ├── custom_dropdown.ts │ │ │ ├── dropdown.ts │ │ │ ├── extract_aigrant_companies.ts │ │ │ ├── extract_aigrant_targeted.ts │ │ │ ├── extract_aigrant_targeted_2.ts │ │ │ ├── extract_apartments.ts │ │ │ ├── extract_area_codes.ts │ │ │ ├── extract_baptist_health.ts │ │ │ ├── extract_capacitor_info.ts │ │ │ ├── extract_collaborators.ts │ │ │ ├── extract_csa.ts │ │ │ ├── extract_geniusee.ts │ │ │ ├── extract_geniusee_2.ts │ │ │ ├── extract_github_commits.ts │ │ │ ├── extract_github_stars.ts │ │ │ ├── extract_hamilton_weather.ts │ │ │ ├── extract_jfk_links.ts │ │ │ ├── extract_jstor_news.ts │ │ │ ├── extract_memorial_healthcare.ts │ │ │ ├── extract_nhl_stats.ts │ │ │ ├── extract_partners.ts │ │ │ ├── extract_press_releases.ts │ │ │ ├── extract_professional_info.ts │ │ │ ├── extract_public_notices.ts │ │ │ ├── extract_recipe.ts │ │ │ ├── extract_regulations_table.ts │ │ │ ├── extract_repo_name.ts │ │ │ ├── extract_resistor_info.ts │ │ │ ├── extract_rockauto.ts │ │ │ ├── extract_single_link.ts │ │ │ ├── extract_snowshoeing_destinations.ts │ │ │ ├── extract_staff_members.ts │ │ │ ├── extract_zillow.ts │ │ │ ├── google_flights.ts │ │ │ ├── heal_custom_dropdown.ts │ │ │ ├── heal_scroll_50.ts │ │ │ ├── heal_simple_google_search.ts │ │ │ ├── hidden_input_dropdown.ts │ │ │ ├── history.ts │ │ │ ├── homedepot.ts │ │ │ ├── iframe_form_filling.ts │ │ │ ├── iframe_hn.ts │ │ │ ├── iframe_same_proc.ts │ │ │ ├── iframe_scroll.ts │ │ │ ├── iframes_nested.ts │ │ │ ├── imdb_movie_details.ts │ │ │ ├── instructions.ts │ │ │ ├── ionwave.ts │ │ │ ├── ionwave_observe.ts │ │ │ ├── login.ts │ │ │ ├── multi_tab.ts │ │ │ ├── namespace_xpath.ts │ │ │ ├── nested_iframes_2.ts │ │ │ ├── next_chunk.ts │ │ │ ├── no_js_click.ts │ │ │ ├── nonsense_action.ts │ │ │ ├── observe_amazon_add_to_cart.ts │ │ │ ├── observe_github.ts │ │ │ ├── observe_iframes1.ts │ │ │ ├── observe_iframes2.ts │ │ │ ├── observe_simple_google_search.ts │ │ │ ├── observe_taxes.ts │ │ │ ├── observe_vantechjournal.ts │ │ │ ├── observe_yc_startup.ts │ │ │ ├── oopif_in_csr.ts │ │ │ ├── oopif_in_osr.ts │ │ │ ├── os_dropdown.ts │ │ │ ├── osr_in_oopif.ts │ │ │ ├── osr_in_spif.ts │ │ │ ├── panamcs.ts │ │ │ ├── peeler_complex.ts │ │ │ ├── prev_chunk.ts │ │ │ ├── radio_btn.ts │ │ │ ├── rakuten_jp.ts │ │ │ ├── sciquest.ts │ │ │ ├── scroll_50.ts │ │ │ ├── scroll_75.ts │ │ │ ├── shadow_dom.ts │ │ │ ├── simple_google_search.ts │ │ │ ├── spif_in_csr.ts │ │ │ ├── spif_in_osr.ts │ │ │ ├── stock_x.ts │ │ │ ├── tab_handling.ts │ │ │ ├── ted_talk.ts │ │ │ ├── vanta_h.ts │ │ │ ├── vantechjournal.ts │ │ │ ├── wichita.ts │ │ │ └── wikipedia.ts │ │ ├── tsconfig.json │ │ ├── types/ │ │ │ ├── evals.ts │ │ │ └── screenshotCollector.ts │ │ ├── utils/ │ │ │ ├── ScreenshotCollector.ts │ │ │ └── imageResize.ts │ │ └── utils.ts │ ├── server-v3/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── SDK_RELEASE_WORKFLOW.md │ │ ├── openapi.v3.yaml │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── build-sea.ts │ │ │ ├── gen-openapi.ts │ │ │ ├── runtimePaths.ts │ │ │ └── test-server.ts │ │ ├── src/ │ │ │ ├── lib/ │ │ │ │ ├── InMemorySessionStore.ts │ │ │ │ ├── SessionStore.ts │ │ │ │ ├── auth.ts │ │ │ │ ├── env.ts │ │ │ │ ├── errorHandler.ts │ │ │ │ ├── header.ts │ │ │ │ ├── logging/ │ │ │ │ │ └── index.ts │ │ │ │ ├── response.ts │ │ │ │ ├── sessionStoreManager.ts │ │ │ │ ├── stream.ts │ │ │ │ └── utils.ts │ │ │ ├── routes/ │ │ │ │ ├── healthcheck.ts │ │ │ │ ├── readiness.ts │ │ │ │ └── v1/ │ │ │ │ └── sessions/ │ │ │ │ ├── _id/ │ │ │ │ │ ├── act.ts │ │ │ │ │ ├── agentExecute.ts │ │ │ │ │ ├── end.ts │ │ │ │ │ ├── extract.ts │ │ │ │ │ ├── navigate.ts │ │ │ │ │ ├── observe.ts │ │ │ │ │ └── replay.ts │ │ │ │ └── start.ts │ │ │ ├── sea-entry.ts │ │ │ ├── server.ts │ │ │ └── types/ │ │ │ ├── error.ts │ │ │ ├── fastify.d.ts │ │ │ ├── model.ts │ │ │ └── rrweb.ts │ │ ├── test/ │ │ │ └── integration/ │ │ │ ├── api-server-cache.test.ts │ │ │ ├── utils.ts │ │ │ └── v3/ │ │ │ ├── act.test.ts │ │ │ ├── agentExecute.test.ts │ │ │ ├── end.test.ts │ │ │ ├── extract.test.ts │ │ │ ├── multiRegion.test.ts │ │ │ ├── navigate.test.ts │ │ │ ├── observe.test.ts │ │ │ ├── replay.test.ts │ │ │ └── start.test.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.tests.json │ │ └── vitest.config.ts │ └── server-v4/ │ ├── CHANGELOG.md │ ├── README.md │ ├── openapi.v4.yaml │ ├── package.json │ ├── scripts/ │ │ ├── build-sea.ts │ │ ├── gen-openapi.ts │ │ ├── runtimePaths.ts │ │ └── test-server.ts │ ├── src/ │ │ ├── routes/ │ │ │ ├── healthcheck.ts │ │ │ ├── readiness.ts │ │ │ └── v4/ │ │ │ ├── browsersession/ │ │ │ │ ├── _id/ │ │ │ │ │ ├── end.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── action/ │ │ │ │ │ ├── _actionId.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── activePage.ts │ │ │ │ ├── addCookies.ts │ │ │ │ ├── addInitScript.ts │ │ │ │ ├── awaitActivePage.ts │ │ │ │ ├── browserbaseDebugURL.ts │ │ │ │ ├── browserbaseSessionID.ts │ │ │ │ ├── browserbaseSessionURL.ts │ │ │ │ ├── clearCookies.ts │ │ │ │ ├── configuredViewport.ts │ │ │ │ ├── connectURL.ts │ │ │ │ ├── cookies.ts │ │ │ │ ├── getFullFrameTreeByMainFrameId.ts │ │ │ │ ├── index.ts │ │ │ │ ├── newPage.ts │ │ │ │ ├── pages.ts │ │ │ │ ├── resolvePageByMainFrameId.ts │ │ │ │ ├── routes.ts │ │ │ │ ├── setExtraHTTPHeaders.ts │ │ │ │ └── shared.ts │ │ │ ├── page/ │ │ │ │ ├── action/ │ │ │ │ │ ├── _actionId.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── addInitScript.ts │ │ │ │ ├── asProtocolFrameTree.ts │ │ │ │ ├── click.ts │ │ │ │ ├── close.ts │ │ │ │ ├── dragAndDrop.ts │ │ │ │ ├── enableCursorOverlay.ts │ │ │ │ ├── evaluate.ts │ │ │ │ ├── frames.ts │ │ │ │ ├── getFullFrameTree.ts │ │ │ │ ├── getOrdinal.ts │ │ │ │ ├── goBack.ts │ │ │ │ ├── goForward.ts │ │ │ │ ├── goto.ts │ │ │ │ ├── hover.ts │ │ │ │ ├── keyPress.ts │ │ │ │ ├── listAllFrameIds.ts │ │ │ │ ├── mainFrame.ts │ │ │ │ ├── mainFrameId.ts │ │ │ │ ├── reload.ts │ │ │ │ ├── routes.ts │ │ │ │ ├── screenshot.ts │ │ │ │ ├── scroll.ts │ │ │ │ ├── sendCDP.ts │ │ │ │ ├── setExtraHTTPHeaders.ts │ │ │ │ ├── setViewportSize.ts │ │ │ │ ├── shared.ts │ │ │ │ ├── snapshot.ts │ │ │ │ ├── targetId.ts │ │ │ │ ├── title.ts │ │ │ │ ├── type.ts │ │ │ │ ├── url.ts │ │ │ │ ├── waitForLoadState.ts │ │ │ │ ├── waitForMainLoadState.ts │ │ │ │ ├── waitForSelector.ts │ │ │ │ └── waitForTimeout.ts │ │ │ └── pluginUtils.ts │ │ ├── schemas/ │ │ │ └── v4/ │ │ │ ├── browserSession.ts │ │ │ └── page.ts │ │ ├── sea-entry.ts │ │ ├── server.ts │ │ └── types/ │ │ ├── error.ts │ │ ├── fastify.d.ts │ │ ├── model.ts │ │ └── rrweb.ts │ ├── test/ │ │ └── integration/ │ │ ├── utils.ts │ │ └── v4/ │ │ ├── browsersession.test.ts │ │ └── page.test.ts │ ├── tsconfig.json │ ├── tsconfig.tests.json │ └── vitest.config.ts ├── pnpm-workspace.yaml ├── stainless.yml ├── tsconfig.base.json ├── tsconfig.json └── turbo.json