Metadata-Version: 2.4
Name: orkaia
Version: 0.1.0
Summary: Governance and audit SDK for AI agents
Project-URL: Homepage, https://orka.ia.br
Project-URL: Documentation, https://orka.ia.br/docs
Project-URL: Repository, https://github.com/orka-runtime/orka-sdk
License: MIT
Keywords: agents,ai,audit,compliance,eu-ai-act,governance
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Description-Content-Type: text/markdown

# orka-sdk

Governance and audit SDK for AI agents. Add policy enforcement, immutable audit trails, and trust scoring to any agent with one decorator.

## Install

```bash
pip install orka-sdk
```

## Quickstart

```python
import orka

# Initialize once at startup (get your API key at orka.ia.br)
orka.init(api_key="orka_your_key_here")

# Wrap any agent function
@orka.guard(agent_id="your-agent-uuid", task_type="summarize")
def summarize(text: str) -> str:
    return openai_client.chat(text)

# Works with async too
@orka.guard(agent_id="your-agent-uuid", task_type="financial_transfer", risk="HIGH")
async def transfer_funds(amount: float, to_account: str) -> dict:
    return await payment_api.transfer(amount, to_account)
```

That's it. Every call now:
- ✅ Checks your X-Shield policies before executing
- ✅ Logs to X-Ledger with immutable hash chain
- ✅ Updates the agent's trust score
- ✅ Blocks execution if policy denies it (raises `OrkaPolicyBlocked`)

## Handle policy blocks

```python
from orka import OrkaPolicyBlocked

try:
    result = transfer_funds(10000, "acc_123")
except OrkaPolicyBlocked as e:
    print(f"Blocked: {e.reason}")
    print(f"Policy: {e.policy_name}")
```

## Works with LangChain, CrewAI, any framework

```python
from langchain.agents import AgentExecutor
import orka

orka.init(api_key="orka_...")

@orka.guard(agent_id="langchain-agent-uuid", task_type="web_search")
def run_agent(query: str) -> str:
    return agent_executor.invoke({"input": query})
```

## Never breaks your production code

If Orka is unreachable, your agent continues running. Governance failures are silent — your users never see Orka errors.

## Risk levels

```python
@orka.guard(agent_id="...", task_type="...", risk="HIGH")
# EU AI Act risk classification: UNACCEPTABLE | HIGH | LIMITED | MINIMAL | NONE
```

## Environment variables

```bash
ORKA_API_KEY=orka_your_key
ORKA_BASE_URL=https://orka-backend.onrender.com/api/v1  # optional
```

```python
import os, orka
orka.init(api_key=os.environ["ORKA_API_KEY"])
```
