import json DEFAULT_STATE = {"text": "", "image_url": ""} def _read_state(): try: with open("/app/state.json", "r") as f: return json.load(f) except (FileNotFoundError, json.JSONDecodeError): return dict(DEFAULT_STATE) def _write_state(state): with open("/app/state.json", "w") as f: json.dump(state, f) def main(args): route = args.get("route") body = args.get("body") body = json.loads(body) if body else {} if route.startswith("push"): if route == "push_text": current = _read_state() current["text"] = body.get("text", "") _write_state(current) return {"status": "success"} elif route == "push_image_url": current = _read_state() current["image_url"] = body.get("image_url", "") _write_state(current) return {"status": "success"} else: return {"status": "error", "message": "Unknown push route"} elif route.startswith("pull"): current = _read_state() if route == "pull_text": return {"status": "success", "text": current.get("text", "")} elif route == "pull_image_url": return {"status": "success", "image_url": current.get("image_url", "")} elif route == "pull_full": return {"status": "success", "state": current} else: return {"status": "error", "message": "Unknown pull route"}