"""Shared base for the ``IrisAdapter`` mixin classes. ``adapter.IrisAdapter`` is assembled from several small mixin classes (``inbound``, ``tool_frames``, ``push_frames``, ...) plus the core state and lifecycle in ``adapter`` itself. Each mixin references instance attributes and helper methods that are defined in the core class or in a *sibling* mixin, so a type checker analysing one mixin in isolation cannot see them. This base declares those shared names (as ``Any``) so static analysis resolves ``self.`` inside every mixin. The annotations carry no runtime effect; the real values are set in ``IrisAdapter.__init__`` and the real methods live in the core class / sibling mixins. """ from typing import Any class IrisAdapterBase: """Declaration-only base for the ``IrisAdapter`` mixins (see module doc).""" # -- shared state (set in ``IrisAdapter.__init__``) ------------------- _channels: Any _devices: Any _http_server: Any _media: Any _outbox: Any _push: Any _active_lane: Any _last_message_id: Any _last_push_at: Any _pending_push: Any _pending_pickers: Any _prune_notified_at: Any _typing_turns: Any home_channel: Any home_channel_name: Any # -- shared helpers (core class or sibling mixins) -------------------- _broadcast_both: Any _broadcast_or_log: Any _channel_name: Any _maybe_push: Any _offer_media: Any _parse_tool_line_or_block: Any _push_summary: Any _reply: Any _schedule_thread_title_upgrade: Any # -- provided by ``BasePlatformAdapter`` / core ----------------------- build_source: Any handle_message: Any send: Any send_image: Any send_slash_confirm: Any