Skip to content

evals: benchmark matrix (model × harness × tool_surface) + Braintrust routing + STAGEHAND_V4_SDK_PATH#2390

Draft
shriyatheunicorn wants to merge 1 commit into
shriyalolabattu/stg-2671-artifact-grounded-gradingfrom
shriyalolabattu/stg-2671-benchmark-matrix-braintrust
Draft

evals: benchmark matrix (model × harness × tool_surface) + Braintrust routing + STAGEHAND_V4_SDK_PATH#2390
shriyatheunicorn wants to merge 1 commit into
shriyalolabattu/stg-2671-artifact-grounded-gradingfrom
shriyalolabattu/stg-2671-benchmark-matrix-braintrust

Conversation

@shriyatheunicorn

@shriyatheunicorn shriyatheunicorn commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Part of STG-2671 (cadence: model × harness × tool_surface; STAGEHAND_V4_SDK_PATH; report to Braintrust).

Encodes the benchmark cadence as data and wires attribution end to end.

What's inside

  • benchmarks/ — manifest schema + expansion with validity rules (invalid combinations reported with reasons, never silently dropped); v4-vs-playwright manifest; GENERAL_HARNESS.md design doc; grading-decision README (v3-carried rubric verifier kept deliberately — grading only, never driving)
  • framework/runner.ts — project routing: deterministic --sdk runs → stagehand-v4-deterministic, external-harness & benchmark-matrix runs → stagehand-v4; experiment names/metadata carry the (benchmark, harness, toolSurface) triple; sdk metadata inferred from the tool surface
  • v4SdkLoader.tsSTAGEHAND_V4_SDK_PATH: dynamic import of the v4 SDK entry from a configured checkout (package link fallback, loud on misconfiguration)
  • initV4.ts — anthropic browser-CORS header via model config (no SDK patch required); pure buildV4InitParams for browserless unit coverage; systemPrompt passthrough

Verification

  • 15 unit tests (SDK-path resolution, importer behavior, key resolution incl. google aliases, CORS header, env mapping)
  • Live: experiments verified in both Braintrust projects with full triple metadata; anthropic act verified against a pristine (unpatched) extension with the config-header path

Stacked on stg-2671-v4-harness.


Summary by cubic

Implements the benchmark matrix (model × harness × toolSurface) with end-to-end Braintrust routing/metadata, and makes the v4 SDK a configurable import via STAGEHAND_V4_SDK_PATH with committed types. Part of STG-2671.

  • New Features

    • Benchmarks: schema + expansion with validity rules; invalid combos reported; includes v4-vs-playwright example.
    • Braintrust/routing: experiment names include the full triple; metadata stamps { benchmark, harness, toolSurface, sdk, v4Sha }; external-harness and matrix runs route to stagehand-v4, deterministic --sdk runs to stagehand-v4-deterministic; v4Sha resolved from the configured checkout.
    • V4 SDK: dynamic import from STAGEHAND_V4_SDK_PATH (no fallback); removed @browserbasehq/stagehand-v4-spike-sdk-ts link; committed .v4-sdk-types/ so typecheck works on fresh clones/CI.
    • V4 init: buildV4InitParams (unit-testable); Anthropic browser CORS header via model config; systemPrompt passthrough; SDK onLog bridged to the eval logger.
    • Tests: coverage for manifest expansion, Braintrust naming/metadata, v4 init params (incl. Google key aliases), and SDK path resolution/loader.
  • Migration

    • Set STAGEHAND_V4_SDK_PATH to the v4 SDK entry (e.g. /packages/sdk-ts/src/index.ts). Regenerate and commit .v4-sdk-types/ if the SDK entry moves.

Written for commit 301f858. Summary will update on new commits.

Review in cubic

@changeset-bot

changeset-bot Bot commented Jul 23, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 301f858

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@shriyatheunicorn
shriyatheunicorn changed the base branch from shriyalolabattu/stg-2671-v4-harness to shriyalolabattu/stg-2671-artifact-grounded-grading July 23, 2026 22:21
@shriyatheunicorn
shriyatheunicorn force-pushed the shriyalolabattu/stg-2671-benchmark-matrix-braintrust branch from 0f4bc03 to 0aee132 Compare July 23, 2026 23:07
… routing + STAGEHAND_V4_SDK_PATH

Encodes the nondeterministic-suite cadence as data and wires attribution
end to end; makes the v4 SDK location explicit configuration.

- benchmarks/: manifest schema and expansion with validity rules
  (invalid combinations reported with reasons, never dropped silently);
  v4-vs-playwright manifest; GENERAL_HARNESS design doc; grading-
  decision README (v3-carried rubric verifier kept deliberately)
- framework/runner.ts: project routing - deterministic --sdk runs land
  in stagehand-v4-deterministic, external-harness and benchmark-matrix
  runs in stagehand-v4; experiment names and metadata carry the full
  (benchmark, harness, toolSurface) triple; sdk metadata inferred from
  the tool surface; v4Sha resolved from the configured checkout
- v4SdkLoader.ts: STAGEHAND_V4_SDK_PATH is the sole source of the v4
  SDK at runtime. The former link:../../v4-spike dependency (and its
  lockfile entry) is removed: it broke pnpm install on every fresh
  clone and CI runner lacking the nested checkout
- .v4-sdk-types/: generated SDK declarations are committed so typecheck
  works without any v4 checkout; regenerated against the SDK's logger-
  injection (onLog) surface; regenerate when the checkout moves (#16)
- initV4.ts: anthropic browser-CORS header via model config (no SDK
  patch needed); pure buildV4InitParams for browserless unit coverage;
  systemPrompt passthrough; SDK logs bridged into the eval logger via
  onLog so they land in Braintrust rows (feature-detected against the
  loaded SDK's schema - older checkouts without onLog keep working)

Part of STG-2671
@shriyatheunicorn
shriyatheunicorn force-pushed the shriyalolabattu/stg-2671-benchmark-matrix-braintrust branch from 0aee132 to 301f858 Compare July 23, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant