Metadata-Version: 2.4
Name: stanchion
Version: 0.1.0
Summary: Framework-agnostic agent reliability primitives for enforcing contracts, checkpointing, tracing, and execution.
License: MIT
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: pydantic>=2.0
Provides-Extra: redis
Requires-Dist: redis>=5.0; extra == "redis"
Provides-Extra: langgraph
Requires-Dist: langgraph>=0.2; extra == "langgraph"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"

# Armature Agents

Armature Agents is a framework-agnostic reliability library for building robust agent pipelines with explicit contracts, checkpointing, tracing, and failure classification.

Install:

```bash
pip install armature
```

Usage:

```python
from pydantic import BaseModel
from armature.checkpoint import CheckpointManager, InMemoryStore
from armature.contracts import ContractRegistry, NodeContract
from armature.cost import ExecutionBudget
from armature.failures import default_policy_map
from armature.runner import ArmatureRunner, RunConfig, armature_node

class InputState(BaseModel):
    value: int

class OutputState(BaseModel):
    result: int

registry = ContractRegistry()
registry.register(NodeContract(node_id="node1", input_schema=InputState, output_schema=OutputState))

store = InMemoryStore()
checkpoint_manager = CheckpointManager(store)
config = RunConfig(run_id="run1", budget=ExecutionBudget.unlimited(), policy_map=default_policy_map())
runner = ArmatureRunner(registry, checkpoint_manager, config)

@armature_node("node1", NodeContract(node_id="node1", input_schema=InputState, output_schema=OutputState))
async def node1(state: InputState) -> dict:
    return {"result": state.value + 1}

result = await runner.run([node1], InputState(value=1))
print(result.final_state)
```

Docs: https://example.com/docs
