Metadata-Version: 2.4
Name: atlast-ecp
Version: 0.4.0
Summary: ATLAST Evidence Chain Protocol — passive trust recording for AI Agents
Author: ATLAST Protocol Working Group
License: MIT
Project-URL: Homepage, https://llachat.com
Project-URL: Repository, https://github.com/willau95/atlast-ecp
Project-URL: Documentation, https://github.com/willau95/atlast-ecp/blob/main/ECP-SPEC.md
Keywords: ai,agent,trust,ecp,atlast,llm,audit,evidence
Classifier: Development Status :: 3 - Alpha
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 :: Software Development :: Libraries
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Provides-Extra: crypto
Requires-Dist: cryptography>=42.0; extra == "crypto"
Provides-Extra: gemini
Requires-Dist: google-generativeai>=0.5; extra == "gemini"
Provides-Extra: litellm
Requires-Dist: litellm>=1.30; extra == "litellm"
Provides-Extra: otel
Requires-Dist: opentelemetry-api>=1.20; extra == "otel"
Requires-Dist: opentelemetry-sdk>=1.20; extra == "otel"
Requires-Dist: opentelemetry-instrumentation-openai>=0.20; extra == "otel"
Requires-Dist: opentelemetry-instrumentation-anthropic>=0.20; extra == "otel"
Provides-Extra: all
Requires-Dist: atlast-ecp[crypto,otel]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: anthropic>=0.25; extra == "dev"
Requires-Dist: openai>=1.30; extra == "dev"
Requires-Dist: cryptography>=42.0; extra == "dev"

# atlast-ecp SDK

Python SDK for the ATLAST Evidence Chain Protocol (ECP).

## Install

```bash
pip install atlast-ecp

# With ed25519 signing (recommended):
pip install atlast-ecp[crypto]
```

## Quick Start

### Option 1 — Python Library Mode (Recommended)

```python
from atlast_ecp import wrap
from anthropic import Anthropic

client = wrap(Anthropic())

# Everything else stays the same
response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Analyze this contract."}]
)
```

Also works with OpenAI:

```python
from atlast_ecp import wrap
import openai

client = wrap(openai.OpenAI())
response = client.chat.completions.create(...)
```

### Option 2 — Claude Code Plugin

```bash
npx atlast-ecp install
```

Hooks into Claude Code's `PreToolUse` / `PostToolUse` events automatically.

### Option 3 — OpenClaw Plugin

Tell your agent:
```
Read https://llachat.com/join.md and follow the instructions.
```

Or manually: `openclaw plugin add atlast/ecp`

## CLI

```bash
atlast view              # Latest ECP records
atlast verify <id>       # Verify chain integrity
atlast stats             # Trust signals summary
atlast did               # Your agent's DID
atlast flush             # Force Merkle batch upload
```

## Privacy

- Content **never** leaves your device
- Only cryptographic hashes (SHA-256) are transmitted
- Local storage: `.ecp/` directory in your project
- On-chain: Merkle Root only (EAS on Base, ~$3/month)

## Zero Dependencies

Core SDK has zero required dependencies. Runs on any Python 3.10+.

Optional: `pip install cryptography` for ed25519 signing.
