Metadata-Version: 2.4
Name: goderash-sdk
Version: 0.1.1
Summary: Goderash SDK — audit any AI agent with one import. Tamper-evident, hash-chained, regulator-ready.
Project-URL: Homepage, https://ai.goderash.com
Project-URL: Documentation, https://github.com/goderash/goderash#readme
Project-URL: Repository, https://github.com/goderash/goderash
Project-URL: Issues, https://github.com/goderash/goderash/issues
Project-URL: Changelog, https://github.com/goderash/goderash/blob/main/CHANGELOG.md
Author-email: Goderash <eng@goderash.com>
License: Apache-2.0
Keywords: agent-framework,agents,ai,ai-agent,anthropic,audit,compliance,ffiec,finra,governance,hipaa,langchain,langgraph,ledger,llm,llmops,mlops,observability,openai,soc2,tool-calling
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software 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
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.9.0
Requires-Dist: structlog>=24.4.0
Provides-Extra: dev
Requires-Dist: black>=24.10.0; extra == 'dev'
Requires-Dist: mypy>=1.11.2; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.3.3; extra == 'dev'
Requires-Dist: respx>=0.21.1; extra == 'dev'
Requires-Dist: ruff>=0.6.9; extra == 'dev'
Description-Content-Type: text/markdown

# goderash-sdk

**Python SDK for Goderash — audit any AI agent with one import.**

```bash
pip install goderash-sdk
```

## Quick start

```python
from goderash_sdk import GoderashClient, wrap_tool

goderash = GoderashClient(
    api_key="gdr_...",
    tenant="acme-finance",
    agent_id="portfolio-advisor-v1",
)

@wrap_tool(goderash, category="action", confirmation="biometric")
def transfer_money(src: str, dst: str, amount: float) -> dict:
    return {"status": "queued"}

with goderash.turn() as ctx:
    transfer_money("checking", "savings", 100.0, _goderash_context=ctx)
# Every call is appended to the hash-chained audit ledger automatically.
```

## Runtime guards

```python
from goderash_sdk.guards import (
    GuardChain, FraudGuard, VelocityLimiter, VelocityRule, ConversationBudget,
)

guards = GuardChain(
    FraudGuard(),
    VelocityLimiter(rules_by_tool={
        "transfer_money": [
            VelocityRule(window_seconds=3600, max_count=5, label="5/hour"),
        ],
    }),
    ConversationBudget(max_tool_calls=20, max_tokens=200_000),
)

decision = guards.evaluate(goderash, ctx, tool_name="transfer_money", amount=500)
if decision.allow:
    transfer_money(...)
```

## Links

- [GitHub](https://github.com/goderash/goderash)
- [Website](https://goderash.com)
- [Full docs](https://github.com/goderash/goderash/tree/main/docs)
