Metadata-Version: 2.4
Name: artanis-gravel
Version: 0.2.0
Summary: Embedded prompt management, tracing, and evals for AI engineering teams.
Project-URL: Homepage, https://gravel.artanis.ai
Project-URL: Repository, https://github.com/artanis-ai/gravel
Project-URL: Issues, https://github.com/artanis-ai/gravel/issues
Author-email: Artanis <team@artanis.ai>
License: Apache-2.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: alembic>=1.13
Requires-Dist: click>=8.1
Requires-Dist: httpx>=0.27
Requires-Dist: libcst>=1.4
Requires-Dist: sqlalchemy>=2.0
Provides-Extra: asgi
Requires-Dist: starlette>=0.30; extra == 'asgi'
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-httpx>=0.30; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Provides-Extra: django
Requires-Dist: django>=4.2; extra == 'django'
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.100; extra == 'fastapi'
Provides-Extra: postgres
Requires-Dist: psycopg[binary]>=3.1; extra == 'postgres'
Provides-Extra: sqlite
Provides-Extra: tracing-anthropic
Requires-Dist: anthropic>=0.34; extra == 'tracing-anthropic'
Provides-Extra: tracing-langchain
Requires-Dist: langchain-core>=0.3; extra == 'tracing-langchain'
Provides-Extra: tracing-openai
Requires-Dist: openai>=1.40; extra == 'tracing-openai'
Description-Content-Type: text/markdown

# artanis-gravel

The Python SDK for [Gravel](https://gravel.artanis.ai).

**Status:** pre-v0. Not on PyPI yet.

```bash
# What this will look like once v0 ships:
python -m artanis_gravel init
```

See [`/STATUS.md`](../../STATUS.md) for what's built and what's next.

## Layout

```
src/artanis_gravel/
├── __init__.py             # GravelConfig, GravelUser, defineConfig
├── auto.py                 # the import-side-effect tracing entry point
├── types.py
├── schema.py               # SQLAlchemy schema for gravel_* tables
├── db/                     # connector + bootstrap
├── auth/                   # default password mode + getUser delegation
├── handler/                # core HTTP handler + route table
├── manifest/               # .gravel/manifest.json read/write/scan + hook
├── tracing/                # auto-patches for OpenAI/Anthropic/etc.
├── fastapi.py              # create_gravel_router(config) for FastAPI
├── django.py               # gravel_urls for Django
├── asgi.py                 # generic ASGI / WSGI handler
└── cli/                    # init, migrate, manifest, scan
```

## Schema parity

This package's SQLAlchemy schema is kept in lockstep with the TypeScript Drizzle schema in `packages/sdk-ts/src/schema/`. CI rejects drift.
