""" Adaptive LLM Novelty Suppression Framework. The package exposes metric analyzers, MEA distance utilities, and adaptive decoding recommendations. Imports are lazy so lightweight modules can be used without immediately importing every ML dependency. """ from importlib import import_module __version__ = "1.0.0" _EXPORTS = { "AdaptiveController": ("framework.controller", "AdaptiveController"), "BiasAnalyzer": ("framework.bias", "BiasAnalyzer"), "DecayFitResult": ("framework.information_decay", "DecayFitResult"), "DiversityAnalyzer": ("framework.diversity", "DiversityAnalyzer"), "EnhancedBiasAnalyzer": ("framework.bias_v2", "EnhancedBiasAnalyzer"), "MEADistanceCalculator": ("framework.mea_distance", "MEADistanceCalculator"), "MEADistanceCalculatorV2": ("framework.mea_distance", "MEADistanceCalculatorV2"), "ModelEvaluator": ("framework.evaluator", "ModelEvaluator"), "NoveltyAnalyzer": ("framework.novelty", "NoveltyAnalyzer"), "PerplexityAnalyzer": ("framework.perplexity", "PerplexityAnalyzer"), "QualityAnalyzer": ("framework.quality", "QualityAnalyzer"), "SectorSensitivityAnalyzer": ("framework.sector_sensitivity", "SectorSensitivityAnalyzer"), "SemanticNoveltyAnalyzer": ("framework.semantic_novelty", "SemanticNoveltyAnalyzer"), "StochasticDecayAnalyzer": ("framework.information_decay", "StochasticDecayAnalyzer"), } __all__ = sorted(_EXPORTS) def __getattr__(name): if name not in _EXPORTS: raise AttributeError(f"module 'framework' has no attribute {name!r}") module_name, attr_name = _EXPORTS[name] value = getattr(import_module(module_name), attr_name) globals()[name] = value return value