Metadata-Version: 2.4
Name: eil-card
Version: 0.1.1
Summary: EIL Card Python SDK — resolve verified entity identity for AI agents
Project-URL: Homepage, https://eilcard.com
Project-URL: Documentation, https://eilcard.com/docs/agents
Project-URL: Repository, https://github.com/Mendocan/eilcard
Project-URL: Issues, https://github.com/Mendocan/eilcard/issues
Author: EIL Card
License-Expression: MIT
Keywords: agents,crewai,digital-card,eil,entity-identity,langchain
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: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Requires-Dist: requests>=2.31
Provides-Extra: all
Requires-Dist: crewai>=0.80; extra == 'all'
Requires-Dist: langchain-core>=0.3; extra == 'all'
Requires-Dist: llama-index-core>=0.11; extra == 'all'
Provides-Extra: crewai
Requires-Dist: crewai>=0.80; extra == 'crewai'
Provides-Extra: crypto
Requires-Dist: cryptography>=42; extra == 'crypto'
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: responses>=0.25; extra == 'dev'
Provides-Extra: langchain
Requires-Dist: langchain-core>=0.3; extra == 'langchain'
Provides-Extra: llamaindex
Requires-Dist: llama-index-core>=0.11; extra == 'llamaindex'
Description-Content-Type: text/markdown

# EIL Card Python SDK (`eil-card`)

Resolve verified organization and person identity from the EIL Card registry — with LangChain, CrewAI, and LlamaIndex integrations.

## Install

```bash
pip install eil-card
```

Optional framework extras:

```bash
pip install eil-card[langchain]
pip install eil-card[llamaindex]
pip install eil-card[crewai]
pip install eil-card[all]
```

## Quick start

```python
from eil_card import DigitalCard, discover_capabilities, discover_act_capabilities

result = DigitalCard.resolve(domain="sinyalle.com")
card = result["card"]
print(card["name"]["official"], card.get("verified"))

caps = discover_capabilities(card)
if caps["available"]:
    print("Gateway:", caps["agent_gateway"])

act = discover_act_capabilities(card)
print("Write/act scopes:", act["scopes_parsed"]["write"], act["scopes_parsed"]["act"])
```

## LangChain

```python
from eil_card.integrations.langchain import create_eil_resolve_tool

tool = create_eil_resolve_tool()
# tools = [tool]
```

Tool name matches the TypeScript SDK: `resolve_entity_identity`.

## CrewAI

```python
from crewai import Agent
from eil_card.integrations.crewai import create_eil_resolve_crewai_tool

resolve_tool = create_eil_resolve_crewai_tool()
agent = Agent(role="Researcher", goal="Verify entities", tools=[resolve_tool])
```

## LlamaIndex

```python
from eil_card.integrations.llamaindex import EILReader

docs = EILReader().load_data(domain="sinyalle.com")
```

## JWS trust (Registry+)

```python
from eil_card import DigitalCard

result = DigitalCard.resolve(domain="sinyalle.com", verify_jws=True)
print(result.get("trust", {}).get("jws"))

# Crypto verify: pip install eil-card[crypto]
result = DigitalCard.resolve(
    domain="sinyalle.com",
    verify_jws={"public_key_pem": open("registry-public.pem").read(), "require_valid": True},
)
```

## Agent act headers (pilot gateway)

```python
from eil_card import build_idempotency_key, build_agent_act_headers, agent_act_headers_to_fetch

key = build_idempotency_key(
    agent_client_id="my-agent",
    action_id="create_post",
    entity_id="sinyalle.com",
    nonce="run-1",
)
headers = agent_act_headers_to_fetch(
    build_agent_act_headers(
        access_token="...",
        idempotency_key=key,
        action_id="create_post",
        card_id="sinyalle.com",
    )
)
```

## Development

```bash
cd packages/python
pip install -e ".[dev]"
pytest
```

## Publish (maintainers)

```bash
pip install build twine
python -m build
twine upload dist/*
```

Set `PYPI_API_TOKEN` in the environment or `~/.pypirc`.

## Docs

- https://eilcard.com/docs/agents
- TypeScript SDK parity: `packages/sdk/SDK.md`
