Metadata-Version: 2.4
Name: liceat
Version: 0.5.0
Summary: Liceat — the authority control plane for AI agents. Attenuable, offline-verifiable, revocable capability tokens (CW1 warrants) for delegating scoped authority to agents.
License: BUSL-1.1
Project-URL: Homepage, https://liceat.com
Project-URL: Repository, https://github.com/shawndei/chokepoint
Keywords: ai-agents,authorization,delegation,capability-tokens,mcp,security
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: cryptography>=41

# liceat (Python SDK)

**Liceat** — *"let it be permitted."* The authority control plane for AI agents.

Issue verifiable, attenuable, revocable warrants; verify them offline; delegate
safely between agents (authority provably only narrows). Wire-compatible with
the TypeScript reference — both verify the same frozen vectors in
[`spec/vectors.json`](../../spec/vectors.json).

```python
from liceat import generate_keypair, issue, attenuate, verify_warrant, encode

sec, pub = generate_keypair()
warrant, atk = issue(sec, "root-1", "org:acme", "agent:booker", [
    {"type": "resource", "patterns": ["pay:*"]},
    {"type": "action", "actions": ["pay", "read"]},
    {"type": "spend_limit", "currency": "USD", "max": 5000},
])

# hand a narrower warrant to a sub-agent — it provably cannot escalate
sub, _ = attenuate(warrant, atk, [{"type": "action", "actions": ["read"]}])

result = verify_warrant(sub, {"resource": "pay:x", "action": "pay",
                              "amount": 100, "currency": "USD"},
                        resolve_root_key=lambda kid: pub)
assert not result.ok  # narrowed away

token = encode(sub)   # CW1~... — present to any Liceat gateway or verifier
```

Full protocol specification: [`docs/SPEC.md`](../../docs/SPEC.md).
