Metadata-Version: 2.4
Name: atlas-pca-google-adk
Version: 0.4.1
Summary: Google ADK (Gemini/Vertex Agent Development Kit) tool guard for Atlas Proof-Carrying Authority (PCA): make every ADK tool 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,google-adk
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.5,>=0.4.1
Provides-Extra: test-real
Requires-Dist: pytest>=7; extra == "test-real"
Requires-Dist: google-adk==2.11.0; extra == "test-real"
Requires-Dist: pytest-asyncio; extra == "test-real"
Provides-Extra: adk
Requires-Dist: google-adk>=0.1; extra == "adk"
Provides-Extra: test
Requires-Dist: pytest>=7; extra == "test"
Dynamic: license-file

# atlas-pca-google-adk

Google ADK guard for **Proof-Carrying Authority (PCA)**: make every Google ADK 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.4.1, 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 Google ADK 2.11.0. It covers a real `LlmAgent` run through a real `Runner` with a scripted offline model: proofs in session state, `FunctionTool` wrapping, `before_tool_callback` allow/deny (tampered proof, wrong audience), and the denied-tool path. 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-google-adk
```

This installs `atlas-pca>=0.4.1,<0.5` as a dependency.

## Use

Entry points: `pca_tool / pca_before_tool_callback`.

```python
from atlas_pca_google_adk import pca_tool
```

See the module docstrings in `atlas_pca_google_adk` 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
