Metadata-Version: 2.1
Name: crewai-zambo
Version: 0.1.7
Summary: Verifiable AER-1 execution receipts for CrewAI agents. Every task event publishes a verifiable receipt at zambo.dev.
Author: Zambo
License: MIT
Project-URL: AER-1 standard, https://zambo.dev/aer1/
Project-URL: Add Zambo to your AI, https://zambo.dev/add
Project-URL: Homepage, https://zambo.dev
Project-URL: Documentation, https://zambo.dev/integrations/crewai-receipts/
Keywords: crewai,ai agent receipt,verifiable receipt,observability,mcp,verifiable-execution-receipts,execution-receipts,verifiable-receipt
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# crewai-zambo

**AER-1, the agent execution receipt standard: [zambo.dev/aer-1](https://zambo.dev/aer-1/) | Add Zambo to your AI: [zambo.dev/add](https://zambo.dev/add)**

Zambo is the verifiable work layer for AI. This package publishes CrewAI task events as verifiable AER-1 receipts at zambo.dev.

Receipt format: AER-1, IETF Internet-Draft [draft-zambo-aer1-26](https://datatracker.ietf.org/doc/draft-zambo-aer1/26/).

Verifiable AER-1 execution receipts for CrewAI agents. Publish CrewAI task events as public, verifiable receipts at [zambo.dev](https://zambo.dev).

Receipts follow [AER-1](https://zambo.dev/aer-1/), the IETF draft for verifiable execution receipts created by Brennan Zambo.

## Install

```bash
pip install crewai-zambo
```

## Ten-line example

```python
from crewai_zambo import ZamboCrewListener

listener = ZamboCrewListener()
result = listener.on_task_completed("Summarize this task", "completed")
print(listener.last_receipt_url or result)
```

Attach `ZamboCrewListener` to the CrewAI listener mechanism supported by your installed CrewAI version, or call `on_task_completed` from a task completion hook. The listener prints each public `https://zambo.dev/run/{id}` URL and keeps the most recent URL in `last_receipt_url`.

The receipt describes what the live endpoint recorded and observed. It does not prove an outside outcome that the endpoint did not observe. Set `ZAMBO_API_URL` when using a compatible Zambo host. Listener failures are available in `receipt_errors`.

## Local AER-1 receipts (no network needed)

The package also mints AER-1 execution receipts locally, with no API calls. Pass `emit_aer1=True` to record every event as a verifiable receipt on your own machine:

```python
from crewai_zambo import ZamboCrewListener

listener = ZamboCrewListener(emit_aer1=True)
listener.on_task_completed("Summarize this task", "completed")

receipt = listener.last_local_receipt
print(receipt["id"], receipt["output_hash"])
```

Or mint receipts directly for any tool call:

```python
from crewai_zambo import mint_receipt, verify_receipt

receipt = mint_receipt("my_tool", {"query": "hello"}, {"answer": "hi"}, ms=42)
assert verify_receipt(receipt)  # recomputes the SHA-256 locally
```

Local receipts follow the AER-1 core members (`id`, `created_at`, `tool`, `provenance_class`, `canonical_bytes`, `output_hash`) and use the provenance class `EXECUTED BY CREWAI-ZAMBO`, naming this package as the recording system. They pass the same hash-recomputation check as any AER-1 receipt.

Project homepage: [https://zambo.dev](https://zambo.dev)
AER-1 receipt spec: [https://zambo.dev/aer-1/](https://zambo.dev/aer-1/)

## Guides

- [Execution Receipts for AI Agent Frameworks](https://zambo.dev/guides/framework-agent-execution-receipts/)
- [What Is an AI Agent Execution Receipt?](https://zambo.dev/guides/ai-agent-execution-receipt/)
