Multi-language SDK for Braintrust - an AI/ML evaluation and observability platform.
sdk/
├── py/ # Python SDK (main package: braintrust)
├── js/ # JavaScript/TypeScript SDK
├── core/ # Shared core code
│ ├── py/ # Python core
│ └── js/ # JavaScript core
└── integrations/ # Framework integrations
├── langchain-py/ # LangChain Python
├── adk-py/ # ADK Python
└── otel-js/ # OpenTelemetry JS (see integrations/otel-js/CLAUDE.md)
# Install dev dependencies
cd py && make install-dev
# Run all tests (via nox)
make nox # from root
cd py && nox # from py/
# Run specific test session
cd py && nox -s test_core
cd py && nox -s test_openai
cd py && nox -s test_anthropic
# Lint
cd py && make lint
# Full verification
cd py && make verify# Install dependencies (from root)
pnpm install
# Build
pnpm run build
# Run tests
pnpm run test
cd js && make test
# Lint
pnpm run lint# Run pre-commit hooks (format + lint)
make fixup- Python uses
pytestvianoxfor test isolation across dependency versions - JavaScript uses
vitest - Always run relevant tests before submitting changes
- For Python integration tests, check which nox sessions are relevant (e.g.,
test_openai,test_anthropic,test_temporal)
py/noxfile.py- Python test session definitionspy/pyproject.toml- Python package configurationjs/package.json- JavaScript package configurationpnpm-workspace.yaml- Workspace configuration
- Follow existing patterns in the codebase
- Python: Use type hints, follow PEP 8
- JavaScript/TypeScript: Follow existing ESLint configuration
- Avoid unnecessary comments - code should be self-documenting