Keep downloads bound to their remote representation and publish through atomic destination-local staging. Serialize shared partial ownership. Keep explicit CA trust scoped to provider probes. Preserve checkpoint history and edited files, validate all profile inputs before dependency publication, and separate data removal from installed runtime ownership. Exclude machine-specific PM state from portable transfers. Keep plugin files and nested skill tools intact. Preserve native test isolation. Focused native Windows receipts cover the individual repairs and their integration. This commit does not claim a full-suite or release build.
28 lines
898 B
Python
28 lines
898 B
Python
"""Hermes Gateway - multi-platform messaging integration (sessions, context
|
|
injection, delivery routing, platform-specific toolsets)."""
|
|
|
|
from importlib import import_module
|
|
|
|
# Control/status clients must not initialize config, plugins or user data.
|
|
# The existing package exports remain available when actually requested.
|
|
_EXPORTS = {
|
|
"GatewayConfig": ".config",
|
|
"PlatformConfig": ".config",
|
|
"HomeChannel": ".config",
|
|
"load_gateway_config": ".config",
|
|
"SessionContext": ".session",
|
|
"SessionStore": ".session",
|
|
"build_session_context_prompt": ".session",
|
|
"DeliveryRouter": ".delivery",
|
|
"DeliveryTarget": ".delivery",
|
|
}
|
|
|
|
__all__ = list(_EXPORTS)
|
|
|
|
|
|
def __getattr__(name):
|
|
module = _EXPORTS.get(name)
|
|
if module is None:
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
return getattr(import_module(module, __name__), name)
|