Metadata-Version: 2.4
Name: sondera-harness-adk
Version: 0.1.0.dev1110
Summary: Sondera Harness governance plugin for Google Agent Development Kit (ADK) 2.x agents.
Project-URL: Homepage, https://sondera.ai
Project-URL: Repository, https://github.com/sondera-ai/sondera-harness-python
Project-URL: Documentation, https://docs.sondera.ai
Author-email: Sondera <eng@sondera.ai>
License-Expression: MIT
License-File: LICENSE
Keywords: adk,agents,ai,google-adk,governance,guardrails,observability
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Security
Classifier: Typing :: Typed
Requires-Python: >=3.12
Requires-Dist: google-adk>=2.1.0
Requires-Dist: google-genai>=1.0.0
Requires-Dist: sondera-harness-client>=0.2.0
Description-Content-Type: text/markdown

# sondera-harness-adk

Sondera Harness governance plugin for [Google ADK](https://google.github.io/adk-docs/)
2.x agents. Wraps every ADK callback point (user message, model, tool, run
lifecycle) with policy adjudication against the Sondera Platform.

The package's public surface is deliberately narrow: only
`SonderaHarnessPlugin` is exported from the top-level package.

## Installation

```bash
uv add sondera-harness-adk
```

## Quick Start

```python
from google.adk import Agent
from google.adk.runners import Runner

from sondera_harness_adk import SonderaHarnessPlugin
from sondera_harness_adk.harness import SonderaRemoteHarness

# Endpoint/token resolve from SONDERA_HARNESS_ENDPOINT / SONDERA_API_TOKEN
# (or ~/.sondera/env) when not passed explicitly.
harness = SonderaRemoteHarness()
plugin = SonderaHarnessPlugin(harness=harness)

agent = Agent(name="my-agent", model="gemini-2.5-flash", ...)
runner = Runner(agent=agent, app_name="my-app", plugins=[plugin])
```

`SonderaHarnessPlugin` accepts any `sondera_harness_adk.abc.Harness`
implementation, so custom harnesses (e.g. a local policy engine) can be
substituted for `SonderaRemoteHarness`.

## License

MIT — see [LICENSE](LICENSE).
