Repository navigation
Add retail-cart-providers: retail-cart on competing providers' browsers - #12
Draft
andrewleesteele wants to merge 1 commit into
Draft
andrewleesteele wants to merge 1 commit into
andrewleesteele wants to merge 1 commit into
Conversation
…rs' browsers A remote-browser environment runs the task container on local Docker and drives a Kernel, Browserbase, Steel, Hyperbrowser or Anchor browser over CDP, and a playwright-mcp toolset gives every arm the same tools, so arms differ only in the browser. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #10 (retail-cart), which is stacked on #9.
Summary
Runs the 16
retail-cartguest add-to-cart tasks on Kernel, Browserbase, Steel, Hyperbrowser and Anchor browsers. Every arm uses the same agent (Codex,gpt-6-luna), the same tools and the same task container, so the only thing that differs between arms is the browser.remote-browserenvironment (RemoteBrowserEnvironment): runs the task container on the runner's Docker instead of inside a Kernel VM. Once the container is up, it creates a browser throughharness/providers.py, writes the browser's CDP URL to/run/browser/cdp-urlin the container, and releases the browser when the trial ends. A browser that can't be created fails the trial withBrowserCreationError, so it shows up in the infrastructure failures table. Arms choose it withenvironment = "remote-browser". The default is stillkernel.[browser.config.params]is the provider's own session create body, so the arm file shows exactly which stealth, proxy and CAPTCHA settings each provider was given.playwright-mcptoolset: Playwright MCP (pinned to 0.0.84) attached over CDP. It works in the browser's existing context and page. The toolset ref sets the version.open-start-urlandscoreuse a newcdp-executescript when the CDP URL file exists. It runs the samepage-scoped code that Kernel'splaywright/executeruns. Kernel-VM arms are unchanged.kernel_errordescription now just says "the browser", so agents on other providers can report browser failures. The outcome key is unchanged.codex-pw-{kernel,browserbase,steel,hyperbrowser,anchor}, each with that provider's anti-bot settings:codex-pw-kernelstealth: truecodex-pw-browserbasesolveCaptchas,proxies: true,keepAlivecodex-pw-steeluseProxy,solveCaptchacodex-pw-hyperbrowseruseStealth,useProxy,solveCaptchascodex-pw-anchorextra_stealth,captcha_solverSessions have to survive a CDP disconnect, because the start page, the agent and the verifier each connect separately. Browserbase gets
keepAlive, Anchor a 30-minute idle timeout, and every provider a session timeout of 30 minutes or more.retail-cart-providers.yml, 10 attempts by default. Concurrency defaults to 4 per arm, because every arm's containers run on the same runner._run.ymlpassesBROWSERBASE_API_KEY,BROWSERBASE_PROJECT_ID,STEEL_API_KEY,HYPERBROWSER_API_KEYandANCHOR_API_KEY. A run checks for the keys of the providers its arms use before it starts.Before a full run
advancedStealthfrom the arm and say so next to the results.Testing
ruff check,ruff format --check,pytest(39 passed). New tests cover the providers (mocked HTTP), the remote-browser environment's start and stop order, the toolset, and arm environment validation.bench prepare retail-cart-providersfor every arm, added to CI.codex-pw-kerneloncostco-microfiber-towels, run locally:reward1 andcart_verified1 (the cart listed the 36-count Kirkland towel), 2 minutes, browser released.🤖 Generated with Claude Code