Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/uipath-google-adk/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ dependencies = [
"google-adk>=1.25.1",
"openinference-instrumentation-google-adk>=0.1.9",
"uipath>=2.10.0, <2.11.0",
"uipath-core>=0.5.18, <0.7.0",
"uipath-runtime>=0.11.0, <0.12.0",
]
classifiers = [
Expand All @@ -30,6 +31,9 @@ register = "uipath_google_adk.middlewares:register_middleware"
[project.entry-points."uipath.runtime.factories"]
google-adk = "uipath_google_adk.runtime:register_runtime_factory"

[project.entry-points."uipath.governance.adapters"]
google-adk = "uipath_google_adk.governance:register_governance_adapter"

[project.urls]
Homepage = "https://uipath.com"
Repository = "https://github.com/UiPath/uipath-integrations-python"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""Governance integration for ``uipath-google-adk``.

Registers :class:`GoogleADKAdapter` with the adapter registry in
``uipath.core.adapters`` so the governance host can attach the ADK-specific
inner hooks (BEFORE_MODEL, AFTER_MODEL, TOOL_CALL, AFTER_TOOL) when it sees a
Google ADK agent.

Registration is **idempotent**: calling :func:`register_governance_adapter`
twice is a no-op on the second call.

Wiring: the package exposes :func:`register_governance_adapter` as an entry
point under ``uipath.governance.adapters``. The governance adapter discovery
path calls it to register the adapter. Importing this module does not, by
itself, mutate the global registry.
"""

from __future__ import annotations

import logging

from uipath.core.adapters import get_adapter_registry

from .adapter import GoogleADKAdapter, GovernanceCallbacks

logger = logging.getLogger(__name__)

_registered: bool = False


def register_governance_adapter() -> None:
"""Register :class:`GoogleADKAdapter` with the global registry.

Idempotent — safe to call multiple times.
"""
global _registered
if _registered:
return
registry = get_adapter_registry()
if any(a.name == "GoogleADK" for a in registry.get_all()):
_registered = True
return
registry.register(GoogleADKAdapter())
_registered = True
logger.debug("Registered uipath-google-adk governance adapter")


__all__ = [
"GoogleADKAdapter",
"GovernanceCallbacks",
"register_governance_adapter",
]
Loading
Loading