Metadata-Version: 2.4
Name: strathon
Version: 1.1.0
Summary: Open-source AI agent firewall. CEL policies, runtime enforcement at the tool-call boundary, and EU AI Act compliance.
Author-email: Strathon <hello@getstrathon.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://getstrathon.com
Project-URL: Repository, https://github.com/strathon/strathon
Project-URL: Documentation, https://getstrathon.com/docs
Project-URL: Issues, https://github.com/strathon/strathon/issues
Project-URL: Discord, https://discord.gg/Ta9XRmh4H
Keywords: ai,agents,firewall,security,llm,opentelemetry,cel,compliance
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
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 :: Security
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: opentelemetry-api>=1.27.0
Requires-Dist: opentelemetry-sdk>=1.27.0
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.27.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.0
Requires-Dist: cel-python>=0.4.0
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == "openai"
Provides-Extra: openai-agents
Requires-Dist: openai-agents>=0.6.0; extra == "openai-agents"
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.40.0; extra == "anthropic"
Provides-Extra: claude-agent
Requires-Dist: anthropic>=0.40.0; extra == "claude-agent"
Provides-Extra: langchain
Requires-Dist: langchain-core>=0.3.0; extra == "langchain"
Provides-Extra: langgraph
Requires-Dist: langchain-core>=0.3.0; extra == "langgraph"
Provides-Extra: crewai
Requires-Dist: crewai>=0.80.0; extra == "crewai"
Provides-Extra: autogen
Requires-Dist: autogen-agentchat>=0.7.0; extra == "autogen"
Provides-Extra: pydantic-ai
Requires-Dist: pydantic-ai-slim>=1.80.0; extra == "pydantic-ai"
Provides-Extra: google-adk
Requires-Dist: google-adk>=1.7.0; extra == "google-adk"
Provides-Extra: proxy
Requires-Dist: mitmproxy>=11.0; extra == "proxy"
Provides-Extra: all
Requires-Dist: openai>=1.0.0; extra == "all"
Requires-Dist: openai-agents>=0.6.0; extra == "all"
Requires-Dist: anthropic>=0.40.0; extra == "all"
Requires-Dist: langchain-core>=0.3.0; extra == "all"
Requires-Dist: crewai>=0.80.0; extra == "all"
Requires-Dist: autogen-agentchat>=0.7.0; extra == "all"
Requires-Dist: pydantic-ai-slim>=1.80.0; extra == "all"
Requires-Dist: google-adk>=1.7.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Dynamic: license-file

# Strathon SDK

Python SDK for [Strathon](https://github.com/strathon/strathon), the open-source AI agent firewall.

## Install

```bash
pip install strathon
```

Optional framework integrations:

```bash
pip install "strathon[openai]"          # OpenAI
pip install "strathon[openai-agents]"   # OpenAI Agents SDK
pip install "strathon[anthropic]"       # Anthropic
pip install "strathon[claude-agent]"    # Claude Agent SDK
pip install "strathon[langgraph]"       # LangGraph
pip install "strathon[langchain]"       # LangChain
pip install "strathon[crewai]"          # CrewAI
pip install "strathon[autogen]"         # AutoGen
pip install "strathon[pydantic-ai]"     # Pydantic AI
pip install "strathon[google-adk]"      # Google ADK
pip install "strathon[all]"             # All 10 frameworks
```

## Quick start

```python
from strathon import Client, instrument

client = Client(
    api_key="stra_...",
    endpoint="http://localhost:4318",
)
instrument(client, frameworks=["openai"])

# Your agent code runs as normal. Strathon traces every call
# and enforces CEL policies before tool execution.
```

## What gets captured

- Every LLM call: model, tokens in/out, cost, latency
- Tool calls: name, arguments, result, duration
- Agent topology: parent-child relationships, handoffs
- Errors: failed tool calls, model errors, timeouts

## Documentation

- [Quickstart](https://getstrathon.com/docs/quickstart)
- [Framework guides](https://getstrathon.com/docs/frameworks)
- [CEL policy reference](https://getstrathon.com/docs/cel-reference)
- [GitHub](https://github.com/strathon/strathon)

## License

Apache License 2.0. See [LICENSE](https://github.com/strathon/strathon/blob/main/LICENSE).
