9294b44831
* fix: resolve pipeline and star import cycles - Add bootstrap.py and stage_order.py to break circular dependencies - Export Context, PluginManager, StarTools from star module - Update pipeline __init__ to defer imports - Split pipeline initialization into separate bootstrap module Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: add logging for get_config() failure in Star class * fix: reorder logger initialization in base.py --------- Co-authored-by: whatevertogo <whatevertogo@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
"""Pipeline bootstrap utilities."""
|
|
|
|
from importlib import import_module
|
|
|
|
from .stage import registered_stages
|
|
|
|
_BUILTIN_STAGE_MODULES = (
|
|
"astrbot.core.pipeline.waking_check.stage",
|
|
"astrbot.core.pipeline.whitelist_check.stage",
|
|
"astrbot.core.pipeline.session_status_check.stage",
|
|
"astrbot.core.pipeline.rate_limit_check.stage",
|
|
"astrbot.core.pipeline.content_safety_check.stage",
|
|
"astrbot.core.pipeline.preprocess_stage.stage",
|
|
"astrbot.core.pipeline.process_stage.stage",
|
|
"astrbot.core.pipeline.result_decorate.stage",
|
|
"astrbot.core.pipeline.respond.stage",
|
|
)
|
|
|
|
_EXPECTED_STAGE_NAMES = {
|
|
"WakingCheckStage",
|
|
"WhitelistCheckStage",
|
|
"SessionStatusCheckStage",
|
|
"RateLimitStage",
|
|
"ContentSafetyCheckStage",
|
|
"PreProcessStage",
|
|
"ProcessStage",
|
|
"ResultDecorateStage",
|
|
"RespondStage",
|
|
}
|
|
|
|
_builtin_stages_registered = False
|
|
|
|
|
|
def ensure_builtin_stages_registered() -> None:
|
|
"""Ensure built-in pipeline stages are imported and registered."""
|
|
global _builtin_stages_registered
|
|
|
|
if _builtin_stages_registered:
|
|
return
|
|
|
|
stage_names = {stage_cls.__name__ for stage_cls in registered_stages}
|
|
if _EXPECTED_STAGE_NAMES.issubset(stage_names):
|
|
_builtin_stages_registered = True
|
|
return
|
|
|
|
for module_path in _BUILTIN_STAGE_MODULES:
|
|
import_module(module_path)
|
|
|
|
_builtin_stages_registered = True
|
|
|
|
|
|
__all__ = ["ensure_builtin_stages_registered"]
|