-
Notifications
You must be signed in to change notification settings - Fork 0
feat: update project to support new experiment and benchmark structure #176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
52 commits
Select commit
Hold shift + click to select a range
c4c1036
feat: add benchmark folder
joshblack 5de02fb
feat: add benchmark scenarios
joshblack ebc72b2
feat: add run to benchmark
joshblack 742ebe4
test: add host for local testing
joshblack 73c5a55
refactor: update scenario implementation
joshblack de0d665
refactor: update model implementation
joshblack 797a9c4
test: add test file for benchmarks
joshblack ab2f28e
feat: add benchmark functionality
joshblack 0a0c7fa
feat: add trial concept for individual treatment runs
joshblack f1a7eda
feat: add plan concept for ordering trials and storing order across s…
joshblack 249e755
refactor: update benchmarks, scenario, treatment, and run
joshblack ff1dc6b
refactor: add virtual and system sandboxes
joshblack dc9807c
feat: add sandbox interface for testing
joshblack 4a6ea53
refactor: remove host arg from runTrial
joshblack cc2cc26
refactor: mock virtual sandbox instead of adding custom implementation
joshblack e05cb5c
refactor: change defineScenario to defineConfig
joshblack 4abe367
feat: build through experiments run flow
joshblack 18cfd65
feat: support running trials
joshblack 46a22c4
feat: improve copilot cli message parsing and run trial behavior
joshblack 68ad168
refactor: move run into trial and plan
joshblack 8506898
refactor: add support for testing trial runs
joshblack c8eb054
test: fill out trial tests
joshblack daa9b02
feat: update output format and serialize, deserialize
joshblack dc21648
feat: restore table emit behavior
joshblack dc35b3b
test: add tests and changeset
joshblack e3784de
refactor: update to new config
joshblack 07c41a4
chore: update design system benchmark
joshblack e6c44b6
fix: make config const generic so the type does not have to be explicit
joshblack d09dff1
refactor: update tests and benchmark summaries
joshblack 02f360f
ci: add workflows for benchmark
joshblack d3b45e1
feat: switch up output format, change website
joshblack 2f0e34a
refactor: remove baseline results
joshblack db929c3
feat: move towards benchmark trends
joshblack cb59e18
refactor: clean up benchmark models and sandbox cleanup
joshblack aa64c16
refactor: move benchmark scenarios to stacked change
joshblack 2e98455
chore: log sandbox commands
joshblack b469cc3
chore: align benchmark support lockfile
joshblack 02edbcd
fix: accept sub-agent user messages
joshblack 3bc0e0c
fix: remove stale package exports
joshblack 8a88259
fix: exclude walkthrough skill from artifacts
joshblack f6be5ce
fix: collect benchmark output token metrics
joshblack 24dfd15
fix: restore benchmark overview interactions
joshblack 3897fc6
fix: preserve scenario path and browser tests
joshblack 5ca8506
refactor: remove cli package entrypoint
joshblack 031cf72
docs: shorten benchmark changesets
joshblack 1c3bc63
docs: update benchmark API documentation
joshblack 3f36743
refactor: remove baseline experiment
joshblack f57a0f5
test: consolidate experiment coverage
joshblack ac56793
fix: resolve benchmark support integration
joshblack 47d2719
refactor: derive artifact directory from output
joshblack e58491f
fix: address benchmark review feedback
joshblack 76ed0da
fix: address remaining benchmark review feedback
joshblack File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Add benchmark configuration, discovery, execution, and output APIs through `@primer/agent-eval/benchmark` and explicitly named package-root exports. The CLI can now select and run benchmarks from a benchmarks directory. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Move experiment APIs to `@primer/agent-eval/experiment`, replacing `findExperiment`, package-root `run`, and package-root `defineConfig` with `getExperiment`, `runExperiment`, and `defineExperimentConfig`. Remove the legacy experiment loading helpers in favor of `getExperiment` and `listExperiments` with explicit source directories. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Add `ExperimentConfigSchema` and update experiment configuration to use model variants, the new treatment API, and the new sandbox interface. Scenarios continue to support IDs and `{path, name?}` entries through the exported `ExperimentScenarioConfig` and `InlineScenarioConfig` types. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Move scenario APIs to `@primer/agent-eval/scenario`, replacing `defineScenario`, `findScenario`, and `ResolvedScenario` with `defineConfig`, `getScenario`, and `Scenario`. Add scenario schemas and remove the legacy `@primer/agent-eval/scenarios` entry point and `loadScenarioDirectory`. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Replace `createAgentEvalOutput`, `parseAgentEvalOutput`, `AgentEvalOutput`, and `AgentEvalOutputResult` with the experiment `output` and `deserialize` helpers, `ExperimentOutput`, and `TrialResult`. Experiment output now uses keyed maps, model variants, per-session agent metrics, and directory-oriented artifact fields. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Add package-root trial and treatment schemas, types, execution helpers, and comparison helpers, replacing `TreatmentResult` with `TrialResult`. Trials continue to run optional Playwright browser tests and combine them with standard scenario test results. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Add `@primer/agent-eval/sandbox` for sandbox runtimes, configuration, constants, and the plugin and MCP types previously exported from the experiment entry point. Replace the concrete `Sandbox` class with the `Sandbox` interface plus `SystemSandbox` and `VirtualSandbox`. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Replace `ExperimentModelConfig`, `ModelInfo`, and `resolveModelConfigs` with model variant configuration, schemas, and expansion helpers. Low-level model helpers and types are no longer exported from the package root or experiment entry point. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Update scenario discovery to support explicit hosts, skip template directories, and recognize `browser.test.ts`. Inline scenario paths remain supported without package discovery requirements and continue to recognize `scenario.browser.test.ts`. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Add `--output-dir` for portable experiment and benchmark bundles with artifact and walkthrough paths relative to `output.json`. Remove `--artifacts` and derive the artifact directory from `--output-dir` or the directory containing `--output`. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': patch | ||
| --- | ||
|
|
||
| Accept sub-agent `user.message` events without `agentMode` and preserve their routing fields. Collect output token counts from `model.message` events while retaining compatibility with older Copilot output. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': patch | ||
| --- | ||
|
|
||
| Exclude the temporary `agent-browser` walkthrough skill from downloaded trial artifacts. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': patch | ||
| --- | ||
|
|
||
| Compare benchmark test success rates instead of passed-test totals and report equal metrics as a 0% change. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@primer/agent-eval': minor | ||
| --- | ||
|
|
||
| Remove the `@primer/agent-eval/cli` package entry point. Use the `agent-eval` executable for CLI usage and the package root or API entry points for programmatic usage. |
This file was deleted.
Oops, something went wrong.
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
| name: benchmark | ||
| on: | ||
| schedule: | ||
| - cron: '0 0 * * 1' | ||
| workflow_dispatch: | ||
| inputs: | ||
| concurrency: | ||
| description: Number of trials to run in parallel | ||
| required: false | ||
| default: '1' | ||
| type: string | ||
| docker-image: | ||
| description: >- | ||
| Docker container image to use for running trials. | ||
| Must be a Debian-based Node image with apt-get and a node user (e.g. node:26.5.0-slim). | ||
| required: false | ||
| default: 'node:26.5.0-slim' | ||
| type: string | ||
|
|
||
| concurrency: | ||
| group: weekly-design-system-benchmark | ||
| cancel-in-progress: false | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| run: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: checkout repository | ||
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | ||
| - name: set up pnpm | ||
| uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 | ||
| - name: set up Node.js | ||
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | ||
| with: | ||
| node-version-file: '.nvmrc' | ||
| cache: 'pnpm' | ||
| - name: install dependencies | ||
| run: pnpm install --frozen-lockfile | ||
| - name: build project | ||
| run: pnpm run build | ||
| - name: run benchmark | ||
| env: | ||
| CONCURRENCY: ${{ inputs.concurrency }} | ||
| COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }} | ||
| DOCKER_IMAGE: ${{ inputs.docker-image || 'node:26.5.0-slim' }} | ||
| run: script/run-benchmark.sh | ||
| - name: prepare benchmark artifact | ||
| if: ${{ always() }} | ||
| run: | | ||
| mkdir -p workflow-artifact | ||
| if [[ -d results ]]; then | ||
| mv results workflow-artifact/results | ||
| fi | ||
| - name: upload benchmark results | ||
| if: ${{ always() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: benchmark-${{ github.run_id }} | ||
| path: workflow-artifact | ||
| if-no-files-found: error | ||
| retention-days: 90 | ||
| compression-level: 9 |
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,3 +31,4 @@ out | |
| # Generated files | ||
| artifacts/ | ||
| results/ | ||
| output.json | ||
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.