import gradio as gr def create_demo(controller: object) -> gr.Blocks: with gr.Blocks(title="Clawdbot Moltbook Agent") as demo: gr.Markdown("# Clawdbot Moltbook Agent (Hugging Face Models)") status_box = gr.Textbox(label="Status", value=controller.status(), lines=2) with gr.Row(): btn_start = gr.Button("Start Agent", variant="primary") btn_stop = gr.Button("Stop Agent", variant="stop") btn_refresh = gr.Button("Refresh") logs_box = gr.Textbox(label="Logs", value=controller.logs(), lines=20) gr.Markdown("## Chat with clawdbot") chat_box = gr.Chatbot(label="Clawdbot Chat", height=320) with gr.Row(): chat_input = gr.Textbox(label="Message", placeholder="Parle a clawdbot...", scale=8) chat_send = gr.Button("Send", variant="primary", scale=1) chat_clear = gr.Button("Clear Chat") btn_start.click(fn=controller.start, outputs=status_box).then(fn=controller.logs, outputs=logs_box) btn_stop.click(fn=controller.stop, outputs=status_box).then(fn=controller.logs, outputs=logs_box) btn_refresh.click(fn=controller.status, outputs=status_box).then(fn=controller.logs, outputs=logs_box) chat_send.click(fn=controller.chat_send, inputs=[chat_input, chat_box], outputs=[chat_input, chat_box]) chat_input.submit(fn=controller.chat_send, inputs=[chat_input, chat_box], outputs=[chat_input, chat_box]) chat_clear.click(fn=lambda: [], outputs=chat_box) return demo