def__init__(self,level:int,conversation_id:str,conversation_message:ConversationMessage,read_only:bool=False,)->None:"""Initialize the MesopGUIMessageVisitor object. Args: level (int): The level of the message. conversation_id (str): The ID of the conversation. conversation_message (ConversationMessage): Conversation message that wraps the visited io_message read_only (bool): Input messages are disabled in read only mode """self._level=levelself._conversation_id=conversation_idself._readonly=read_onlyself._conversation_message=conversation_message
defvisit_suggested_function_call(self,message:SuggestedFunctionCall)->Optional[str]:base_color="#8ff"withme.box(style=me.Style(background=base_color,padding=me.Padding.all(16),align_self="flex-start",width="95%",border_radius=16,margin=me.Margin.symmetric(vertical=16),)):self._header(message,base_color,title="Suggested Function Call")withme.box():me.text(message.function_name)me.markdown(json.dumps(message.arguments))return""
defvisit_text_input(self,message:TextInput)->str:defon_input(feedback:str)->Iterator[None]:self._conversation_message.feedback=[feedback]self._conversation_message.feedback_completed=Trueyield fromself._provide_feedback(feedback)defvalue_if_completed()->Optional[str]:message=self._conversation_messagereturnmessage.feedback[0]ifmessage.feedback_completedelseNonebase_color="#dff"prompt=message.promptifmessage.promptelse"Please enter a value"ifmessage.suggestions:suggestions=",".join(suggestionforsuggestioninmessage.suggestions)prompt+="\n Suggestions: "+suggestionswithme.box(style=me.Style(background=base_color,padding=me.Padding.all(16),border_radius=16,align_self="flex-end",width="95%",margin=me.Margin.symmetric(vertical=16),)):self._header(message,base_color,title="Input requested")me.markdown(prompt)input_text(on_input,"prompt",disabled=self._readonlyorself._has_feedback(),value=value_if_completed(),)return""