Metadata-Version: 2.5
Name: novalab-adk
Version: 2.14.0
Summary: NovaLab Agent Development Kit — Multi-provider AI with Ollama, Bedrock, Claude, GPT, Gemini + multimodal + training
License-Expression: MIT
Keywords: adk,agents,ai,multi-agent,novalab,orchestration,parallel,pipeline,routing,workflows
Requires-Python: >=3.10
Requires-Dist: boto3>=1.34.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.4.0; extra == 'dev'
Description-Content-Type: text/markdown

# Nova ADK (Python)

The official Python SDK for the [Nova](https://novalab.build) agentic AI platform —
agents, chat, orchestration, voice, billing, and more, over a typed async client.

## Install

```bash
pip install novalab-adk
```

## Quickstart

```python
import asyncio
from novalab_adk import NovaClient

async def main():
    async with NovaClient(api_key="nova_...") as nova:
        reply = await nova.chat.send("Summarise the latest sales report")
        print(reply.output)

asyncio.run(main())
```

## Usage & consumption

See exactly what your account is spending, split by account type
(API vs Workspace) and by operation:

```python
c = await nova.usage.consumption()
print(c.total_credits, "credits across", c.total_events, "requests")
for op in c.by_operation:
    print(op.operation, op.product, op.credits)

# Per-request ledger
for ev in await nova.usage.events(limit=20):
    print(ev.created_at, ev.operation, ev.credits)
```

## Handling out-of-credits

Billable calls raise `NovaInsufficientCreditsError` (HTTP 402) with the
details needed to prompt an upgrade or top-up:

```python
from novalab_adk import NovaInsufficientCreditsError

try:
    await nova.chat.send("...")
except NovaInsufficientCreditsError as e:
    print(f"Out of credits for {e.operation}: balance {e.balance}, cost {e.cost}")
    print("Upgrade:", e.upgrade_url)
```

## Documentation

Full docs: https://novalab.build/docs
