nothiro/cereal-applicant-api
0
1# packages/api/services/ws_protocol.py2import uuid3import json4 5def make_command(command: str, params: dict) -> tuple[str, str]:6 """Create a command message. Returns (command_id, json_string)."""7 command_id = str(uuid.uuid4())8 return command_id, json.dumps({9 "command": command,10 "command_id": command_id,11 "params": params,12 })13 14# Commands: backend → extension15CMD_NAVIGATE = "navigate" # {url: str}16CMD_SNAPSHOT = "snapshot" # {}17CMD_CLICK = "click" # {selector: str}18CMD_TYPE = "type" # {selector: str, text: str}19CMD_UPLOAD = "upload" # {selector: str, file_path: str}20CMD_EVALUATE = "evaluate" # {expression: str}21CMD_WAIT = "wait" # {ms: int}22 23# Results: extension → backend24RES_RESULT = "result" # {command_id, result: any}25RES_ERROR = "error" # {command_id, error: str}26 