Metadata-Version: 2.5
Name: agentonboard-sdk
Version: 0.1.0
Summary: Universal identity layer for AI agents — Python Partner SDK for token verification and account creation
Author-email: AgentOnboard <hello@agentonboard.xyz>
License-Expression: MIT
Keywords: agentonboard,ai-agents,authentication,fastapi,flask,identity,jwt
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: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Security
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: httpx>=0.25.0
Requires-Dist: pyjwt[crypto]>=2.8.0
Provides-Extra: all
Requires-Dist: fastapi>=0.100.0; extra == 'all'
Requires-Dist: flask>=2.0.0; extra == 'all'
Requires-Dist: starlette>=0.27.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: cryptography>=42.0.0; extra == 'dev'
Requires-Dist: fastapi>=0.100.0; extra == 'dev'
Requires-Dist: flask>=2.0.0; extra == 'dev'
Requires-Dist: mypy>=1.9.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.100.0; extra == 'fastapi'
Requires-Dist: starlette>=0.27.0; extra == 'fastapi'
Provides-Extra: flask
Requires-Dist: flask>=2.0.0; extra == 'flask'
Description-Content-Type: text/markdown

# agentonboard-sdk (Python Partner SDK)

The Python partner SDK for [AgentOnboard](https://agentonboard.xyz) — verify ephemeral agent session tokens and safely resolve or provision partner accounts.

## Installation

```bash
pip install agentonboard-sdk
```

Optional framework shortcuts:
```bash
pip install "agentonboard-sdk[fastapi]"
pip install "agentonboard-sdk[flask]"
```

## Quickstart

### Verify an Agent Token

```python
from agentonboard import verify_agent_token

result = verify_agent_token(
    token=bearer_token,
    audience="notes.com",
)

if not result.ok:
    print(f"Auth failed: {result.code} - {result.error}")
else:
    print(f"Authenticated human: {result.email}")
```

### Async Verification

```python
from agentonboard import verify_agent_token_async

result = await verify_agent_token_async(
    token=bearer_token,
    audience="notes.com",
)
```

### Account Resolution & Provisioning

```python
from agentonboard import verify_agent_account, create_agent_account, AgentIdentity

def find_user_by_email(identity: AgentIdentity):
    return db.query(User).filter(User.email == identity.email).first()

def create_user_for_agent(identity: AgentIdentity):
    return db.create_user(email=identity.email)

# Read-only verification
outcome = verify_agent_account(
    token=bearer_token,
    audience="notes.com",
    resolver=find_user_by_email,
)

# Provisioning if account doesn't exist
outcome = create_agent_account(
    token=bearer_token,
    audience="notes.com",
    resolver=find_user_by_email,
    creator=create_user_for_agent,
)
```
