58 lines
2.4 KiB
Python
58 lines
2.4 KiB
Python
"""hermes-agent-azure: Microsoft Entra ID / Azure Identity adapter for Hermes Agent."""
|
|
|
|
from hermes_agent_azure.adapter import ( # noqa: F401
|
|
SCOPE_AI_AZURE_DEFAULT,
|
|
EntraIdentityConfig,
|
|
_build_default_credential,
|
|
_require_azure_identity,
|
|
build_bearer_http_client,
|
|
build_credential,
|
|
build_token_provider,
|
|
describe_active_credential,
|
|
has_azure_identity_credentials,
|
|
has_azure_identity_installed,
|
|
is_token_provider,
|
|
materialize_bearer_for_http,
|
|
reset_credential_cache,
|
|
)
|
|
|
|
|
|
def register(ctx):
|
|
"""Entry point for the hermes_agent.plugins entry point group."""
|
|
from hermes_agent_azure import adapter
|
|
|
|
ctx.register_provider_services("azure", {
|
|
# Auth / credentials
|
|
"is_token_provider": adapter.is_token_provider,
|
|
"has_azure_identity_credentials": adapter.has_azure_identity_credentials,
|
|
"has_azure_identity_installed": adapter.has_azure_identity_installed,
|
|
# Client building
|
|
"build_bearer_http_client": adapter.build_bearer_http_client,
|
|
"build_credential": adapter.build_credential,
|
|
"build_token_provider": adapter.build_token_provider,
|
|
"materialize_bearer_for_http": adapter.materialize_bearer_for_http,
|
|
"reset_credential_cache": adapter.reset_credential_cache,
|
|
# Constants / config
|
|
"SCOPE_AI_AZURE_DEFAULT": adapter.SCOPE_AI_AZURE_DEFAULT,
|
|
"EntraIdentityConfig": adapter.EntraIdentityConfig,
|
|
# Internal helpers
|
|
"_build_default_credential": adapter._build_default_credential,
|
|
"_require_azure_identity": adapter._require_azure_identity,
|
|
"describe_active_credential": adapter.describe_active_credential,
|
|
})
|
|
|
|
# Register the provider resolver — core dispatches to this instead of
|
|
# having a per-azure-foundry if/elif branch in resolve_provider_client().
|
|
from hermes_agent_azure.resolve import resolve_auxiliary_client as _azure_resolver
|
|
ctx.register_provider_resolver("azure-foundry", _azure_resolver)
|
|
|
|
# Register the provider overlay — core merges this into HERMES_OVERLAYS
|
|
from agent.plugin_registries import ProviderOverlayEntry
|
|
ctx.register_provider_overlay(ProviderOverlayEntry(
|
|
provider_name="azure-foundry",
|
|
transport="openai_chat", # default; overridden by api_mode in config
|
|
base_url_env_var="AZURE_FOUNDRY_BASE_URL",
|
|
display_name="Azure AI Foundry",
|
|
aliases=[],
|
|
))
|