uipath 2.1.36__py3-none-any.whl → 2.1.37__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. uipath/_cli/_dev/_terminal/__init__.py +70 -31
  2. uipath/_cli/_dev/_terminal/_components/_chat.py +98 -0
  3. uipath/_cli/_dev/_terminal/_components/_details.py +28 -15
  4. uipath/_cli/_dev/_terminal/_components/_history.py +16 -0
  5. uipath/_cli/_dev/_terminal/_models/_execution.py +16 -3
  6. uipath/_cli/_dev/_terminal/_models/_messages.py +3 -2
  7. uipath/_cli/_dev/_terminal/_styles/terminal.tcss +29 -2
  8. uipath/_cli/_dev/_terminal/_utils/_chat.py +238 -0
  9. uipath/_cli/_dev/_terminal/{_traces → _utils}/_logger.py +3 -3
  10. uipath/_cli/_runtime/_contracts.py +14 -0
  11. uipath/_cli/cli_dev.py +31 -7
  12. uipath/_cli/cli_init.py +3 -1
  13. uipath/agent/conversation/__init__.py +135 -0
  14. uipath/agent/conversation/async_stream.py +54 -0
  15. uipath/agent/conversation/citation.py +70 -0
  16. uipath/agent/conversation/content.py +81 -0
  17. uipath/agent/conversation/conversation.py +49 -0
  18. uipath/agent/conversation/event.py +56 -0
  19. uipath/agent/conversation/exchange.py +61 -0
  20. uipath/agent/conversation/message.py +59 -0
  21. uipath/agent/conversation/meta.py +11 -0
  22. uipath/agent/conversation/tool.py +64 -0
  23. {uipath-2.1.36.dist-info → uipath-2.1.37.dist-info}/METADATA +2 -1
  24. {uipath-2.1.36.dist-info → uipath-2.1.37.dist-info}/RECORD +28 -17
  25. uipath/_cli/_dev/_terminal/_components/_resume.py +0 -35
  26. /uipath/_cli/_dev/_terminal/{_traces → _utils}/_exporter.py +0 -0
  27. {uipath-2.1.36.dist-info → uipath-2.1.37.dist-info}/WHEEL +0 -0
  28. {uipath-2.1.36.dist-info → uipath-2.1.37.dist-info}/entry_points.txt +0 -0
  29. {uipath-2.1.36.dist-info → uipath-2.1.37.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,81 @@
1
+ """Message content part events."""
2
+
3
+ from typing import Any, Dict, List, Optional, Union
4
+
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+ from .citation import UiPathConversationCitation, UiPathConversationCitationEvent
8
+
9
+
10
+ class UiPathConversationContentPartChunkEvent(BaseModel):
11
+ """Contains a chunk of a message content part."""
12
+
13
+ content_part_sequence: Optional[int] = Field(None, alias="contentPartSequence")
14
+ data: Optional[str] = None
15
+ citation: Optional[UiPathConversationCitationEvent] = None
16
+
17
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
18
+
19
+
20
+ class UiPathConversationContentPartStartEvent(BaseModel):
21
+ """Signals the start of a message content part."""
22
+
23
+ mime_type: str = Field(..., alias="mimeType")
24
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
25
+
26
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
27
+
28
+
29
+ class UiPathConversationContentPartEndEvent(BaseModel):
30
+ """Signals the end of a message content part."""
31
+
32
+ last_chunk_content_part_sequence: Optional[int] = Field(
33
+ None, alias="lastChunkContentPartSequence"
34
+ )
35
+ interrupted: Optional[Dict[str, Any]] = None
36
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
37
+
38
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
39
+
40
+
41
+ class UiPathConversationContentPartEvent(BaseModel):
42
+ """Encapsulates events related to message content parts."""
43
+
44
+ content_part_id: str = Field(..., alias="contentPartId")
45
+ start: Optional[UiPathConversationContentPartStartEvent] = None
46
+ end: Optional[UiPathConversationContentPartEndEvent] = None
47
+ chunk: Optional[UiPathConversationContentPartChunkEvent] = None
48
+ meta_event: Optional[Dict[str, Any]] = Field(None, alias="metaEvent")
49
+
50
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
51
+
52
+
53
+ class UiPathInlineValue(BaseModel):
54
+ """Used when a value is small enough to be returned inline."""
55
+
56
+ inline: Any
57
+
58
+
59
+ class UiPathExternalValue(BaseModel):
60
+ """Used when a value is too large to be returned inline."""
61
+
62
+ url: str
63
+ byte_count: Optional[int] = Field(None, alias="byteCount")
64
+
65
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
66
+
67
+
68
+ InlineOrExternal = Union[UiPathInlineValue, UiPathExternalValue]
69
+
70
+
71
+ class UiPathConversationContentPart(BaseModel):
72
+ """Represents a single part of message content."""
73
+
74
+ content_part_id: str = Field(..., alias="contentPartId")
75
+ mime_type: str = Field(..., alias="mimeType")
76
+ data: InlineOrExternal
77
+ citations: Optional[List[UiPathConversationCitation]] = None
78
+ is_transcript: Optional[bool] = Field(None, alias="isTranscript")
79
+ is_incomplete: Optional[bool] = Field(None, alias="isIncomplete")
80
+
81
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -0,0 +1,49 @@
1
+ """Conversation-level events and capabilities."""
2
+
3
+ from typing import Any, Dict, List, Optional
4
+
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+
8
+ class UiPathConversationCapabilities(BaseModel):
9
+ """Describes the capabilities of a conversation participant."""
10
+
11
+ async_input_stream_emitter: Optional[bool] = Field(
12
+ None, alias="asyncInputStreamEmitter"
13
+ )
14
+ async_input_stream_handler: Optional[bool] = Field(
15
+ None, alias="asyncInputStreamHandler"
16
+ )
17
+ async_tool_call_emitter: Optional[bool] = Field(None, alias="asyncToolCallEmitter")
18
+ async_tool_call_handler: Optional[bool] = Field(None, alias="asyncToolCallHandler")
19
+ mime_types_emitted: Optional[List[str]] = Field(None, alias="mimeTypesEmitted")
20
+ mime_types_handled: Optional[List[str]] = Field(None, alias="mimeTypesHandled")
21
+
22
+ model_config = ConfigDict(
23
+ validate_by_name=True, validate_by_alias=True, extra="allow"
24
+ )
25
+
26
+
27
+ class UiPathConversationStartEvent(BaseModel):
28
+ """Signals the start of a conversation event stream."""
29
+
30
+ capabilities: Optional[UiPathConversationCapabilities] = None
31
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
32
+
33
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
34
+
35
+
36
+ class UiPathConversationStartedEvent(BaseModel):
37
+ """Signals the acceptance of the start of a conversation."""
38
+
39
+ capabilities: Optional[UiPathConversationCapabilities] = None
40
+
41
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
42
+
43
+
44
+ class UiPathConversationEndEvent(BaseModel):
45
+ """Signals the end of a conversation event stream."""
46
+
47
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
48
+
49
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -0,0 +1,56 @@
1
+ """The top-level event type representing an event in a conversation.
2
+
3
+ This is the root container for all other event subtypes (conversation start,
4
+ exchanges, messages, content, citations, tool calls, and async streams).
5
+ """
6
+
7
+ from typing import Optional
8
+
9
+ from pydantic import BaseModel, ConfigDict, Field
10
+
11
+ from .async_stream import UiPathConversationAsyncInputStreamEvent
12
+ from .conversation import (
13
+ UiPathConversationEndEvent,
14
+ UiPathConversationStartedEvent,
15
+ UiPathConversationStartEvent,
16
+ )
17
+ from .exchange import UiPathConversationExchangeEvent
18
+ from .meta import UiPathConversationMetaEvent
19
+ from .tool import UiPathConversationToolCallEvent
20
+
21
+
22
+ class UiPathConversationEvent(BaseModel):
23
+ """The top-level event type representing an event in a conversation.
24
+
25
+ This is the root container for all other event subtypes (conversation start,
26
+ exchanges, messages, content, citations, tool calls, and async streams).
27
+ """
28
+
29
+ """A globally unique identifier for conversation to which the other sub-event and data properties apply."""
30
+ conversation_id: str = Field(..., alias="conversationId")
31
+ """Signals the start of an event stream concerning a conversation. This event does NOT necessarily mean this is a
32
+ brand new conversation. It may be a continuation of an existing conversation.
33
+ """
34
+ start: Optional[UiPathConversationStartEvent] = None
35
+ """Signals the acceptance of the start of a conversation."""
36
+ started: Optional[UiPathConversationStartedEvent] = None
37
+ """Signals the end of a conversation event stream. This does NOT mean the conversation is over. A new event stream for
38
+ the conversation could be started in the future.
39
+ """
40
+ end: Optional[UiPathConversationEndEvent] = None
41
+ """Encapsulates sub-events related to an exchange within a conversation."""
42
+ exchange: Optional[UiPathConversationExchangeEvent] = None
43
+ """Encapsulates sub-events related to an asynchronous input stream."""
44
+ async_input_stream: Optional[UiPathConversationAsyncInputStreamEvent] = Field(
45
+ None, alias="asyncInputStream"
46
+ )
47
+ """Optional async tool call sub-event. This feature is not supported by all LLMs. Most tool calls are scoped to a
48
+ message, and use the toolCall and toolResult properties defined by the ConversationMessage type.
49
+ """
50
+ async_tool_call: Optional[UiPathConversationToolCallEvent] = Field(
51
+ None, alias="asyncToolCall"
52
+ )
53
+ """Allows additional events to be sent in the context of the enclosing event stream."""
54
+ meta_event: Optional[UiPathConversationMetaEvent] = Field(None, alias="metaEvent")
55
+
56
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -0,0 +1,61 @@
1
+ """Exchange-level events.
2
+
3
+ Characteristics of an Exchange:
4
+ It groups together messages that belong to the same turn of conversation.
5
+
6
+ Example:
7
+ User says something → one message inside the exchange.
8
+ LLM responds → one or more messages in the same exchange.
9
+
10
+ Each exchange has:
11
+ A start event (signals the beginning of the turn).
12
+ An end event (signals the end of the turn).
13
+ Messages that happened in between.
14
+
15
+ An exchange can include multiple messages (e.g. LLM streaming several outputs, or user message + assistant + tool outputs).
16
+ Exchanges are ordered within a conversation via conversation_sequence.
17
+ """
18
+
19
+ from typing import Any, Dict, List, Optional
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field
22
+
23
+ from .message import UiPathConversationMessage, UiPathConversationMessageEvent
24
+
25
+
26
+ class UiPathConversationExchangeStartEvent(BaseModel):
27
+ """Signals the start of an exchange of messages within a conversation."""
28
+
29
+ conversation_sequence: Optional[int] = Field(None, alias="conversationSequence")
30
+ metadata: Optional[Dict[str, Any]] = None
31
+
32
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
33
+
34
+
35
+ class UiPathConversationExchangeEndEvent(BaseModel):
36
+ """Signals the end of an exchange of messages within a conversation."""
37
+
38
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
39
+
40
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
41
+
42
+
43
+ class UiPathConversationExchangeEvent(BaseModel):
44
+ """Encapsulates a single exchange in the conversation."""
45
+
46
+ exchange_id: str = Field(..., alias="exchangeId")
47
+ start: Optional[UiPathConversationExchangeStartEvent] = None
48
+ end: Optional[UiPathConversationExchangeEndEvent] = None
49
+ message: Optional[UiPathConversationMessageEvent] = None
50
+ meta_event: Optional[Dict[str, Any]] = Field(None, alias="metaEvent")
51
+
52
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
53
+
54
+
55
+ class UiPathConversationExchange(BaseModel):
56
+ """Represents a group of related messages (one turn of conversation)."""
57
+
58
+ exchange_id: str = Field(..., alias="exchangeId")
59
+ messages: List[UiPathConversationMessage]
60
+
61
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -0,0 +1,59 @@
1
+ """Message-level events."""
2
+
3
+ from typing import Any, Dict, List, Optional
4
+
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+ from .content import UiPathConversationContentPart, UiPathConversationContentPartEvent
8
+ from .tool import UiPathConversationToolCall, UiPathConversationToolCallEvent
9
+
10
+
11
+ class UiPathConversationMessageStartEvent(BaseModel):
12
+ """Signals the start of a message within an exchange."""
13
+
14
+ exchange_sequence: Optional[int] = Field(None, alias="exchangeSequence")
15
+ timestamp: Optional[str] = None
16
+ role: str
17
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
18
+
19
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
20
+
21
+
22
+ class UiPathConversationMessageEndEvent(BaseModel):
23
+ """Signals the end of a message."""
24
+
25
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
26
+
27
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
28
+
29
+
30
+ class UiPathConversationMessageEvent(BaseModel):
31
+ """Encapsulates sub-events related to a message."""
32
+
33
+ message_id: str = Field(..., alias="messageId")
34
+ start: Optional[UiPathConversationMessageStartEvent] = None
35
+ end: Optional[UiPathConversationMessageEndEvent] = None
36
+ content_part: Optional[UiPathConversationContentPartEvent] = Field(
37
+ None, alias="contentPart"
38
+ )
39
+ tool_call: Optional[UiPathConversationToolCallEvent] = Field(None, alias="toolCall")
40
+ meta_event: Optional[Dict[str, Any]] = Field(None, alias="metaEvent")
41
+
42
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
43
+
44
+
45
+ class UiPathConversationMessage(BaseModel):
46
+ """Represents a single message within an exchange."""
47
+
48
+ message_id: str = Field(..., alias="messageId")
49
+ role: str
50
+ content_parts: Optional[List[UiPathConversationContentPart]] = Field(
51
+ None, alias="contentParts"
52
+ )
53
+ tool_calls: Optional[List[UiPathConversationToolCall]] = Field(
54
+ None, alias="toolCalls"
55
+ )
56
+ created_at: str = Field(..., alias="createdAt")
57
+ updated_at: str = Field(..., alias="updatedAt")
58
+
59
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -0,0 +1,11 @@
1
+ """Meta events allow additional extensible data."""
2
+
3
+ from pydantic import BaseModel, ConfigDict
4
+
5
+
6
+ class UiPathConversationMetaEvent(BaseModel):
7
+ """Arbitrary metadata events in the conversation schema."""
8
+
9
+ model_config = ConfigDict(
10
+ validate_by_name=True, validate_by_alias=True, extra="allow"
11
+ )
@@ -0,0 +1,64 @@
1
+ """Tool call events."""
2
+
3
+ from typing import Any, Dict, Optional
4
+
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+ from .content import InlineOrExternal
8
+
9
+
10
+ class UiPathConversationToolCallResult(BaseModel):
11
+ """Represents the result of a tool call execution."""
12
+
13
+ timestamp: Optional[str] = None
14
+ value: Optional[InlineOrExternal] = None
15
+ is_error: Optional[bool] = Field(None, alias="isError")
16
+ cancelled: Optional[bool] = None
17
+
18
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
19
+
20
+
21
+ class UiPathConversationToolCall(BaseModel):
22
+ """Represents a call to an external tool or function within a message."""
23
+
24
+ tool_call_id: str = Field(..., alias="toolCallId")
25
+ name: str
26
+ arguments: Optional[InlineOrExternal] = None
27
+ timestamp: Optional[str] = None
28
+ result: Optional[UiPathConversationToolCallResult] = None
29
+
30
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
31
+
32
+
33
+ class UiPathConversationToolCallStartEvent(BaseModel):
34
+ """Signals the start of a tool call."""
35
+
36
+ tool_name: str = Field(..., alias="toolName")
37
+ timestamp: Optional[str] = None
38
+ arguments: Optional[InlineOrExternal] = None
39
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
40
+
41
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
42
+
43
+
44
+ class UiPathConversationToolCallEndEvent(BaseModel):
45
+ """Signals the end of a tool call."""
46
+
47
+ timestamp: Optional[str] = None
48
+ result: Optional[Any] = None
49
+ is_error: Optional[bool] = Field(None, alias="isError")
50
+ cancelled: Optional[bool] = None
51
+ meta_data: Optional[Dict[str, Any]] = Field(None, alias="metaData")
52
+
53
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
54
+
55
+
56
+ class UiPathConversationToolCallEvent(BaseModel):
57
+ """Encapsulates the data related to a tool call event."""
58
+
59
+ tool_call_id: str = Field(..., alias="toolCallId")
60
+ start: Optional[UiPathConversationToolCallStartEvent] = None
61
+ end: Optional[UiPathConversationToolCallEndEvent] = None
62
+ meta_event: Optional[Dict[str, Any]] = Field(None, alias="metaEvent")
63
+
64
+ model_config = ConfigDict(validate_by_name=True, validate_by_alias=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.1.36
3
+ Version: 2.1.37
4
4
  Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
5
5
  Project-URL: Homepage, https://uipath.com
6
6
  Project-URL: Repository, https://github.com/UiPath/uipath-python
@@ -21,6 +21,7 @@ Requires-Dist: opentelemetry-instrumentation>=0.52b1
21
21
  Requires-Dist: opentelemetry-sdk>=1.31.1
22
22
  Requires-Dist: pathlib>=1.0.1
23
23
  Requires-Dist: pydantic>=2.11.1
24
+ Requires-Dist: pyperclip>=1.9.0
24
25
  Requires-Dist: python-dotenv>=1.0.1
25
26
  Requires-Dist: rich>=13.0.0
26
27
  Requires-Dist: tenacity>=9.0.0
@@ -8,9 +8,9 @@ uipath/_cli/README.md,sha256=GLtCfbeIKZKNnGTCsfSVqRQ27V1btT1i2bSAyW_xZl4,474
8
8
  uipath/_cli/__init__.py,sha256=kf4GINkunFGMZkTk2Z4f1Q3-OsxpNnV6u_9BsBt1i0E,2229
9
9
  uipath/_cli/cli_auth.py,sha256=SfE3wiQZ00f_iv4NQfRpLqV4KVnkUhq8J-a7reg247A,7773
10
10
  uipath/_cli/cli_deploy.py,sha256=KPCmQ0c_NYD5JofSDao5r6QYxHshVCRxlWDVnQvlp5w,645
11
- uipath/_cli/cli_dev.py,sha256=VRcVMeEqZE4TPf_l5wsLV0Iuhxx7DWqGWsdoLowk_ho,1247
11
+ uipath/_cli/cli_dev.py,sha256=JRzXrAUM_sj6FCVG-VveYADTwR8yQ330SgYs3LgbvJc,2104
12
12
  uipath/_cli/cli_eval.py,sha256=Hze4PwW4smivmSZg_eGDHr3pZ6LHxX5MkTJuXB2xpxs,3598
13
- uipath/_cli/cli_init.py,sha256=LPpcKcuoYDAb1K8N-51z_HMlV9slqjhKr7EWC_hL4U0,5963
13
+ uipath/_cli/cli_init.py,sha256=ls577uNm2zWccknIhtVFS3ah2ds0QSy2_TgMp6z7Wt4,6049
14
14
  uipath/_cli/cli_invoke.py,sha256=zuy3hCn5wfOcd_qYJDmfMB-5qtYS-GENprYXkQN29No,3836
15
15
  uipath/_cli/cli_new.py,sha256=9378NYUBc9j-qKVXV7oja-jahfJhXBg8zKVyaon7ctY,2102
16
16
  uipath/_cli/cli_pack.py,sha256=NmwZTfwZ2fURiHyiX1BM0juAtBOjPB1Jmcpu-rD7p-4,11025
@@ -31,17 +31,18 @@ uipath/_cli/_auth/auth_config.json,sha256=UnAhdum8phjuZaZKE5KLp0IcPCbIltDEU1M_G8
31
31
  uipath/_cli/_auth/index.html,sha256=uGK0CDTP8Rys_p4O_Pbd2x4tz0frKNVcumjrXnal5Nc,22814
32
32
  uipath/_cli/_auth/localhost.crt,sha256=oGl9oLLOiouHubAt39B4zEfylFvKEtbtr_43SIliXJc,1226
33
33
  uipath/_cli/_auth/localhost.key,sha256=X31VYXD8scZtmGA837dGX5l6G-LXHLo5ItWJhZXaz3c,1679
34
- uipath/_cli/_dev/_terminal/__init__.py,sha256=08aBD5-I6rcO9Sjp3sWWlinoRvHpa67Ss7yawXBhkBI,10136
35
- uipath/_cli/_dev/_terminal/_components/_details.py,sha256=kgTWoBwr5f509gUmfYZzCmxJ86BpfbNhWT5oCf7rHoM,16377
36
- uipath/_cli/_dev/_terminal/_components/_history.py,sha256=-0lystNcVUCUbHgEUVQ-CdxAfV3_X5uhjxWevxs19Z0,2054
34
+ uipath/_cli/_dev/_terminal/__init__.py,sha256=DEMtK-QewBmXXB9SsQqcjGtHbdIqwDhAl3tVhlb7Yv0,11699
35
+ uipath/_cli/_dev/_terminal/_components/_chat.py,sha256=VNsHKDO6QAaHfSWPClztcospkYp2913DC0qh0kYUGyA,3163
36
+ uipath/_cli/_dev/_terminal/_components/_details.py,sha256=_S3-GgT5zERPI1wjXUwrKusanyqs5Ex9B9FUOXCEwf8,16921
37
+ uipath/_cli/_dev/_terminal/_components/_history.py,sha256=dcT9tohEwpUaLGi7VWu5d-mDIF45UxFzN2Yvdf5N-eM,2691
37
38
  uipath/_cli/_dev/_terminal/_components/_json_input.py,sha256=MPkaeiA5KfkwJZKuNJ02hQksVtluZlmJv9nLRRAWYQI,592
38
39
  uipath/_cli/_dev/_terminal/_components/_new.py,sha256=jxDFOQ6NCzTgesgx3srRr45ij1FqdICAB0uo6vXeh4I,4614
39
- uipath/_cli/_dev/_terminal/_components/_resume.py,sha256=LW5TlgmhNjTv2nHLjGRmgzgtWvzuTr1T3WdPNujsLmo,1083
40
- uipath/_cli/_dev/_terminal/_models/_execution.py,sha256=_tI01TX5W1GwG6OXBDDd28zUn-qp_Bf5hUaUqwMBOYo,2110
41
- uipath/_cli/_dev/_terminal/_models/_messages.py,sha256=TR7D1yLL0PNYGUMts_cGLgF8zj67urNwuX-5xSGqWgM,1762
42
- uipath/_cli/_dev/_terminal/_styles/terminal.tcss,sha256=t7PFpvwZ_TitoOCUQjW5_VB5AHHXg6QHxB-cB8ZXj6Q,2707
43
- uipath/_cli/_dev/_terminal/_traces/_exporter.py,sha256=oI6D_eMwrh_2aqDYUh4GrJg8VLGrLYhDahR-_o0uJns,4144
44
- uipath/_cli/_dev/_terminal/_traces/_logger.py,sha256=Dmfba3X9GmAZtXpzu_KDsleRCrpVo8_y-W6jizwFYq0,880
40
+ uipath/_cli/_dev/_terminal/_models/_execution.py,sha256=jp-0lRtHqNDAuk7KKPVZ5CUqlFLfuKGZT_GTwd0LtQs,2615
41
+ uipath/_cli/_dev/_terminal/_models/_messages.py,sha256=p66MHUi_SS30CQWXtiwydybMKBQrtZLXNfNUD6TdK1w,1832
42
+ uipath/_cli/_dev/_terminal/_styles/terminal.tcss,sha256=WeJ0pg4MpNR9x6VbHWW5K8I0IFNuxhfZ1pHMYR9zZg4,3098
43
+ uipath/_cli/_dev/_terminal/_utils/_chat.py,sha256=ELv9ZmvYLrEBRIDcA-a_PCkOg1YCq7LSiJt-Pr-9C5I,8634
44
+ uipath/_cli/_dev/_terminal/_utils/_exporter.py,sha256=oI6D_eMwrh_2aqDYUh4GrJg8VLGrLYhDahR-_o0uJns,4144
45
+ uipath/_cli/_dev/_terminal/_utils/_logger.py,sha256=jeNShEED27cNIHTe_NNx-2kUiXpSLTmi0onM6tVkqRM,888
45
46
  uipath/_cli/_evals/evaluation_service.py,sha256=zqYRB-tZpTTFqMctjIpEli3joIlmrz3dCVZsxekxIps,22053
46
47
  uipath/_cli/_evals/progress_reporter.py,sha256=m1Dio1vG-04nFTFz5ijM_j1dhudlgOzQukmTkkg6wS4,11490
47
48
  uipath/_cli/_evals/_evaluators/__init__.py,sha256=jD7KNLjbsUpsESFXX11eW2MEPXDNuPp2-t-IPB-inlM,734
@@ -56,7 +57,7 @@ uipath/_cli/_evals/_models/__init__.py,sha256=Ewjp3u2YeTH2MmzY9LWf7EIbAoIf_nW9fM
56
57
  uipath/_cli/_evals/_models/_evaluation_set.py,sha256=tVHykSget-G3sOCs9bSchMYUTpFqzXVlYYbY8L9SI0c,1518
57
58
  uipath/_cli/_evals/_models/_evaluators.py,sha256=l57NEVyYmzSKuoIXuGkE94Br01hAMg35fiS2MlTkaQM,2115
58
59
  uipath/_cli/_push/sw_file_handler.py,sha256=NTXITAs0qzmQyFnnSbq8HW16TGxzkqtgs4tWS1H5A2U,18090
59
- uipath/_cli/_runtime/_contracts.py,sha256=ays9ki4PQjdiy_z_kuR_Z0mHYVy_MZ6DvBG6g_thW-w,20818
60
+ uipath/_cli/_runtime/_contracts.py,sha256=X8lev5v4XN2sOIwKWE7VXpFgfNhQjh9UGGbgogo1llE,21246
60
61
  uipath/_cli/_runtime/_escalation.py,sha256=x3vI98qsfRA-fL_tNkRVTFXioM5Gv2w0GFcXJJ5eQtg,7981
61
62
  uipath/_cli/_runtime/_hitl.py,sha256=aexwe0dIXvh6SlVS1jVnO_aGZc6e3gLsmGkCyha5AHo,11300
62
63
  uipath/_cli/_runtime/_logging.py,sha256=MGklGKPjYKjs7J5Jy9eplA9zCDsdtEbkZdCbTwgut_4,8311
@@ -103,6 +104,16 @@ uipath/_utils/_ssl_context.py,sha256=xSYitos0eJc9cPHzNtHISX9PBvL6D2vas5G_GiBdLp8
103
104
  uipath/_utils/_url.py,sha256=-4eluSrIZCUlnQ3qU17WPJkgaC2KwF9W5NeqGnTNGGo,2512
104
105
  uipath/_utils/_user_agent.py,sha256=pVJkFYacGwaQBomfwWVAvBQgdBUo62e4n3-fLIajWUU,563
105
106
  uipath/_utils/constants.py,sha256=Rqclg9wVkXbpzKPCXKit5_P3tik9J1y8T80h9W2VxLE,1059
107
+ uipath/agent/conversation/__init__.py,sha256=5hK-Iz131mnd9m6ANnpZZffxXZLVFDQ9GTg5z9ik1oQ,5265
108
+ uipath/agent/conversation/async_stream.py,sha256=BA_8uU1DgE3VpU2KkJj0rkI3bAHLk_ZJKsajR0ipMpo,2055
109
+ uipath/agent/conversation/citation.py,sha256=42dGv-wiYx3Lt7MPuPCFTkjAlSADFSzjyNXuZHdxqvo,2253
110
+ uipath/agent/conversation/content.py,sha256=keWAEuvhrn9WIYt0tjo1tjN1llsjMYbgpd8eunGuOLM,2846
111
+ uipath/agent/conversation/conversation.py,sha256=9KT7KPspefaio4ptlDjVtdOBBwXFWh_kyQO6HUX79z0,1777
112
+ uipath/agent/conversation/event.py,sha256=mK_wBYm-BkaG6FB9RJfHnHTOht4mI6laYH5bybfAnhg,2684
113
+ uipath/agent/conversation/exchange.py,sha256=nuk1tEMBHc_skrraT17d8U6AtyJ3h07ExGQWWoerHgU,2245
114
+ uipath/agent/conversation/message.py,sha256=1ZkEs146s79TrOAWCQwzBAEJvjAu4lQBpJ64tKXDgGE,2142
115
+ uipath/agent/conversation/meta.py,sha256=3t0eS9UHoAPHre97QTUeVbjDhnMX4zj4-qG6ju0B8wY,315
116
+ uipath/agent/conversation/tool.py,sha256=ol8XI8AVd-QNn5auXNBPcCzOkh9PPFtL7hTK3kqInkU,2191
106
117
  uipath/models/__init__.py,sha256=d_DkK1AtRUetM1t2NrH5UKgvJOBiynzaKnK5pMY7aIc,1289
107
118
  uipath/models/action_schema.py,sha256=lKDhP7Eix23fFvfQrqqNmSOiPyyNF6tiRpUu0VZIn_M,714
108
119
  uipath/models/actions.py,sha256=ekSH4YUQR4KPOH-heBm9yOgOfirndx0In4_S4VYWeEU,2993
@@ -128,8 +139,8 @@ uipath/tracing/_traced.py,sha256=qeVDrds2OUnpdUIA0RhtF0kg2dlAZhyC1RRkI-qivTM,185
128
139
  uipath/tracing/_utils.py,sha256=wJRELaPu69iY0AhV432Dk5QYf_N_ViRU4kAUG1BI1ew,10384
129
140
  uipath/utils/__init__.py,sha256=VD-KXFpF_oWexFg6zyiWMkxl2HM4hYJMIUDZ1UEtGx0,105
130
141
  uipath/utils/_endpoints_manager.py,sha256=iRTl5Q0XAm_YgcnMcJOXtj-8052sr6jpWuPNz6CgT0Q,8408
131
- uipath-2.1.36.dist-info/METADATA,sha256=9oQluTGWpLpfG820opKPr-v2ipQHnmVVnVp46Izd6cY,6450
132
- uipath-2.1.36.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
133
- uipath-2.1.36.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
134
- uipath-2.1.36.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
135
- uipath-2.1.36.dist-info/RECORD,,
142
+ uipath-2.1.37.dist-info/METADATA,sha256=iZXfgbVnG3_SoVjdjhESdpc-6eJQJnG-tems-r21eOE,6482
143
+ uipath-2.1.37.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
144
+ uipath-2.1.37.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
145
+ uipath-2.1.37.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
146
+ uipath-2.1.37.dist-info/RECORD,,
@@ -1,35 +0,0 @@
1
- import json
2
-
3
- from textual.app import ComposeResult
4
- from textual.containers import Container, Horizontal, Vertical
5
- from textual.widgets import Button, TextArea
6
-
7
- from ._json_input import JsonInput
8
-
9
-
10
- class ResumePanel(Container):
11
- """Panel for resuming a suspended run."""
12
-
13
- def __init__(self, **kwargs):
14
- super().__init__(**kwargs)
15
-
16
- def compose(self) -> ComposeResult:
17
- with Vertical():
18
- yield JsonInput(
19
- text=json.dumps({"value": ""}, indent=2),
20
- language="json",
21
- id="resume-json-input",
22
- classes="input-field json-input",
23
- )
24
- with Horizontal(classes="run-actions"):
25
- yield Button(
26
- "▶ Resume",
27
- id="resume-btn",
28
- variant="primary",
29
- classes="action-btn",
30
- )
31
-
32
- def get_input_values(self) -> str:
33
- """Return the JSON text to resume with."""
34
- json_input = self.query_one("#resume-json-input", TextArea)
35
- return json_input.text.strip()