Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
6d34ff2
init: job-bench
sdevare-nv Sep 4, 2026
aa47491
init: rebenchv2, scale-swe
sdevare-nv Sep 11, 2026
31770d5
Merge remote-tracking branch 'origin/main' into sdd/swe-training-sand…
sdevare-nv Sep 11, 2026
62ed553
feat: add rebench v2 training config
sdevare-nv Sep 13, 2026
8504e2d
feat: update prepare file
sdevare-nv Sep 13, 2026
91b3a66
feat: add scaleswe trainier and fix agent ref in jsonl
sdevare-nv Sep 13, 2026
6082072
feat: add verifier for swerebenchv2
sdevare-nv Sep 13, 2026
4e04e91
feat: update scale swe verifier
sdevare-nv Sep 13, 2026
fae4e4b
feat: add swemerv2
sdevare-nv Sep 13, 2026
234df67
fix: sandbox id
sdevare-nv Sep 13, 2026
fc9cf0c
fix: supported instances for swerebench
sdevare-nv Sep 13, 2026
3a7ca3f
feat: swemer v1
sdevare-nv Sep 15, 2026
a134274
feat: merv2 use existing test parsers
sdevare-nv Sep 15, 2026
8c2533a
feat: remove job bench
sdevare-nv Sep 15, 2026
0b0601b
lint
sdevare-nv Sep 15, 2026
6d36ef7
Merge origin/main into sdd/swe-training-sandbox-migration
sdevare-nv Sep 15, 2026
c012e45
feat: add more tests
sdevare-nv Sep 15, 2026
e5dd8a8
Merge branch 'main' into sdd/swe-training-sandbox-migration
sdevare-nv Sep 15, 2026
ddd7b7f
fix: task data fix
sdevare-nv Sep 15, 2026
8618c37
Merge origin/sdd/swe-training-sandbox-migration
sdevare-nv Sep 15, 2026
a29bfdc
feat: CI example data-validation gate for scale_swe/swe_rebench/sweme…
sdevare-nv Sep 15, 2026
43aac3c
feat: example rollouts for CI data-validation gate (scale_swe/swe_reb…
sdevare-nv Sep 16, 2026
38939eb
fix: replace swemer_v1/v2 CI example fixtures with public synthetic data
sdevare-nv Sep 16, 2026
b69bf2e
Merge origin/main into sdd/swe-training-sandbox-migration
sdevare-nv Sep 16, 2026
6b539a7
feat: add denovo_swe and swe_next resources servers
sdevare-nv Sep 17, 2026
e160d07
feat: add CI example data-validation fixtures for denovo_swe and swe_…
sdevare-nv Sep 18, 2026
93ad98d
fix: allowlist git-SHA test fixture flagged as a secret
sdevare-nv Sep 18, 2026
c0d61e8
feat: add git scrub
sdevare-nv Sep 21, 2026
ae825ba
reward profiling
sdevare-nv Sep 22, 2026
cf96535
Merge remote-tracking branch 'origin/main' into sdd/swe-training-sand…
sdevare-nv Sep 22, 2026
ac9a727
feat: eval container reward profiling
sdevare-nv Sep 22, 2026
8101e8c
fix: correct OUTPUT_FPATH parent depth in reward-profiling prepare sc…
sdevare-nv Sep 22, 2026
98b63c3
fix: remove orphaned openswe .gitignore stubs breaking CI server tests
sdevare-nv Sep 22, 2026
149a17b
docs: regenerate README env table (drop dead openswe + stale swebench…
sdevare-nv Sep 22, 2026
fe87371
Merge remote-tracking branch 'origin/main' into sdd/swe-training-sand…
hemildesai Sep 23, 2026
c4ca745
docs: add READMEs for denovo_swe and swe_next resources servers
hemildesai Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions benchmarks/nemotron_3.5_super/eval_container_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ config_paths:
- benchmarks/deepswe/opencode.yaml
- benchmarks/terminal_bench_2_1/terminus_2.yaml
- benchmarks/swebench/pro/opencode.yaml
- benchmarks/reward_profiling/swe_rebench/opencode.yaml
- benchmarks/reward_profiling/swemer_v1/opencode.yaml
- benchmarks/reward_profiling/swemer_v2/opencode.yaml
- benchmarks/reward_profiling/swe_next/opencode.yaml
- benchmarks/reward_profiling/scale_swe/opencode.yaml
- responses_api_models/vllm_model/configs/vllm_model.yaml
- benchmarks/nemotron_3.5_super/sandbox_utils.yaml

Expand Down Expand Up @@ -116,6 +121,26 @@ swebench_pro_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets: []
swe_rebench_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets: []
swemer_v1_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets: []
swemer_v2_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets: []
swe_next_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets: []
scale_swe_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets: []

########################################
# END Nvidia-specific configs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,54 @@ swebench_pro_opencode_sandboxed_agent:
type: benchmark
jsonl_fpath: benchmarks/swebench/data/swebench_pro_benchmark.jsonl
prepare_script: benchmarks/swebench/pro/prepare.py
num_repeats: 3
num_repeats: 3

swe_rebench_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets:
- name: swe_rebench_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swe_rebench/data/swe_rebench_training_enriched_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swe_rebench/prepare.py
num_repeats: 8

swemer_v1_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets:
- name: swemer_v1_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swemer_v1/data/swemer_v1_training_enriched_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swemer_v1/prepare.py
num_repeats: 8

swemer_v2_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets:
- name: swemer_v2_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swemer_v2/data/swemer_v2_training_enriched_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swemer_v2/prepare.py
num_repeats: 8

swe_next_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets:
- name: swe_next_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swe_next/data/swe_next_training_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swe_next/prepare.py
num_repeats: 8

scale_swe_reward_profiling_opencode_sandboxed_agent:
responses_api_agents:
opencode_sandboxed_agent:
datasets:
- name: scale_swe_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/scale_swe/data/scale_swe_training_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/scale_swe/prepare.py
num_repeats: 8
36 changes: 36 additions & 0 deletions benchmarks/reward_profiling/scale_swe/opencode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Reward profiling: run scale_swe's training tasks through the opencode sandboxed agent (not
# the golden patch) to collect real rollouts + rewards for a policy checkpoint, 8 repeats per
# task. See resources_servers/scale_swe/configs/scale_swe.yaml for the base resources server.
config_paths:
- responses_api_agents/opencode_sandboxed_agent/configs/opencode_sandboxed_agent.yaml
- resources_servers/scale_swe/configs/scale_swe.yaml

scale_swe_reward_profiling_resources_server:
_inherit_from: scale_swe_resources_server

resources_servers:
scale_swe:
allowed_agents: [opencode_sandboxed_agent]
evaluation_timeout: 1200

scale_swe_reward_profiling_opencode_sandboxed_agent:
_inherit_from: opencode_sandboxed_agent
responses_api_agents:
opencode_sandboxed_agent:
resources_server:
type: resources_servers
name: scale_swe_reward_profiling_resources_server
# 1hr harness execution budget per rollout, not the eval-server's own evaluation_timeout.
sandbox_timeout: 3600
# Keep every full turn in the rollout for reward profiling -- no OpenCode-side
# auto-summarization/pruning of earlier context.
opencode_config:
compaction:
auto: false
prune: false
datasets:
- name: scale_swe_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/scale_swe/data/scale_swe_training_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/scale_swe/prepare.py
num_repeats: 8
40 changes: 40 additions & 0 deletions benchmarks/reward_profiling/scale_swe/prepare.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""No-op prepare script for reward profiling: the jsonl this benchmark points at is already
fully prepared (responses_create_params with the prompt template applied). `gym eval prepare`
still requires an importable `prepare_script` module with a `prepare()` function, so this exists
to satisfy that -- it is never actually called when invoked with
`+use_cached_prepared_benchmarks=true` (the standard invocation) and the jsonl already exists.
"""

from pathlib import Path


OUTPUT_FPATH = (
Path(__file__).parent.parent.parent.parent
/ "resources_servers"
/ "scale_swe"
/ "data"
/ "scale_swe_training_with_prompt_template.jsonl"
)


def prepare() -> Path:
if not OUTPUT_FPATH.exists():
raise FileNotFoundError(
f"{OUTPUT_FPATH} does not exist. This benchmark expects a pre-built jsonl; there is "
"no generation logic here to build one."
)
return OUTPUT_FPATH
36 changes: 36 additions & 0 deletions benchmarks/reward_profiling/swe_next/opencode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Reward profiling: run swe_next's training tasks through the opencode sandboxed agent (not
# the golden patch) to collect real rollouts + rewards for a policy checkpoint, 8 repeats per
# task. See resources_servers/swe_next/configs/swe_next.yaml for the base resources server.
config_paths:
- responses_api_agents/opencode_sandboxed_agent/configs/opencode_sandboxed_agent.yaml
- resources_servers/swe_next/configs/swe_next.yaml

swe_next_reward_profiling_resources_server:
_inherit_from: swe_next_resources_server

resources_servers:
swe_next:
allowed_agents: [opencode_sandboxed_agent]
evaluation_timeout: 1200

swe_next_reward_profiling_opencode_sandboxed_agent:
_inherit_from: opencode_sandboxed_agent
responses_api_agents:
opencode_sandboxed_agent:
resources_server:
type: resources_servers
name: swe_next_reward_profiling_resources_server
# 1hr harness execution budget per rollout, not the eval-server's own evaluation_timeout.
sandbox_timeout: 3600
# Keep every full turn in the rollout for reward profiling -- no OpenCode-side
# auto-summarization/pruning of earlier context.
opencode_config:
compaction:
auto: false
prune: false
datasets:
- name: swe_next_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swe_next/data/swe_next_training_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swe_next/prepare.py
num_repeats: 8
40 changes: 40 additions & 0 deletions benchmarks/reward_profiling/swe_next/prepare.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""No-op prepare script for reward profiling: the jsonl this benchmark points at is already
fully prepared (responses_create_params with the prompt template applied). `gym eval prepare`
still requires an importable `prepare_script` module with a `prepare()` function, so this exists
to satisfy that -- it is never actually called when invoked with
`+use_cached_prepared_benchmarks=true` (the standard invocation) and the jsonl already exists.
"""

from pathlib import Path


OUTPUT_FPATH = (
Path(__file__).parent.parent.parent.parent
/ "resources_servers"
/ "swe_next"
/ "data"
/ "swe_next_training_with_prompt_template.jsonl"
)


def prepare() -> Path:
if not OUTPUT_FPATH.exists():
raise FileNotFoundError(
f"{OUTPUT_FPATH} does not exist. This benchmark expects a pre-built jsonl; there is "
"no generation logic here to build one."
)
return OUTPUT_FPATH
36 changes: 36 additions & 0 deletions benchmarks/reward_profiling/swe_rebench/opencode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Reward profiling: run swe_rebench's training tasks through the opencode sandboxed agent (not
# the golden patch) to collect real rollouts + rewards for a policy checkpoint, 8 repeats per
# task. See resources_servers/swe_rebench/configs/swe_rebench.yaml for the base resources server.
config_paths:
- responses_api_agents/opencode_sandboxed_agent/configs/opencode_sandboxed_agent.yaml
- resources_servers/swe_rebench/configs/swe_rebench.yaml

swe_rebench_reward_profiling_resources_server:
_inherit_from: swe_rebench_resources_server

resources_servers:
swe_rebench:
allowed_agents: [opencode_sandboxed_agent]
evaluation_timeout: 1200

swe_rebench_reward_profiling_opencode_sandboxed_agent:
_inherit_from: opencode_sandboxed_agent
responses_api_agents:
opencode_sandboxed_agent:
resources_server:
type: resources_servers
name: swe_rebench_reward_profiling_resources_server
# 1hr harness execution budget per rollout, not the eval-server's own evaluation_timeout.
sandbox_timeout: 3600
# Keep every full turn in the rollout for reward profiling -- no OpenCode-side
# auto-summarization/pruning of earlier context.
opencode_config:
compaction:
auto: false
prune: false
datasets:
- name: swe_rebench_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swe_rebench/data/swe_rebench_training_enriched_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swe_rebench/prepare.py
num_repeats: 8
40 changes: 40 additions & 0 deletions benchmarks/reward_profiling/swe_rebench/prepare.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""No-op prepare script for reward profiling: the jsonl this benchmark points at is already
fully prepared (responses_create_params with the prompt template applied). `gym eval prepare`
still requires an importable `prepare_script` module with a `prepare()` function, so this exists
to satisfy that -- it is never actually called when invoked with
`+use_cached_prepared_benchmarks=true` (the standard invocation) and the jsonl already exists.
"""

from pathlib import Path


OUTPUT_FPATH = (
Path(__file__).parent.parent.parent.parent
/ "resources_servers"
/ "swe_rebench"
/ "data"
/ "swe_rebench_training_enriched_with_prompt_template.jsonl"
)


def prepare() -> Path:
if not OUTPUT_FPATH.exists():
raise FileNotFoundError(
f"{OUTPUT_FPATH} does not exist. This benchmark expects a pre-built jsonl; there is "
"no generation logic here to build one."
)
return OUTPUT_FPATH
36 changes: 36 additions & 0 deletions benchmarks/reward_profiling/swemer_v1/opencode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Reward profiling: run swemer_v1's training tasks through the opencode sandboxed agent (not
# the golden patch) to collect real rollouts + rewards for a policy checkpoint, 8 repeats per
# task. See resources_servers/swemer_v1/configs/swemer_v1.yaml for the base resources server.
config_paths:
- responses_api_agents/opencode_sandboxed_agent/configs/opencode_sandboxed_agent.yaml
- resources_servers/swemer_v1/configs/swemer_v1.yaml

swemer_v1_reward_profiling_resources_server:
_inherit_from: swemer_v1_resources_server

resources_servers:
swemer_v1:
allowed_agents: [opencode_sandboxed_agent]
evaluation_timeout: 1200

swemer_v1_reward_profiling_opencode_sandboxed_agent:
_inherit_from: opencode_sandboxed_agent
responses_api_agents:
opencode_sandboxed_agent:
resources_server:
type: resources_servers
name: swemer_v1_reward_profiling_resources_server
# 1hr harness execution budget per rollout, not the eval-server's own evaluation_timeout.
sandbox_timeout: 3600
# Keep every full turn in the rollout for reward profiling -- no OpenCode-side
# auto-summarization/pruning of earlier context.
opencode_config:
compaction:
auto: false
prune: false
datasets:
- name: swemer_v1_reward_profiling
type: benchmark
jsonl_fpath: resources_servers/swemer_v1/data/swemer_v1_training_enriched_with_prompt_template.jsonl
prepare_script: benchmarks/reward_profiling/swemer_v1/prepare.py
num_repeats: 8
Loading
Loading