Skip to content

Commit f07a4c1

Browse files
committed
feat: replace conversation interrupts with tool call confirmation [JAR-8666]
1 parent a99fc06 commit f07a4c1

File tree

13 files changed

+44
-245
lines changed

13 files changed

+44
-245
lines changed

.github/scripts/test_check_version_uniqueness.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import urllib.error
66
from unittest import mock
77

8-
import pytest
98

109
from check_version_uniqueness import (
1110
get_package_info,

packages/uipath-core/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "uipath-core"
3-
version = "0.5.11"
3+
version = "0.5.12"
44
description = "UiPath Core abstractions"
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.11"

packages/uipath-core/src/uipath/core/chat/__init__.py

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,6 @@
7777
UiPathConversationExchangeEvent,
7878
UiPathConversationExchangeStartEvent,
7979
)
80-
from .interrupt import (
81-
InterruptTypeEnum,
82-
UiPathConversationGenericInterruptEndEvent,
83-
UiPathConversationGenericInterruptStartEvent,
84-
UiPathConversationInterrupt,
85-
UiPathConversationInterruptData,
86-
UiPathConversationInterruptEndEvent,
87-
UiPathConversationInterruptEvent,
88-
UiPathConversationInterruptStartEvent,
89-
UiPathConversationToolCallConfirmationEndValue,
90-
UiPathConversationToolCallConfirmationInterruptEndEvent,
91-
UiPathConversationToolCallConfirmationInterruptStartEvent,
92-
UiPathConversationToolCallConfirmationValue,
93-
)
9480
from .message import (
9581
UiPathConversationMessage,
9682
UiPathConversationMessageData,
@@ -108,6 +94,7 @@
10894
)
10995
from .tool import (
11096
UiPathConversationToolCall,
97+
UiPathConversationToolCallConfirmation,
11198
UiPathConversationToolCallData,
11299
UiPathConversationToolCallEndEvent,
113100
UiPathConversationToolCallEvent,
@@ -141,19 +128,6 @@
141128
"UiPathConversationMessageEvent",
142129
"UiPathConversationMessageData",
143130
"UiPathConversationMessage",
144-
# Interrupt
145-
"InterruptTypeEnum",
146-
"UiPathConversationInterruptStartEvent",
147-
"UiPathConversationInterruptEndEvent",
148-
"UiPathConversationInterruptEvent",
149-
"UiPathConversationToolCallConfirmationValue",
150-
"UiPathConversationToolCallConfirmationEndValue",
151-
"UiPathConversationToolCallConfirmationInterruptStartEvent",
152-
"UiPathConversationToolCallConfirmationInterruptEndEvent",
153-
"UiPathConversationGenericInterruptStartEvent",
154-
"UiPathConversationGenericInterruptEndEvent",
155-
"UiPathConversationInterruptData",
156-
"UiPathConversationInterrupt",
157131
# Content
158132
"UiPathConversationContentPartChunkEvent",
159133
"UiPathConversationContentPartStartEvent",
@@ -178,6 +152,7 @@
178152
# Tool
179153
"UiPathConversationToolCallStartEvent",
180154
"UiPathConversationToolCallEndEvent",
155+
"UiPathConversationToolCallConfirmation",
181156
"UiPathConversationToolCallEvent",
182157
"UiPathConversationToolCallResult",
183158
"UiPathConversationToolCallData",

packages/uipath-core/src/uipath/core/chat/interrupt.py

Lines changed: 0 additions & 112 deletions
This file was deleted.

packages/uipath-core/src/uipath/core/chat/message.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,6 @@
1010
UiPathConversationContentPartEvent,
1111
)
1212
from .error import UiPathConversationErrorEvent
13-
from .interrupt import (
14-
UiPathConversationInterrupt,
15-
UiPathConversationInterruptData,
16-
UiPathConversationInterruptEvent,
17-
)
1813
from .tool import (
1914
UiPathConversationToolCall,
2015
UiPathConversationToolCallData,
@@ -53,7 +48,6 @@ class UiPathConversationMessageEvent(BaseModel):
5348
None, alias="contentPart"
5449
)
5550
tool_call: UiPathConversationToolCallEvent | None = Field(None, alias="toolCall")
56-
interrupt: UiPathConversationInterruptEvent | None = None
5751
meta_event: dict[str, Any] | None = Field(None, alias="metaEvent")
5852
error: UiPathConversationErrorEvent | None = Field(None, alias="messageError")
5953

@@ -68,7 +62,6 @@ class UiPathConversationMessageData(BaseModel):
6862
..., alias="contentParts"
6963
)
7064
tool_calls: Sequence[UiPathConversationToolCallData] = Field(..., alias="toolCalls")
71-
interrupts: Sequence[UiPathConversationInterruptData]
7265

7366
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
7467

@@ -86,6 +79,5 @@ class UiPathConversationMessage(UiPathConversationMessageData):
8679
..., alias="contentParts"
8780
)
8881
tool_calls: Sequence[UiPathConversationToolCall] = Field(..., alias="toolCalls")
89-
interrupts: Sequence[UiPathConversationInterrupt]
9082

9183
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)

packages/uipath-core/src/uipath/core/chat/tool.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ class UiPathConversationToolCallStartEvent(BaseModel):
2525
timestamp: str | None = None
2626
input: dict[str, Any] | None = None
2727
metadata: dict[str, Any] | None = Field(None, alias="metaData")
28+
require_confirmation: bool | None = Field(None, alias="requireConfirmation")
29+
input_schema: Any | None = Field(None, alias="inputSchema")
2830

2931
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
3032

@@ -41,6 +43,16 @@ class UiPathConversationToolCallEndEvent(BaseModel):
4143
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
4244

4345

46+
class UiPathConversationToolCallConfirmation(BaseModel):
47+
"""Represents a tool call confirmation (approve/reject)."""
48+
49+
approved: bool
50+
input: Any | None = None
51+
confirmed_at: str | None = Field(None, alias="confirmedAt")
52+
53+
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
54+
55+
4456
class UiPathConversationToolCallEvent(BaseModel):
4557
"""Encapsulates the data related to a tool call event."""
4658

@@ -49,6 +61,9 @@ class UiPathConversationToolCallEvent(BaseModel):
4961
None, alias="startToolCall"
5062
)
5163
end: UiPathConversationToolCallEndEvent | None = Field(None, alias="endToolCall")
64+
confirm: UiPathConversationToolCallConfirmation | None = Field(
65+
None, alias="confirmToolCall"
66+
)
5267
meta_event: dict[str, Any] | None = Field(None, alias="metaEvent")
5368
error: UiPathConversationErrorEvent | None = Field(None, alias="toolCallError")
5469

@@ -61,6 +76,9 @@ class UiPathConversationToolCallData(BaseModel):
6176
name: str
6277
input: dict[str, Any] | None = None
6378
result: UiPathConversationToolCallResult | None = None
79+
require_confirmation: bool | None = Field(None, alias="requireConfirmation")
80+
input_schema: Any | None = Field(None, alias="inputSchema")
81+
confirmation: UiPathConversationToolCallConfirmation | None = None
6482

6583
model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
6684

packages/uipath-core/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/uipath-platform/tests/services/test_conversations_service.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ async def test_retrieve_message(
3838
"role": "assistant",
3939
"contentParts": [],
4040
"toolCalls": [],
41-
"interrupts": [],
4241
"createdAt": "2024-01-01T00:00:00Z",
4342
"updatedAt": "2024-01-01T00:00:00Z",
4443
},
@@ -95,7 +94,6 @@ async def test_retrieve_message_with_content_parts(
9594
}
9695
],
9796
"toolCalls": [],
98-
"interrupts": [],
9997
"createdAt": "2024-01-01T00:00:00Z",
10098
"updatedAt": "2024-01-01T00:00:00Z",
10199
},
@@ -145,7 +143,6 @@ async def test_retrieve_message_with_tool_calls(
145143
"updatedAt": "2024-01-01T00:00:00Z",
146144
}
147145
],
148-
"interrupts": [],
149146
"createdAt": "2024-01-01T00:00:00Z",
150147
"updatedAt": "2024-01-01T00:00:00Z",
151148
},

packages/uipath-platform/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/uipath/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "uipath"
3-
version = "2.10.48"
3+
version = "2.10.49"
44
description = "Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools."
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.11"

0 commit comments

Comments
 (0)