nooa-bench 0.0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nooa_bench-0.0.7/.gitignore +407 -0
- nooa_bench-0.0.7/PKG-INFO +29 -0
- nooa_bench-0.0.7/README.md +15 -0
- nooa_bench-0.0.7/pyproject.toml +46 -0
- nooa_bench-0.0.7/src/nooa_bench/__init__.py +19 -0
- nooa_bench-0.0.7/src/nooa_bench/bench_agent.py +256 -0
- nooa_bench-0.0.7/src/nooa_bench/protocol.py +191 -0
- nooa_bench-0.0.7/src/nooa_bench/runner.py +235 -0
- nooa_bench-0.0.7/src/nooa_bench/trace_analyzer.py +186 -0
- nooa_bench-0.0.7/tests/test_bench_agent.py +277 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# Rust toolchain (installed for nemo_flow PyO3 build)
|
|
2
|
+
.cargo/
|
|
3
|
+
.rustup/
|
|
4
|
+
|
|
5
|
+
# Node.js dependencies (never commit)
|
|
6
|
+
node_modules/
|
|
7
|
+
|
|
8
|
+
# Byte-compiled / optimized / DLL files
|
|
9
|
+
__pycache__/
|
|
10
|
+
*.py[cod]
|
|
11
|
+
*$py.class
|
|
12
|
+
|
|
13
|
+
# C extensions
|
|
14
|
+
*.so
|
|
15
|
+
|
|
16
|
+
# Distribution / packaging
|
|
17
|
+
.Python
|
|
18
|
+
build/
|
|
19
|
+
develop-eggs/
|
|
20
|
+
dist/
|
|
21
|
+
!packages/nemo-oo-agents-viewer/frontend-react/dist/
|
|
22
|
+
!src/nooa/viewer/frontend-react/dist/
|
|
23
|
+
downloads/
|
|
24
|
+
eggs/
|
|
25
|
+
.eggs/
|
|
26
|
+
lib/
|
|
27
|
+
lib64/
|
|
28
|
+
# Exception: allow util/*/lib/ directories (our code, not build artifacts)
|
|
29
|
+
!util/*/lib/
|
|
30
|
+
!util/**/lib/
|
|
31
|
+
parts/
|
|
32
|
+
sdist/
|
|
33
|
+
var/
|
|
34
|
+
wheels/
|
|
35
|
+
pip-wheel-metadata/
|
|
36
|
+
share/python-wheels/
|
|
37
|
+
*.egg-info/
|
|
38
|
+
.installed.cfg
|
|
39
|
+
*.egg
|
|
40
|
+
MANIFEST
|
|
41
|
+
|
|
42
|
+
# PyInstaller
|
|
43
|
+
# Usually these files are written by a python script from a template
|
|
44
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
45
|
+
*.manifest
|
|
46
|
+
*.spec
|
|
47
|
+
|
|
48
|
+
# Installer logs
|
|
49
|
+
pip-log.txt
|
|
50
|
+
pip-delete-this-directory.txt
|
|
51
|
+
|
|
52
|
+
# Unit test / coverage reports
|
|
53
|
+
htmlcov/
|
|
54
|
+
.tox/
|
|
55
|
+
.nox/
|
|
56
|
+
.coverage
|
|
57
|
+
.coverage.*
|
|
58
|
+
.cache
|
|
59
|
+
nosetests.xml
|
|
60
|
+
coverage.xml
|
|
61
|
+
*.cover
|
|
62
|
+
*.py,cover
|
|
63
|
+
.hypothesis/
|
|
64
|
+
.pytest_cache/
|
|
65
|
+
|
|
66
|
+
# Translations
|
|
67
|
+
*.mo
|
|
68
|
+
*.pot
|
|
69
|
+
|
|
70
|
+
# Django stuff:
|
|
71
|
+
*.log
|
|
72
|
+
local_settings.py
|
|
73
|
+
db.sqlite3
|
|
74
|
+
db.sqlite3-journal
|
|
75
|
+
|
|
76
|
+
# Flask stuff:
|
|
77
|
+
instance/
|
|
78
|
+
.webassets-cache
|
|
79
|
+
|
|
80
|
+
# Scrapy stuff:
|
|
81
|
+
.scrapy
|
|
82
|
+
|
|
83
|
+
# Sphinx documentation
|
|
84
|
+
docs/_build/
|
|
85
|
+
|
|
86
|
+
# PyBuilder
|
|
87
|
+
target/
|
|
88
|
+
|
|
89
|
+
# Jupyter Notebook
|
|
90
|
+
.ipynb_checkpoints
|
|
91
|
+
|
|
92
|
+
# IPython
|
|
93
|
+
profile_default/
|
|
94
|
+
ipython_config.py
|
|
95
|
+
|
|
96
|
+
# pyenv
|
|
97
|
+
.python-version
|
|
98
|
+
|
|
99
|
+
# pipenv
|
|
100
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
101
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
102
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
103
|
+
# install all needed dependencies.
|
|
104
|
+
#Pipfile.lock
|
|
105
|
+
|
|
106
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
107
|
+
__pypackages__/
|
|
108
|
+
|
|
109
|
+
# Celery stuff
|
|
110
|
+
celerybeat-schedule
|
|
111
|
+
celerybeat.pid
|
|
112
|
+
|
|
113
|
+
# SageMath parsed files
|
|
114
|
+
*.sage.py
|
|
115
|
+
|
|
116
|
+
# Environments
|
|
117
|
+
.env
|
|
118
|
+
.env.*
|
|
119
|
+
!.env.example
|
|
120
|
+
!.env.template
|
|
121
|
+
.venv
|
|
122
|
+
.venv-macos
|
|
123
|
+
env/
|
|
124
|
+
venv/
|
|
125
|
+
ENV/
|
|
126
|
+
env.bak/
|
|
127
|
+
venv.bak/
|
|
128
|
+
|
|
129
|
+
# uv cache directory
|
|
130
|
+
.uv-cache/
|
|
131
|
+
|
|
132
|
+
# Spyder project settings
|
|
133
|
+
.spyderproject
|
|
134
|
+
.spyproject
|
|
135
|
+
|
|
136
|
+
# Rope project settings
|
|
137
|
+
.ropeproject
|
|
138
|
+
|
|
139
|
+
# mkdocs documentation
|
|
140
|
+
/site
|
|
141
|
+
|
|
142
|
+
# mypy
|
|
143
|
+
.mypy_cache/
|
|
144
|
+
.dmypy.json
|
|
145
|
+
dmypy.json
|
|
146
|
+
|
|
147
|
+
# Pyre type checker
|
|
148
|
+
.pyre/
|
|
149
|
+
|
|
150
|
+
# IDEs
|
|
151
|
+
.vscode/*
|
|
152
|
+
.vscode-server/*
|
|
153
|
+
.idea/*
|
|
154
|
+
*.swp
|
|
155
|
+
*.swo
|
|
156
|
+
|
|
157
|
+
# OS
|
|
158
|
+
.DS_Store
|
|
159
|
+
Thumbs.db
|
|
160
|
+
|
|
161
|
+
# Temporal
|
|
162
|
+
temporal/
|
|
163
|
+
.temporal/
|
|
164
|
+
|
|
165
|
+
# Custom
|
|
166
|
+
secrets.env
|
|
167
|
+
local_config.yaml
|
|
168
|
+
|
|
169
|
+
# Security: JWT tokens and API keys
|
|
170
|
+
**/test-nvauth.py
|
|
171
|
+
**/debug-auth*.py
|
|
172
|
+
# JWT token patterns (eyJ...)
|
|
173
|
+
eyJ*
|
|
174
|
+
|
|
175
|
+
# Third-party dependencies
|
|
176
|
+
3P/
|
|
177
|
+
3p/
|
|
178
|
+
|
|
179
|
+
# Trash folder for temporary files
|
|
180
|
+
trash/
|
|
181
|
+
|
|
182
|
+
# Tools directory (generated traces) - only root level
|
|
183
|
+
/tools/
|
|
184
|
+
|
|
185
|
+
# Agent trace files and results (root level)
|
|
186
|
+
/trace/
|
|
187
|
+
/traces/
|
|
188
|
+
/results/
|
|
189
|
+
trace*.json
|
|
190
|
+
!trace_viewer_config.json
|
|
191
|
+
/tmp/
|
|
192
|
+
|
|
193
|
+
# NVIDIA OO Agents generated trace and evaluation files (anywhere)
|
|
194
|
+
*.noo-eval.jsonl
|
|
195
|
+
*.006summary.json
|
|
196
|
+
# Exception: Allow trace fixtures for testing/eval
|
|
197
|
+
!evaluation/fixtures/**/*.noo-eval.jsonl
|
|
198
|
+
|
|
199
|
+
# Interface output markdown (experiment results)
|
|
200
|
+
docs/interface_output/
|
|
201
|
+
|
|
202
|
+
# Trace viewer config backups
|
|
203
|
+
**/trace_viewer_config.json.backup
|
|
204
|
+
|
|
205
|
+
# Local config overrides (user-specific, not tracked)
|
|
206
|
+
**/*.local.json
|
|
207
|
+
|
|
208
|
+
# Bridge watchpoint file (runtime job monitoring, not tracked)
|
|
209
|
+
.bridge_watch.json
|
|
210
|
+
|
|
211
|
+
# Slurm job output files (runtime artifacts, not tracked)
|
|
212
|
+
*.err
|
|
213
|
+
*.out
|
|
214
|
+
|
|
215
|
+
# Cursor IDE rules (keep local but don't track)
|
|
216
|
+
.cursorrules
|
|
217
|
+
|
|
218
|
+
# PDFs
|
|
219
|
+
*.pdf
|
|
220
|
+
packages/.venv/
|
|
221
|
+
|
|
222
|
+
# Experimental implementations (on experimental-implementations branch)
|
|
223
|
+
composer-packages/
|
|
224
|
+
gpt-packages/
|
|
225
|
+
trace_tui/
|
|
226
|
+
NEW_AGENT_TUI.md
|
|
227
|
+
RUN_NEW_AGENT_TUI.md
|
|
228
|
+
SETUP_QWEN_TUI.md
|
|
229
|
+
TUI_INTEGRATION_SUMMARY.md
|
|
230
|
+
run-new-tui.sh
|
|
231
|
+
test-tui-debug.py
|
|
232
|
+
test-tui.sh
|
|
233
|
+
scratch/ALIGNMENT_SUMMARY.md
|
|
234
|
+
scratch/DESIGN_ALIGNMENT_REPORT.md
|
|
235
|
+
packages/nemo_oo_agents-core/src/nemo_oo_agents/cli.py
|
|
236
|
+
packages/nemo_oo_agents-tui/src/nemo_oo_agents_tui/cli.py
|
|
237
|
+
|
|
238
|
+
# Prompt optimization experiment results
|
|
239
|
+
util/prompt-optimization/results/*.json
|
|
240
|
+
util/prompt-optimization/results/*.jsonl
|
|
241
|
+
util/prompt-optimization/results/*/*.json
|
|
242
|
+
util/prompt-optimization/results/*/*.jsonl
|
|
243
|
+
util/prompt-optimization/traces/
|
|
244
|
+
util/prompt-optimization/traces_test/
|
|
245
|
+
|
|
246
|
+
# Eval pipeline experiments and data
|
|
247
|
+
util/e2e_optimization/experiments/
|
|
248
|
+
util/e2e_optimization/src/e2e_optimization/examples/**/*.jsonl
|
|
249
|
+
util/e2e_optimization/src/e2e_optimization/examples/**/results/
|
|
250
|
+
# Exception: allow data_*.jsonl (test datasets)
|
|
251
|
+
!util/e2e_optimization/src/e2e_optimization/examples/**/data_*.jsonl
|
|
252
|
+
util/eval_pipeline/experiments/
|
|
253
|
+
|
|
254
|
+
# Experiment test result directories
|
|
255
|
+
experiments/tau_bench_test*/
|
|
256
|
+
experiments/**/results/
|
|
257
|
+
|
|
258
|
+
traces.db
|
|
259
|
+
traces.db-wal
|
|
260
|
+
traces.db-shm
|
|
261
|
+
# Large result files
|
|
262
|
+
experiments/**/results/
|
|
263
|
+
|
|
264
|
+
# Test files
|
|
265
|
+
test_arxiv_fetch.py
|
|
266
|
+
trigger_librarian_fetch.py
|
|
267
|
+
experiments/evaluation-ablations/*.db
|
|
268
|
+
experiments/evaluation-ablations/test_case_*/
|
|
269
|
+
experiments/evaluation-ablations/test.csv
|
|
270
|
+
experiments/evaluation-ablations/test.json
|
|
271
|
+
agents/**/traces/
|
|
272
|
+
|
|
273
|
+
# Claude Code settings (user-specific)
|
|
274
|
+
.claude/settings.json
|
|
275
|
+
|
|
276
|
+
# Claude Code runtime directories (cache, sessions, IDE state, plugins, skills)
|
|
277
|
+
.claude/backups/
|
|
278
|
+
.claude/history.jsonl
|
|
279
|
+
.claude/cache/
|
|
280
|
+
.claude/file-history/
|
|
281
|
+
.claude/ide/
|
|
282
|
+
.claude/plugins/
|
|
283
|
+
.claude/policy-limits.json
|
|
284
|
+
.claude/projects/
|
|
285
|
+
.claude/sessions/
|
|
286
|
+
.claude/shell-snapshots/
|
|
287
|
+
.claude.json
|
|
288
|
+
|
|
289
|
+
# Agent runtime directory
|
|
290
|
+
.agents/
|
|
291
|
+
|
|
292
|
+
# Shell history
|
|
293
|
+
.bash_history
|
|
294
|
+
|
|
295
|
+
# User-level XDG config/local dirs (injected by sandbox/environment)
|
|
296
|
+
.config/
|
|
297
|
+
.local/
|
|
298
|
+
|
|
299
|
+
# Rust toolchain (installed by rustup for nemo-flow build)
|
|
300
|
+
.cargo/
|
|
301
|
+
.rustup/
|
|
302
|
+
|
|
303
|
+
# VS Code Server (remote development runtime)
|
|
304
|
+
.vscode-server/
|
|
305
|
+
|
|
306
|
+
debug_http_logs/
|
|
307
|
+
|
|
308
|
+
# SWE-bench evaluation logs (generated during test runs)
|
|
309
|
+
**/logs/run_evaluation/
|
|
310
|
+
|
|
311
|
+
# Trace analyzer batch results
|
|
312
|
+
**/analysis_batch/
|
|
313
|
+
|
|
314
|
+
# Claude Code local settings (personal, not shared)
|
|
315
|
+
.claude/settings.local.json
|
|
316
|
+
.claude/agents
|
|
317
|
+
|
|
318
|
+
# Claude Code sandbox artifacts (created at runtime, not project files)
|
|
319
|
+
.srt-settings.json
|
|
320
|
+
# Debug handler dumps (written to cwd on SIGUSR2)
|
|
321
|
+
debug_dump_*.txt
|
|
322
|
+
# NeMo OO project directory (libraries, traces, config)
|
|
323
|
+
.nemo_oo/
|
|
324
|
+
.nooa/
|
|
325
|
+
.nemo_oo_agents/
|
|
326
|
+
# Shell config stubs (empty read-only files injected by sandbox)
|
|
327
|
+
.zshrc
|
|
328
|
+
.zprofile
|
|
329
|
+
.bash_profile
|
|
330
|
+
.bashrc
|
|
331
|
+
.profile
|
|
332
|
+
.gitconfig
|
|
333
|
+
.ripgreprc
|
|
334
|
+
.idea
|
|
335
|
+
.vscode
|
|
336
|
+
# Git internal stubs (root-level sandbox artifacts only)
|
|
337
|
+
/HEAD
|
|
338
|
+
/config
|
|
339
|
+
/hooks
|
|
340
|
+
/objects
|
|
341
|
+
/refs
|
|
342
|
+
# pytest temp directories
|
|
343
|
+
pytest-of-*/
|
|
344
|
+
experiments/evaluation-ablations/task_temp/
|
|
345
|
+
|
|
346
|
+
# DABStep experiment outputs (top-level scratch directory)
|
|
347
|
+
/dabstep/
|
|
348
|
+
|
|
349
|
+
# Harbor generated task directories (regenerated via `harbor adapter run`)
|
|
350
|
+
util/harbor/tasks/
|
|
351
|
+
|
|
352
|
+
# OpenSkills workspace files
|
|
353
|
+
.openskills/
|
|
354
|
+
|
|
355
|
+
# Local lockfile
|
|
356
|
+
prpm.lock
|
|
357
|
+
|
|
358
|
+
# Git worktrees
|
|
359
|
+
.worktrees/
|
|
360
|
+
worktrees/
|
|
361
|
+
|
|
362
|
+
# Bridge session ID file — written by slack bridge into each agent worktree root
|
|
363
|
+
.claude_session_id
|
|
364
|
+
|
|
365
|
+
sft_data/**/*.jsonl
|
|
366
|
+
|
|
367
|
+
# Git credentials (must not be committed)
|
|
368
|
+
.git-credentials
|
|
369
|
+
-e
|
|
370
|
+
# Bridge watchpoint file — per-worktree, never committed
|
|
371
|
+
.bridge_watch.json
|
|
372
|
+
|
|
373
|
+
.claude/backups
|
|
374
|
+
.claude/file-history
|
|
375
|
+
.claude/projects
|
|
376
|
+
.claude/shell-snapshots
|
|
377
|
+
.claude/telemetry
|
|
378
|
+
./claude/sessions
|
|
379
|
+
./claude/cache
|
|
380
|
+
./claude/plugins
|
|
381
|
+
|
|
382
|
+
.local/
|
|
383
|
+
.config/
|
|
384
|
+
util/harbor/tasks/terminal_bench/
|
|
385
|
+
|
|
386
|
+
# WTF skills (generated by wtf install-skills)
|
|
387
|
+
.claude/skills/wtf*
|
|
388
|
+
tests/integration/fixtures/*.db
|
|
389
|
+
tests/integration/fixtures/*.lock
|
|
390
|
+
|
|
391
|
+
# Worktree directories
|
|
392
|
+
.wt-*
|
|
393
|
+
|
|
394
|
+
# Throwaway benchmark smoke-test configs
|
|
395
|
+
util/harbor/tb1_opus_smoke.yaml
|
|
396
|
+
util/harbor/tb1_ultra_smoke.yaml
|
|
397
|
+
.claude/scheduled_tasks.lock
|
|
398
|
+
.commit_msg
|
|
399
|
+
|
|
400
|
+
# LoCoMo benchmark data (downloaded on demand, not vendored)
|
|
401
|
+
examples/memory_bench/data/
|
|
402
|
+
|
|
403
|
+
# Local scratch/working files (never commit)
|
|
404
|
+
.scratch/
|
|
405
|
+
|
|
406
|
+
# Claude Code local session dir (never commit)
|
|
407
|
+
.claude/
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nooa-bench
|
|
3
|
+
Version: 0.0.7
|
|
4
|
+
Summary: Benchmark agent (BenchAgent) and Harbor runner for the NOOA framework — reproduces the tech report's SWE-bench and Terminal-Bench results
|
|
5
|
+
Project-URL: Homepage, https://github.com/NVIDIA-NeMo/labs-OO-Agents
|
|
6
|
+
Project-URL: Repository, https://github.com/NVIDIA-NeMo/labs-OO-Agents
|
|
7
|
+
Project-URL: Issues, https://github.com/NVIDIA-NeMo/labs-OO-Agents/issues
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
Requires-Python: <3.14,>=3.12
|
|
10
|
+
Requires-Dist: click>=8.1
|
|
11
|
+
Requires-Dist: nooa
|
|
12
|
+
Requires-Dist: nooa-cli
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
|
|
15
|
+
# nooa-bench
|
|
16
|
+
|
|
17
|
+
Benchmark agent (`BenchAgent`) and Harbor runner for
|
|
18
|
+
[NOOA](https://github.com/NVIDIA-NeMo/labs-OO-Agents). Reproduces the SWE-bench
|
|
19
|
+
and Terminal-Bench results from the NOOA tech report.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv add nooa-bench
|
|
23
|
+
nemo-harbor --help
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
See the [main repository](https://github.com/NVIDIA-NeMo/labs-OO-Agents) for
|
|
27
|
+
documentation.
|
|
28
|
+
|
|
29
|
+
Apache-2.0 licensed.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# nooa-bench
|
|
2
|
+
|
|
3
|
+
Benchmark agent (`BenchAgent`) and Harbor runner for
|
|
4
|
+
[NOOA](https://github.com/NVIDIA-NeMo/labs-OO-Agents). Reproduces the SWE-bench
|
|
5
|
+
and Terminal-Bench results from the NOOA tech report.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
uv add nooa-bench
|
|
9
|
+
nemo-harbor --help
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
See the [main repository](https://github.com/NVIDIA-NeMo/labs-OO-Agents) for
|
|
13
|
+
documentation.
|
|
14
|
+
|
|
15
|
+
Apache-2.0 licensed.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "nooa-bench"
|
|
3
|
+
# Version is derived from git tags at build time by uv-dynamic-versioning.
|
|
4
|
+
dynamic = ["version"]
|
|
5
|
+
description = "Benchmark agent (BenchAgent) and Harbor runner for the NOOA framework — reproduces the tech report's SWE-bench and Terminal-Bench results"
|
|
6
|
+
license = {text = "Apache-2.0"}
|
|
7
|
+
readme = "README.md"
|
|
8
|
+
# Matches nooa and nooa-cli (both >=3.12,<3.14), which this depends on.
|
|
9
|
+
# Without the upper bound, installing on 3.14 fails with a confusing
|
|
10
|
+
# "could not find a version that satisfies nooa" instead of a clean
|
|
11
|
+
# "requires a different Python".
|
|
12
|
+
requires-python = ">=3.12,<3.14"
|
|
13
|
+
dependencies = [
|
|
14
|
+
"nooa",
|
|
15
|
+
"nooa-cli",
|
|
16
|
+
"click>=8.1",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
[project.urls]
|
|
20
|
+
Homepage = "https://github.com/NVIDIA-NeMo/labs-OO-Agents"
|
|
21
|
+
Repository = "https://github.com/NVIDIA-NeMo/labs-OO-Agents"
|
|
22
|
+
Issues = "https://github.com/NVIDIA-NeMo/labs-OO-Agents/issues"
|
|
23
|
+
|
|
24
|
+
[project.scripts]
|
|
25
|
+
nemo-harbor = "nooa_bench.runner:main"
|
|
26
|
+
|
|
27
|
+
[tool.uv.sources]
|
|
28
|
+
nooa = { workspace = true }
|
|
29
|
+
nooa-cli = { workspace = true }
|
|
30
|
+
|
|
31
|
+
[build-system]
|
|
32
|
+
requires = ["hatchling>=1.26.0", "uv-dynamic-versioning>=0.14.0"]
|
|
33
|
+
build-backend = "hatchling.build"
|
|
34
|
+
|
|
35
|
+
[tool.hatch.version]
|
|
36
|
+
source = "uv-dynamic-versioning"
|
|
37
|
+
|
|
38
|
+
[tool.uv-dynamic-versioning]
|
|
39
|
+
vcs = "git"
|
|
40
|
+
style = "pep440"
|
|
41
|
+
bump = true
|
|
42
|
+
metadata = false
|
|
43
|
+
fallback-version = "0.0.6"
|
|
44
|
+
|
|
45
|
+
[tool.hatch.build.targets.wheel]
|
|
46
|
+
packages = ["src/nooa_bench"]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
"""Benchmark agent and Harbor runner for the NOOA framework.
|
|
4
|
+
|
|
5
|
+
Minimal reproducibility package for the NOOA tech report: the benchmark-agnostic
|
|
6
|
+
``BenchAgent`` (SWE-bench Verified, Terminal-Bench 2.0), the ``nemo-harbor``
|
|
7
|
+
container runner, and the trace analyzer used to extract the per-task token
|
|
8
|
+
statistics reported in the paper.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
# Maps --agent-type CLI values to dotted import paths: "module:ClassName"
|
|
14
|
+
AGENT_CLASSES: dict[str, str] = {
|
|
15
|
+
# Unified SWE-bench + Terminal-Bench agent (the tech report's BenchAgent)
|
|
16
|
+
"bench": "nooa_bench.bench_agent:BenchAgent",
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
__all__ = ["AGENT_CLASSES"]
|