Metadata-Version: 2.4
Name: runtm-shared
Version: 0.2.0
Summary: Canonical contracts for Runtm: manifest schema, types, errors
Project-URL: Homepage, https://runtm.com
Project-URL: Documentation, https://docs.runtm.com
Project-URL: Repository, https://github.com/runtm-ai/runtm
Project-URL: Issues, https://github.com/runtm-ai/runtm/issues
Author-email: Gustavo Trigos <gus@runtm.com>
Maintainer-email: Gustavo Trigos <gus@runtm.com>
License: Apache-2.0
License-File: LICENSE
Keywords: contracts,runtm,schemas,types
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Requires-Dist: pydantic<3.0,>=2.0
Requires-Dist: python-dotenv<2.0,>=1.0
Requires-Dist: pyyaml<7.0,>=6.0
Provides-Extra: dev
Requires-Dist: httpx<1.0,>=0.24; extra == 'dev'
Requires-Dist: mypy<2.0,>=1.0; extra == 'dev'
Requires-Dist: pytest-cov<6.0,>=4.0; extra == 'dev'
Requires-Dist: pytest<9.0,>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: telemetry
Requires-Dist: httpx<1.0,>=0.24; extra == 'telemetry'
Description-Content-Type: text/markdown

# runtm-shared

Canonical contracts for Runtm: manifest schema, types, errors, and ID generation.

## Contents

- `types.py` - Deployment state machine, enums, API types
- `manifest.py` - Pydantic models for `runtm.yaml` validation
- `errors.py` - Typed error hierarchy with recovery hints
- `ids.py` - Deterministic deployment ID generation
- `storage/base.py` - Abstract storage interface

## Usage

```python
from runtm_shared.types import DeploymentState, can_transition
from runtm_shared.manifest import Manifest
from runtm_shared.errors import RuntmError, ManifestValidationError
from runtm_shared.ids import generate_deployment_id
from runtm_shared.storage.base import ArtifactStore
```

## Development

```bash
pip install -e ".[dev]"
pytest
```

