| """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, ...) | |
| """ | |
| from __future__ import annotations | |
| from plugins.google_meet.node import protocol | |
| from plugins.google_meet.node.client import NodeClient | |
| from plugins.google_meet.node.protocol import ( | |
| VALID_REQUEST_TYPES, | |
| decode, | |
| encode, | |
| make_error, | |
| make_request, | |
| make_response, | |
| validate_request, | |
| ) | |
| from plugins.google_meet.node.registry import NodeRegistry | |
| from plugins.google_meet.node.server import NodeServer | |
| __all__ = [ | |
| "NodeClient", | |
| "NodeServer", | |
| "NodeRegistry", | |
| "protocol", | |
| "make_request", | |
| "make_response", | |
| "make_error", | |
| "encode", | |
| "decode", | |
| "validate_request", | |
| "VALID_REQUEST_TYPES", | |
| ] | |