Skip to content

Commit 2a757a6

Browse files
committed
fix: use conversation message event
1 parent 4c9d4fd commit 2a757a6

File tree

5 files changed

+32
-49
lines changed

5 files changed

+32
-49
lines changed

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[project]
22
name = "uipath-dev"
3-
version = "0.0.10"
3+
version = "0.0.11"
44
description = "UiPath Developer Console"
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.11"
77
dependencies = [
8-
"uipath-core>=0.0.6, <0.1.0",
9-
"uipath-runtime>=0.1.2, <0.2.0",
8+
"uipath-core>=0.0.9, <0.1.0",
9+
"uipath-runtime>=0.1.3, <0.2.0",
1010
"textual>=6.7.1, <7.0.0",
1111
"pyperclip>=1.11.0, <2.0.0",
1212
]

src/uipath/dev/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@ async def handle_chat_input(self, event: Input.Submitted) -> None:
148148
details_panel.current_run.resume_data = {"value": user_text}
149149
else:
150150
msg = get_user_message(user_text)
151-
msg_ev = get_user_message_event(
152-
user_text, conversation_id=details_panel.current_run.id
153-
)
151+
msg_ev = get_user_message_event(user_text)
154152

155153
self._on_chat_for_ui(
156154
ChatMessage(

src/uipath/dev/models/chat.py

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
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

189185
def 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",

src/uipath/dev/models/execution.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from uuid import uuid4
88

99
from rich.text import Text
10-
from uipath.core.chat import UiPathConversationEvent, UiPathConversationMessage
10+
from uipath.core.chat import UiPathConversationMessage, UiPathConversationMessageEvent
1111
from uipath.runtime.errors import UiPathErrorContract
1212

1313
from uipath.dev.models.chat import ChatEvents
@@ -98,4 +98,4 @@ def messages(self) -> list[UiPathConversationMessage]:
9898

9999
def add_event(self, event: Any) -> UiPathConversationMessage | None:
100100
"""Add a conversation event to the run's chat aggregator."""
101-
return self.chat_events.add(cast(UiPathConversationEvent, event))
101+
return self.chat_events.add(cast(UiPathConversationMessageEvent, event))

uv.lock

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)