Files
leocrm/app/plugins/builtins/ai_ui_control/contracts.py
T

52 lines
1.3 KiB
Python
Raw Normal View History

"""Public contract for the ai_ui_control plugin.
Exposes the WebSocket manager and UI command schemas for other plugins.
"""
from __future__ import annotations
from app.plugins.builtins.contracts import get_contract_registry
from app.plugins.builtins.ai_ui_control.websocket_manager import AIUIControlWSManager
from app.plugins.builtins.ai_ui_control.schemas import (
UICommand,
UICommandCreate,
UICommandFeedback,
UICommandResponse,
UICommandStatus,
UICommandStatusResponse,
UICommandType,
)
class AiUiControlContract:
"""Public API surface for the ai_ui_control plugin."""
contract_name = "ai_ui_control"
# ─── websocket_manager ───
AIUIControlWSManager = AIUIControlWSManager
# ─── schemas ───
UICommand = UICommand
UICommandCreate = UICommandCreate
UICommandFeedback = UICommandFeedback
UICommandResponse = UICommandResponse
UICommandStatus = UICommandStatus
UICommandStatusResponse = UICommandStatusResponse
UICommandType = UICommandType
# ─── self-registration ───
_contract = AiUiControlContract()
get_contract_registry().register("ai_ui_control", _contract)
__all__ = [
"AiUiControlContract",
"AIUIControlWSManager",
"UICommand",
"UICommandType",
"UICommandStatus",
]