Metadata-Version: 2.4
Name: looppause
Version: 0.1.0
Summary: Human-in-the-loop API client for LoopPause. Includes LangGraph and CrewAI integrations.
Project-URL: Homepage, https://looppause.com
Project-URL: Documentation, https://looppause.com/docs
Project-URL: Repository, https://github.com/looppause/looppause
Project-URL: Bug Tracker, https://github.com/looppause/looppause/issues
License: MIT
Keywords: ai-agents,crewai,hitl,human-in-the-loop,langgraph,looppause
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: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: httpx>=0.25
Provides-Extra: all
Requires-Dist: crewai>=0.28; extra == 'all'
Requires-Dist: langgraph>=0.2; extra == 'all'
Provides-Extra: crewai
Requires-Dist: crewai>=0.28; extra == 'crewai'
Provides-Extra: dev
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff>=0.3; extra == 'dev'
Provides-Extra: langgraph
Requires-Dist: langgraph>=0.2; extra == 'langgraph'
Description-Content-Type: text/markdown

# looppause

Python client for the [LoopPause](https://looppause.com) human-in-the-loop API.

Pause any agent action, route approval to Slack or email, and resume with an HMAC-SHA256 signed proof.

## Install

```bash
pip install looppause                    # base client
pip install looppause[langgraph]         # + LangGraph integration
pip install looppause[crewai]            # + CrewAI integration
pip install looppause[langgraph,crewai]  # everything
```

## Quick start

```python
from looppause_client import LoopPauseClient

client = LoopPauseClient()  # reads LOOPPAUSE_API_KEY + LOOPPAUSE_SIGNING_SECRET

pause_id = client.create_pause(
    agent_id="billing-agent",
    action={"type": "payment", "description": "Pay Acme Corp $12,450"},
    recipients=[{"channel": "slack", "target": "#finance-approvals"}],
    idempotency_key="idem_abc123",
)

proof = client.wait_for_proof(pause_id)

if proof.human_authorized:
    # proceed
    pass
```

## Early access

LoopPause is in early access. Request access: hello@looppause.com
