Metadata-Version: 2.4
Name: atlas-pca-agent-framework
Version: 0.3.0
Summary: Microsoft Agent Framework tool guard for Atlas Proof-Carrying Authority (PCA): make every tool/function call proof-carrying and policy-gated
Author: Atlas
License-Expression: MIT
Project-URL: Homepage, https://github.com/Atlas-Authorization/pca-python
Project-URL: Repository, https://github.com/Atlas-Authorization/pca-python
Project-URL: Issues, https://github.com/Atlas-Authorization/pca-python/issues
Project-URL: Specification, https://github.com/Atlas-Authorization/pca
Keywords: authorization,agents,proof-carrying-authority,pca,agent-framework
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security
Classifier: Topic :: Security :: Cryptography
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: atlas-pca<0.4,>=0.3.0
Provides-Extra: test-real
Requires-Dist: pytest>=7; extra == "test-real"
Requires-Dist: agent-framework-core==1.21.0; extra == "test-real"
Requires-Dist: pytest-asyncio; extra == "test-real"
Provides-Extra: agent-framework
Requires-Dist: agent-framework>=1.0; extra == "agent-framework"
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Dynamic: license-file

# atlas-pca-agent-framework

Microsoft Agent Framework guard for **Proof-Carrying Authority (PCA)**: make every Agent Framework tool call proof-carrying and
policy-gated. A tool only runs when the agent carries a valid, in-plan, resource-correct proof for exactly
that action. The adapter delegates all verification to [`atlas-pca`](https://pypi.org/project/atlas-pca/)
and reimplements no cryptography.

> Status: **0.3.0, unaudited.**

### What is tested

The default test suite runs without the framework, against the shared conformance proofs. A second suite, `make test-real` (needs the framework installed), runs against the real framework and is pinned to Microsoft Agent Framework 1.21.0 (`agent-framework-core`). It covers a real `Agent` with a scripted offline chat client and the framework's function-invocation layer: `pca_tool` and `pca_function_middleware` allow with a valid proof and refuse a missing, tampered, wrong-audience or insufficient-capability one without running the tool. Each denial test checks that the tool body never ran, and checks the refusal reason wherever the framework surfaces it.

Not covered: other framework versions (only the pinned one is exercised), live model providers (the models are scripted and offline), and any property of the underlying `atlas-pca` verifier beyond what it already documents. This package has not been independently audited.

## Install

```sh
pip install atlas-pca-agent-framework
```

This installs `atlas-pca>=0.3.0,<0.4` as a dependency.

## Use

Entry points: `pca_tool / pca_function_middleware`.

```python
from atlas_pca_agent_framework import pca_tool
```

See the module docstrings in `atlas_pca_agent_framework` for the full API, and the PCA specification for the model.
The verifier applies the full check order, including `grant_ref_bound` (the signed `grant_ref` must equal
the root capability id), as of `atlas-pca` 0.2.0.

## Links

- Source: https://github.com/Atlas-Authorization/pca-python
- Specification and docs: https://github.com/Atlas-Authorization/pca

License: MIT
