Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "evals/deep-swe"]
path = evals/deep-swe
url = https://github.com/datacurve-ai/deep-swe
[submodule "evals/vendor/pier"]
path = evals/vendor/pier
url = https://github.com/lavaman131/pier
46 changes: 45 additions & 1 deletion DEV_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ This document covers setup, the local dev loop, testing patterns, and project la
## Prerequisites

- **[Bun](https://bun.sh) ≥ 1.3.14** — runtime, package manager, and test runner
- **[uv](https://docs.astral.sh/uv/)** — Python package/environment manager for the `evals/` harness
- **Docker** — required for local Pier/DeepSWE sandbox runs

This repo uses **Bun** for all development, scripts, and testing. The `@bastani/workflows` workspace package ships raw `.ts` files with no build step; Atomic bundles it into `@bastani/atomic` during the coding-agent build.

Expand All @@ -15,11 +17,53 @@ This repo uses **Bun** for all development, scripts, and testing. The `@bastani/
## Setup

```bash
git clone git@github.com:bastani-inc/atomic.git
git clone --recurse-submodules git@github.com:bastani-inc/atomic.git
cd atomic
bun install
```

If you cloned without submodules, initialize them before running evals or touching vendored benchmark harnesses:

```bash
git submodule update --init --recursive
```

Current submodules include `evals/deep-swe` and `evals/vendor/pier`; the evals package points `datacurve-pier` at the local editable `evals/vendor/pier` checkout.

The eval harness is Python-based and uses [`uv`](https://docs.astral.sh/uv/) from the `evals/` directory:

```bash
cd evals
uv sync
uv run python -c 'import pier, pathlib; print(pathlib.Path(pier.__file__).resolve())'
uv run pier --help
```

The `pier` import should resolve to `evals/vendor/pier/src/pier/__init__.py`. After pulling submodule pointer changes or local Pier edits, refresh the editable install with:

```bash
cd evals
uv sync --reinstall-package datacurve-pier
```

Example single-task DeepSWE run with Atomic and the local Pier checkout:

```bash
cd evals
export OPENROUTER_API_KEY=...
uv run pier run \
-p deep-swe/tasks \
--agent-import-path atomic_pier:Atomic \
--model openrouter/openai/gpt-5.5 \
--agent-kwarg thinking=xhigh \
--agent-kwarg version=next \
--agent-env 'OPENROUTER_API_KEY=${OPENROUTER_API_KEY}' \
--n-tasks 1 \
--sample-seed 0 \
--n-concurrent 1 \
--force-build
```

`bun install` runs the root `prepare` script, which installs Git hooks with [`prek`](https://prek.j178.dev/) from [`prek.toml`](./prek.toml). The hook shims installed by default come from `default_install_hook_types`; currently that is `pre-commit`. To reinstall hooks manually, run `bun run hooks:install`. Set `PREK_DISABLE_INSTALL=1` to skip hook installation for a local install; CI skips it automatically.

The root `package.json` is a private workspace package named `atomic-monorepo`. The only publishable package is `packages/coding-agent` (`@bastani/atomic`); other `packages/*` workspaces are bundled or internal.
Expand Down
2 changes: 1 addition & 1 deletion evals/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ dependencies = [
]

[tool.uv.sources]
datacurve-pier = { git = "https://github.com/datacurve-ai/pier" }
datacurve-pier = { path = "vendor/pier", editable = true }
36 changes: 34 additions & 2 deletions evals/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions evals/vendor/pier
Submodule pier added at bbc685
Loading