Metadata-Version: 2.5
Name: sqube-agent-guard
Version: 1.0.5
Summary: Open-source execution authorization and control infrastructure for AI agents
Author: Sqube Groups
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: agents,ai,execution,guardrail,policy
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Provides-Extra: control-plane
Requires-Dist: fastapi>=0.115; extra == 'control-plane'
Requires-Dist: uvicorn[standard]>=0.30; extra == 'control-plane'
Provides-Extra: dev
Requires-Dist: fastapi>=0.115; extra == 'dev'
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: opentelemetry-api>=1.20; extra == 'dev'
Requires-Dist: opentelemetry-sdk>=1.20; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: uvicorn[standard]>=0.30; extra == 'dev'
Provides-Extra: otel
Requires-Dist: opentelemetry-api>=1.20; extra == 'otel'
Requires-Dist: opentelemetry-sdk>=1.20; extra == 'otel'
Provides-Extra: policy
Requires-Dist: pyyaml>=6.0; extra == 'policy'
Provides-Extra: probes
Requires-Dist: python-dotenv>=1.0; extra == 'probes'
Requires-Dist: requests>=2.31; extra == 'probes'
Description-Content-Type: text/markdown

# sqube-agent-guard

**Sqube Agent Control** — open-source execution authorization for AI agents.

Evaluate deterministic policy (`ALLOW` / `BLOCK` / `REQUIRE_APPROVAL`), optional human approval, and a tamper-evident execution ledger. The SDK is application-level; bypassing the guard is out of scope for v1.

## Install

```bash
pip install sqube-agent-guard
```

Optional extras:

```bash
pip install "sqube-agent-guard[control-plane]"   # local API + dashboard
pip install "sqube-agent-guard[otel]"            # OpenTelemetry bridge
```

Requires Python 3.10+.

## Quick start

```python
from sqube_agent_guard import Decision, ExecutionGuard

def policy(action, resource, agent_id, **ctx):
    if action == "email.send":
        return Decision.REQUIRE_APPROVAL
    return Decision.ALLOW

guard = ExecutionGuard(policy=policy)

@guard.wrap_action(action="email.send", resource="user@example.com")
def send_email():
    ...

send_email()
```

## Control plane (optional)

```bash
sqube-agent-guard serve --data-dir .sqube
```

Open `http://127.0.0.1:8080/setup` on first run to create an administrator account.

## Documentation

https://sqube-groups.github.io/sqube-agent-control/docs/intro

## License

Apache-2.0 — Copyright © 2026 Sqube Groups
