Metadata-Version: 2.4
Name: volidator-python
Version: 0.1.1
Summary: Zero-knowledge, server-blind audit logging for Python and autonomous AI agentic workflows.
License: MIT
Project-URL: Homepage, https://volidator.com
Project-URL: Documentation, https://docs.volidator.com
Project-URL: Repository, https://github.com/ankreations/volidator-sdk
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: cryptography>=3.4.0
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-asyncio>=0.18.0; extra == "test"
Requires-Dist: httpx>=0.20.0; extra == "test"
Provides-Extra: langchain
Requires-Dist: langchain-core>=0.1.0; extra == "langchain"
Provides-Extra: llamaindex
Requires-Dist: llama-index-core>=0.10.0; extra == "llamaindex"

# Volidator Python SDK

**Zero-knowledge, server-blind audit logging for Python and autonomous AI agentic workflows.**

Volidator encrypts every log entry locally — on your server — before sending it. The Volidator backend stores only ciphertext and blind indexes. Your plaintext data never leaves your infrastructure unencrypted.

---

## Installation

```bash
pip install volidator-python
```

---

## Environment Setup

Generate a secure 32-byte encryption key (64 hex characters) with the `vol-dek-` prefix:
```bash
python -c "import os; print('vol-dek-' + os.urandom(32).hex())"
```

Add secrets to your environment:
```bash
VOLIDATOR_API_KEY="val_live_xxxxxxxx..."
VOLIDATOR_ENCRYPTION_KEY="vol-dek-xxxxxxxx..."
```

---

## Quick Start

```python
import os
from volidator import VolidatorClient

volidator = VolidatorClient(
    api_key=os.environ["VOLIDATOR_API_KEY"],
    encryption_key=os.environ["VOLIDATOR_ENCRYPTION_KEY"]
)

# Log a system event
volidator.log({
    "actor": "usr_12345",
    "action": "user.login.success",
    "target": "workspace_abc789",
    "metadata": {
        "device": "Workstation",
        "auth_provider": "Okta"
    }
})
```

---

## AI Agent Auditing (`VolidatorAgent`)

For auditing LLM chains, agent reasoning loops, and multi-agent handoffs, use the `volidator.agent` namespace:

```python
# Log a decision made autonomously by the model
volidator.agent.decision({
    "actor": "writer-agent-v1",
    "traceId": "run-xyz-456",
    "decision": "publish_article",
    "rationale": "grammar check and safety alignments passed verification checks",
    "confidenceScore": 0.98,
    "modelId": "gpt-4o"
})

# Log a tool execution call
volidator.agent.tool_call({
    "actor": "search-agent-v1",
    "traceId": "run-xyz-456",
    "toolName": "web_search",
    "toolInput": {"query": "AI regulation"},
    "toolOutput": {"results": [...]},
    "success": True,
    "latencyMs": 245
})
```
