Metadata-Version: 2.4
Name: citadel-governance
Version: 0.2.0
Summary: AI Governance: Constitution + Audit for Agent Builders
Project-URL: Homepage, https://github.com/casss20/ledger-sdk/tree/master/packages/sdk-python
Project-URL: Repository, https://github.com/casss20/ledger-sdk
Project-URL: Issues, https://github.com/casss20/ledger-sdk/issues
Author-email: Anthony Cass <casseussergio@gmail.com>
License: MIT
License-File: LICENSE
Keywords: agent,ai,approval,audit,governance,kill-switch,llm,safety
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT 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
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: httpx>=0.24
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == 'dev'
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.23; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Description-Content-Type: text/markdown

# Citadel Governance SDK for Python

AI governance for agent builders — one primitive to control, audit, and approve every action your agents take.

## Installation

```bash
pip install citadel-governance
```

## Quickstart (recommended import)

```python
import citadel_governance as cg

cg.configure(
    base_url="https://ledger-sdk.fly.dev",
    api_key="your-api-key",
    actor_id="my-agent",
)

result = await cg.execute(
    action="email.send",
    resource="user:123",
    payload={"to": "user@example.com", "subject": "Hello"},
)

if result.status == "executed":
    print("Sent!")
elif result.status == "pending_approval":
    print("Waiting for human review")
else:
    print(f"Blocked: {result.reason}")
```

## Legacy import (deprecated)

```python
import citadel  # deprecated — will be removed in v1.0
```

The `citadel` import path is kept for backward compatibility but emits a
`DeprecationWarning`. Please migrate to `citadel_governance`.

## Decorator

```python
import citadel_governance as cg

cg.configure(...)

@cg.guard(action="stripe.refund", resource="charge:{charge_id}")
async def refund(charge_id: str, amount: int):
    return stripe.refund.create(charge=charge_id, amount=amount)
```

## Context manager

```python
async with cg.CitadelClient(base_url="https://ledger-sdk.fly.dev") as client:
    result = await client.execute(action="db.write", resource="users")
```

## Dashboard

Monitor all agent activity, approve requests, and manage policies at:
**https://casss20-ledger-sdk-6nlu.vercel.app**

## License

MIT
