in src/frontends/streamlit/frontend/streamlit_app.py [0:0]
def display_messages() -> None:
"""Display all messages in the current chat session."""
messages = st.session_state.user_chats[st.session_state["session_id"]]["messages"]
tool_calls_map = {} # Map tool_call_id to tool call input
for i, message in enumerate(messages):
if message["type"] in ["ai", "human"] and message["content"]:
display_chat_message(message, i)
elif message.get("tool_calls"):
# Store each tool call input mapped by its ID
for tool_call in message["tool_calls"]:
tool_calls_map[tool_call["id"]] = tool_call
elif message["type"] == "tool":
# Look up the corresponding tool call input by ID
tool_call_id = message["tool_call_id"]
if tool_call_id in tool_calls_map:
display_tool_output(tool_calls_map[tool_call_id], message)
else:
st.error(f"Could not find tool call input for ID: {tool_call_id}")
else:
st.error(f"Unexpected message type: {message['type']}")
st.write("Full messages list:", messages)
raise ValueError(f"Unexpected message type: {message['type']}")