nomyo-router/compliance/__init__.py

22 lines
1 KiB
Python

"""aissurance — the aissurance.eu compliance plugin.
An in-process module that periodically snapshots the Router's AI-infrastructure
landscape and sends structured, HMAC-signed evidence to aissurance.eu (the EU
AI Act compliance platform). It only reads infrastructure metadata the Router
already maintains for routing — never prompt/completion content.
Public entry points:
* ``AissurancePlugin`` — owns the scheduler task; ``start()`` / ``stop()`` are
called from router.py's startup/shutdown events.
"""
__all__ = ["AissurancePlugin"]
def __getattr__(name):
# Lazy export so that ``config.py`` can import ``compliance.settings`` without
# eagerly loading the plugin chain (plugin → scheduler → collector → config),
# which would form an import cycle. router.py triggers this after startup.
if name == "AissurancePlugin":
from compliance.plugin import AissurancePlugin
return AissurancePlugin
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")