Metadata-Version: 2.4
Name: interven-crewai
Version: 0.1.0
Summary: CrewAI integration for Interven AI firewall. Scan every tool call your CrewAI agents make — block malicious requests, redact PII/secrets, route risky actions to human approval.
Author-email: Interven Security <support@intervensecurity.com>
License: MIT
Project-URL: Homepage, https://intervensecurity.com
Project-URL: Issues, https://github.com/intervensecurity/interven-python/issues
Keywords: interven,crewai,ai-agent,ai-firewall,security,tool-call
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 :: Security
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: interven>=0.5.0
Requires-Dist: crewai>=0.70.0

# interven-crewai

CrewAI integration for [Interven](https://intervensecurity.com) — the AI firewall for agent tool calls.

## Install

```bash
pip install interven-crewai
```

## Quickstart

```python
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool

from interven_crewai import guard, InterventBlockedError

search = guard(SerperDevTool(), api_key="iv_live_...")

researcher = Agent(
    role="Security Researcher",
    goal="Find relevant AI security news",
    tools=[search],
    verbose=True,
)

task = Task(
    description="Summarize the latest prompt injection research",
    expected_output="A short summary",
    agent=researcher,
)

crew = Crew(agents=[researcher], tasks=[task])

try:
    result = crew.kickoff()
    print(result)
except InterventBlockedError as e:
    print(f"Crew blocked by Interven: {e}")
```

## What happens per tool call

| Interven decision | Behavior |
|-------------------|----------|
| ALLOW | tool runs unchanged |
| SANITIZE | tool runs with Interven's redacted arguments (SSN/secrets stripped) |
| DENY | raises `InterventBlockedError` |
| REQUIRE_APPROVAL | raises `InterventBlockedError` with approval URL |

## License

MIT
