99 UiPathConversationContentPartEndEvent ,
1010 UiPathConversationContentPartEvent ,
1111 UiPathConversationContentPartStartEvent ,
12- UiPathConversationEvent ,
13- UiPathConversationExchangeEvent ,
1412 UiPathConversationMessage ,
1513 UiPathConversationMessageEndEvent ,
1614 UiPathConversationMessageEvent ,
@@ -30,28 +28,26 @@ def __init__(self) -> None:
3028 """Initialize the chat events aggregator."""
3129 self .messages = {}
3230
33- def add (self , event : UiPathConversationEvent ) -> UiPathConversationMessage | None :
31+ def add (
32+ self , event : UiPathConversationMessageEvent
33+ ) -> UiPathConversationMessage | None :
3434 """Process an incoming conversation-level event and return the current message snapshot if applicable."""
35- if not event .exchange or not event .exchange .message :
36- return None
37-
38- ev = event .exchange .message
39- msg = self .messages .get (ev .message_id )
35+ msg = self .messages .get (event .message_id )
4036
4137 if not msg :
4238 msg = UiPathConversationMessage (
43- message_id = ev .message_id ,
44- role = self .get_role (ev ),
39+ message_id = event .message_id ,
40+ role = self .get_role (event ),
4541 content_parts = [],
4642 tool_calls = [],
47- created_at = self .get_timestamp (ev ),
48- updated_at = self .get_timestamp (ev ),
43+ created_at = self .get_timestamp (event ),
44+ updated_at = self .get_timestamp (event ),
4945 )
50- self .messages [ev .message_id ] = msg
46+ self .messages [event .message_id ] = msg
5147
5248 # --- Handle content parts (text, JSON, etc.) ---
53- if ev .content_part :
54- cp_event = ev .content_part
49+ if event .content_part :
50+ cp_event = event .content_part
5551
5652 existing = next (
5753 (
@@ -100,8 +96,8 @@ def add(self, event: UiPathConversationEvent) -> UiPathConversationMessage | Non
10096 existing .is_incomplete = bool (cp_event .end .interrupted )
10197
10298 # --- Handle tool calls ---
103- if ev .tool_call :
104- tc_event = ev .tool_call
99+ if event .tool_call :
100+ tc_event = event .tool_call
105101 existing_tool_call = next (
106102 (
107103 tc
@@ -152,7 +148,7 @@ def add(self, event: UiPathConversationEvent) -> UiPathConversationMessage | Non
152148 cancelled = tc_event .end .cancelled ,
153149 )
154150
155- msg .updated_at = self .get_timestamp (ev )
151+ msg .updated_at = self .get_timestamp (event )
156152
157153 return msg
158154
@@ -187,8 +183,8 @@ def get_user_message(user_text: str) -> UiPathConversationMessage:
187183
188184
189185def get_user_message_event (
190- user_text : str , conversation_id : str , role : str = "user"
191- ) -> UiPathConversationEvent :
186+ user_text : str , role : str = "user"
187+ ) -> UiPathConversationMessageEvent :
192188 """Build a conversation event representing a user message from text input."""
193189 message_id = str (uuid4 ())
194190 content_part_id = str (uuid4 ())
@@ -210,24 +206,13 @@ def get_user_message_event(
210206 end = cp_end ,
211207 )
212208
213- msg_event = UiPathConversationMessageEvent (
209+ return UiPathConversationMessageEvent (
214210 message_id = message_id ,
215211 start = msg_start ,
216212 content_part = content_event ,
217213 end = UiPathConversationMessageEndEvent (),
218214 )
219215
220- exchange_event = UiPathConversationExchangeEvent (
221- exchange_id = str (uuid4 ()),
222- message = msg_event ,
223- )
224-
225- conversation_event = UiPathConversationEvent (
226- exchange = exchange_event , conversation_id = conversation_id
227- )
228-
229- return conversation_event
230-
231216
232217__all__ = [
233218 "ChatEvents" ,
0 commit comments