Metadata-Version: 2.4
Name: open-action-consent
Version: 0.2.1
Summary: Open Action Consent: a verifiable yes for actions AI agents take for people. Core SDK plus MCP, browser, approval page, OpenAI Agents and LangGraph integrations.
Author: Ishan Srivastava
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/Ishan2036924/open-action-consent
Project-URL: Specification, https://github.com/Ishan2036924/open-action-consent/blob/main/spec/oac-v0.1.md
Keywords: ai-agents,consent,mcp,agent-payments,jws,open-standard
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: cryptography>=42
Provides-Extra: mcp
Requires-Dist: mcp<3,>=2.3; extra == "mcp"
Provides-Extra: browser
Requires-Dist: mcp<3,>=2.3; extra == "browser"
Requires-Dist: playwright>=1.50; extra == "browser"
Provides-Extra: approver
Requires-Dist: starlette>=0.40; extra == "approver"
Requires-Dist: uvicorn>=0.30; extra == "approver"
Provides-Extra: openai-agents
Requires-Dist: openai-agents<0.30,>=0.24; extra == "openai-agents"
Provides-Extra: langgraph
Requires-Dist: langgraph<2,>=1.2; extra == "langgraph"
Provides-Extra: all
Requires-Dist: mcp<3,>=2.3; extra == "all"
Requires-Dist: playwright>=1.50; extra == "all"
Requires-Dist: starlette>=0.40; extra == "all"
Requires-Dist: uvicorn>=0.30; extra == "all"
Requires-Dist: openai-agents<0.30,>=0.24; extra == "all"
Requires-Dist: langgraph<2,>=1.2; extra == "all"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: anyio>=4; extra == "test"
Dynamic: license-file

# open-action-consent (Python)

**A verifiable "yes" for things AI agents do for people.** Before an agent sends, books, pays or deletes, the tool
shows a Preview of exactly what will happen; the person signs a Consent over it; the action runs only if the signature
and the limits check out; a signed Receipt says what ran and how to undo it.
Spec and source: <https://github.com/Ishan2036924/open-action-consent>

## Everything in this one package

| Part | Install | Use | Guide |
|---|---|---|---|
| Core: previews, consents, mandates, receipts, undo, status lists, key discovery, `Gate` | `pip install open-action-consent` | `import oac` | [README](https://github.com/Ishan2036924/open-action-consent#readme) |
| MCP servers (official MCP Python SDK, protocol 2026-07-28) | `pip install "open-action-consent[mcp]"` | `from oac.mcp import OACExtension` | [guide](https://github.com/Ishan2036924/open-action-consent/blob/main/guides/mcp-python.md) |
| Gated Browser (stops before every final click) | `pip install "open-action-consent[browser]"` then `playwright install chromium` | `oac-gated-browser` or `from oac.browser import build_server` | [guide](https://github.com/Ishan2036924/open-action-consent/blob/main/guides/gated-browser.md) |
| Approval page (the person's key stays in their browser) | `pip install "open-action-consent[approver]"` | `from oac.approver import Approver` | [guide](https://github.com/Ishan2036924/open-action-consent/blob/main/guides/approver.md) |
| OpenAI Agents SDK | `pip install "open-action-consent[openai-agents]"` | `from oac.openai_agents import oac_tool` | [guide](https://github.com/Ishan2036924/open-action-consent/blob/main/guides/openai-agents.md) |
| LangGraph | `pip install "open-action-consent[langgraph]"` | `from oac.langgraph import gated` | [guide](https://github.com/Ishan2036924/open-action-consent/blob/main/guides/langgraph.md) |
| All of the above | `pip install "open-action-consent[all]"` | | |

The core needs only `cryptography`. Each part pulls in its framework only when you install that option; importing a
part without it tells you exactly what to install. JavaScript/TypeScript: `npm install open-action-consent`.

Tests: `python -m pytest -q` (from this folder); conformance: `PYTHONPATH=src python -m oac.conformance ../../vectors`.
License: Apache-2.0 (code), CC BY 4.0 (spec text).
