server/: Python FastAPI service, configs, and tests.components/execd/: Go execution daemon and related tests.sdks/: Multi-language SDKs (sdks/sandbox/*,sdks/code-interpreter/*).sandboxes/: Runtime sandbox implementations (e.g.,sandboxes/code-interpreter/).specs/: OpenAPI specs (specs/execd-api.yaml,specs/sandbox-lifecycle.yml).examples/: End-to-end usage examples and integrations.tests/: Cross-component/E2E tests (tests/python/,tests/java/).docs/,oseps/,scripts/: Docs, proposals, and automation scripts.
- Server (Python):
cd server && uv syncinstalls deps.cp server/example.config.toml ~/.sandbox.tomlsets local config.cd server && uv run python -m src.mainruns the API server.
- execd (Go):
cd components/execd && go build -o bin/execd .builds the daemon.cd components/execd && make fmtformats Go sources.
- SDKs:
- Python:
cd sdks/sandbox/python && uv sync && uv run pytest. - Kotlin:
cd sdks/sandbox/kotlin && ./gradlew build.
- Python:
- Specs:
node scripts/spec-doc/generate-spec.jsregenerates spec docs.
- Python: PEP 8,
rufffor lint/format, type hints on public APIs. - Go:
gofmt, explicit error handling, standard import grouping. - Kotlin: Kotlin Coding Conventions,
ktlintwhere configured. - Naming: classes
PascalCase, functionssnake_case(Python) /camelCase(Go/Kotlin), constantsUPPER_SNAKE_CASE.
- Python tests use
pytest(async tests common). - Go tests use
go testundercomponents/execd/pkg/.... - Kotlin tests use Gradle (
./gradlew test). - Coverage targets (from CONTRIBUTING): core packages >80%, API layer >70%.
- Commit messages follow Conventional Commits, e.g.
feat(server): add runtime. - Use feature branches (e.g.,
feature/...,fix/...) and keep PRs focused. - PRs should include summary, testing status, and linked issues; follow the template in
CONTRIBUTING.md. - For major API or architectural changes, submit an OSEP (
oseps/).
- Local server config lives in
~/.sandbox.toml(copied fromserver/example.config.toml). - Docker is required for local sandbox execution; keep images and keys out of commits.