Metadata-Version: 2.4
Name: traceshield-prela
Version: 0.2.0
Summary: Fire-and-forget trace ingestion SDK for TraceShield AI Agent Security
Author-email: TraceShield <dev@traceshield.dev>
License: MIT
Project-URL: Homepage, https://traceshield.dev
Project-URL: Repository, https://github.com/nishkmg/TraceShield
Project-URL: Documentation, https://github.com/nishkmg/TraceShield/tree/staging/prela-sdk
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: Topic :: Security
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.27.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"

# Prela SDK

Fire-and-forget trace ingestion SDK for [TraceShield](https://traceshield.dev).

## Installation

```bash
pip install prela
```

## Quick Start

```python
from prela import Prela

prela = Prela(
    api_key="ts_ingest_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    endpoint="https://api.traceshield.example.com",
)

# Manual trace
prela.trace(
    input="What is my account balance?",
    output="I don't have access to account information.",
)

# OpenAI integration
from prela.integrations.openai import PrelaOpenAI
from openai import OpenAI

client = PrelaOpenAI(OpenAI(), prela)
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello"}],
)

# Before process exit
prela.shutdown()
```

## Design

- **Fire-and-forget**: Never blocks the agent's response path
- **Zero dependencies**: Only requires `httpx`
- **Batching**: Buffers traces and sends every 500ms or 50 traces
- **Resilient**: Drops traces on failure, logs warnings, never raises

## License

Private. All rights reserved.
