import time from controller import Controller import sys import json class Router: def __init__(self): self.controller = Controller() self.controller.send = self.send_stream # inject send method here def send_response(self, response): print(json.dumps(response)) sys.stdout.flush() def send_stream(self, stream_data): print("__STREAM__" + json.dumps(stream_data)) sys.stdout.flush() def run(self): for line in sys.stdin: if not line.strip(): continue try: message = json.loads(line) method = message.get("method") params = message.get("params", {}) if not hasattr(self.controller, method): self.send_response({"error": f"Method '{method}' not found in ./python/controller.py"}) continue method_to_call = getattr(self.controller, method) # Call method WITHOUT stream_func argument, # controller methods use self.send() internally result = method_to_call(params) self.send_response({"result": result}) except Exception as e: self.send_response({"error": str(e)})