Files
DDSRem 2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00

59 lines
2.1 KiB
Python

"""
插件配置与运行态刷新依赖。
"""
from app.application.commands import init_commands
from app.application.plugin.config import PluginConfigCommand
from app.application.plugin.routes import register_plugin_api
from app.application.plugin.runtime import get_plugin_manager
from app.application.scheduling import update_plugin_job
from app.runtime.events import eventmanager
from app.schemas.event import PluginDataResetEventData
from app.schemas.types import ChainEventType
def get_plugin_config_command() -> PluginConfigCommand:
"""
组装插件配置更新与重置用例,隔离 API 对运行时写操作的编排。
"""
manager = get_plugin_manager()
def publish_reset(plugin_id: str) -> None:
"""
在清理持久化数据前通知目标插件执行补偿。
"""
eventmanager.send_event(
ChainEventType.PluginDataReset,
PluginDataResetEventData(
plugin_id=plugin_id,
reset_config=True,
reset_data=True,
),
)
def refresh_registrations(plugin_id: str) -> None:
"""
按服务、命令、动态路由顺序刷新插件宿主注册。
"""
update_plugin_job(plugin_id)
init_commands(plugin_id)
register_plugin_api(plugin_id)
return PluginConfigCommand(
save_config=manager.save_plugin_config,
initialize=manager.init_plugin,
stop=manager.stop,
delete_config=manager.delete_plugin_config,
delete_data=manager.delete_plugin_data,
reload_runtime=manager.reload_plugin,
publish_reset=publish_reset,
refresh_registrations=refresh_registrations,
mutation=manager.mutation,
delete_plugin_data_rows=manager.delete_plugin_data_rows,
destroy_own_database=manager.destroy_plugin_own_database,
delete_data_directory=manager.delete_plugin_data_directory,
purge_instance=manager.purge_plugin_instance,
is_clone=manager.is_plugin_clone,
purge_invalid_empty_host=manager.purge_invalid_empty_plugin_instance,
)