
    `gj                    p    d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZ ddlmZ ddlmZ g dZy	)
u  Remote 'node host' primitive for the google_meet plugin.

Lets the Meet bot (Playwright + Chrome) run on a different machine than
the hermes-agent gateway. The gateway speaks a small JSON-over-WebSocket
RPC protocol to the remote node; the node wraps the existing
``plugins.google_meet.process_manager`` API.

Topology
--------
    gateway (Linux)  ── ws://mac.local:18789 ──▶  node server (Mac)
                                                  └─ process_manager
                                                     └─ meet_bot (Playwright)

Why: Google sign-in + Chrome profile live on the user's laptop. Running
the bot there reuses that profile without shipping credentials to the
server.

Public surface
--------------
    NodeClient     — gateway-side RPC client (short-lived sync WS per call)
    NodeServer     — long-running server that hosts the bot
    NodeRegistry   — local JSON registry of approved nodes (name → url+token)
    protocol       — message envelope helpers (make_request, encode, decode, ...)
    )annotations)protocol)
NodeClient)VALID_REQUEST_TYPESdecodeencode
make_errormake_requestmake_responsevalidate_request)NodeRegistry)
NodeServer)r   r   r   r   r
   r   r	   r   r   r   r   N)__doc__
__future__r   plugins.google_meet.noder   plugins.google_meet.node.clientr   !plugins.google_meet.node.protocolr   r   r   r	   r
   r   r   !plugins.google_meet.node.registryr   plugins.google_meet.node.serverr   __all__     T/root/.hermes/venv/lib/python3.12/site-packages/plugins/google_meet/node/__init__.py<module>r      s3   2 # - 6   ; 6r   