Metadata-Version: 2.5
Name: zanii-underwrite
Version: 0.2.0
Summary: Zanii Underwrite formats: build and verify exposure records, loss runs, completeness proofs and signed packs.
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: zanii-blackbox==0.23.1
Requires-Dist: zanii-certify==0.6.0
Requires-Dist: zanii[pq]==0.26.2
Description-Content-Type: text/markdown

# zanii-underwrite

Insurance evidence for AI agents: build and verify the signed formats of Zanii Underwrite in
Python. Pure functions, no I/O, no network. Alpha (0.x): formats may change between minor versions.

```sh
pip install zanii-underwrite
```

```python
from zanii_underwrite import Refusal, verify_pack

try:
    verdict = verify_pack({"pack": pack, "documents": documents, "receipt": receipt, "decisions": decisions,
                           "pq": pq, "purpose": purpose, "recipient": recipient, "at": at,
                           "trusted_signers": trusted, "seen_nonces": [], "require_pq": False})
except Refusal as r:
    print("refused:", r)  # the first failing rule id
```

What it covers:

- **Risk:** exposure records, loss runs, completeness proofs, insurability and readiness packs,
  monitoring events, renewal diff, framework crosswalk, AI-use statement, pool and portfolio views.
- **Response:** case logs, incident exports, playbook reports, timelines, claim packs.
- A `zanii-uw-py` CLI with the same contract as the TypeScript `zanii-uw`.

Every format is canonical JSON (RFC 8785), integers only, and unknown values are `None` with a
reason. The TypeScript library `@zanii/underwrite` on npm gives the same bytes for the same input.

Zanii never insures, quotes, places or advises on cover; a licensed partner carries every
regulated step. The framework crosswalk is an evidence map awaiting a compliance reviewer, not a
certification. Seeds and keys named TEST ONLY are published on purpose for test vectors; a
production verifier must never trust them.

License: Apache-2.0. Contact: info@zanii.agency.
