uipath 2.1.40__py3-none-any.whl → 2.1.41__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.
@@ -4,7 +4,7 @@ import traceback
4
4
  from datetime import datetime
5
5
  from os import environ as env
6
6
  from pathlib import Path
7
- from typing import Any, Dict
7
+ from typing import Any, Dict, cast
8
8
  from uuid import uuid4
9
9
 
10
10
  import pyperclip # type: ignore[import-untyped]
@@ -15,7 +15,12 @@ from textual.binding import Binding
15
15
  from textual.containers import Container, Horizontal
16
16
  from textual.widgets import Button, Footer, Input, ListView, RichLog
17
17
 
18
- from uipath.agent.conversation import UiPathConversationEvent
18
+ from uipath.agent.conversation import (
19
+ UiPathConversationContentPart,
20
+ UiPathConversationEvent,
21
+ UiPathConversationMessage,
22
+ UiPathInlineValue,
23
+ )
19
24
 
20
25
  from ..._runtime._contracts import (
21
26
  UiPathErrorContract,
@@ -116,7 +121,8 @@ class UiPathDevTerminal(App[Any]):
116
121
 
117
122
  details_panel = self.query_one("#details-panel", RunDetailsPanel)
118
123
  if details_panel and details_panel.current_run:
119
- if details_panel.current_run.status != "suspended":
124
+ status = details_panel.current_run.status
125
+ if status == "running":
120
126
  self.app.notify(
121
127
  "Wait for agent response...", timeout=1.5, severity="warning"
122
128
  )
@@ -128,7 +134,22 @@ class UiPathDevTerminal(App[Any]):
128
134
  ),
129
135
  details_panel.current_run.id,
130
136
  )
131
- details_panel.current_run.resume_data = {"value": user_text}
137
+ if details_panel.current_run.status == "suspended":
138
+ details_panel.current_run.resume_data = user_text
139
+ else:
140
+ details_panel.current_run.input_data = UiPathConversationMessage(
141
+ message_id=str(uuid4()),
142
+ created_at=datetime.now().isoformat(),
143
+ updated_at=datetime.now().isoformat(),
144
+ content_parts=[
145
+ UiPathConversationContentPart(
146
+ content_part_id=str(uuid4()),
147
+ mime_type="text/plain",
148
+ data=UiPathInlineValue(inline=user_text),
149
+ )
150
+ ],
151
+ role="user",
152
+ )
132
153
  asyncio.create_task(self._execute_runtime(details_panel.current_run))
133
154
  event.input.clear()
134
155
 
@@ -147,7 +168,7 @@ class UiPathDevTerminal(App[Any]):
147
168
  async def action_execute_run(self) -> None:
148
169
  """Execute a new run with UiPath runtime."""
149
170
  new_run_panel = self.query_one("#new-run-panel", NewRunPanel)
150
- entrypoint, input_data = new_run_panel.get_input_values()
171
+ entrypoint, input_data, conversational = new_run_panel.get_input_values()
151
172
 
152
173
  if not entrypoint:
153
174
  return
@@ -158,7 +179,7 @@ class UiPathDevTerminal(App[Any]):
158
179
  except json.JSONDecodeError:
159
180
  return
160
181
 
161
- run = ExecutionRun(entrypoint, input)
182
+ run = ExecutionRun(entrypoint, input, conversational)
162
183
 
163
184
  self.runs[run.id] = run
164
185
 
@@ -166,7 +187,8 @@ class UiPathDevTerminal(App[Any]):
166
187
 
167
188
  self._show_run_details(run)
168
189
 
169
- asyncio.create_task(self._execute_runtime(run))
190
+ if not run.conversational:
191
+ asyncio.create_task(self._execute_runtime(run))
170
192
 
171
193
  async def action_clear_history(self) -> None:
172
194
  """Clear run history."""
@@ -191,6 +213,7 @@ class UiPathDevTerminal(App[Any]):
191
213
  entrypoint=run.entrypoint,
192
214
  trace_id=str(uuid4()),
193
215
  execution_id=run.id,
216
+ is_conversational=run.conversational,
194
217
  logs_min_level=env.get("LOG_LEVEL", "INFO"),
195
218
  log_handler=RunContextLogHandler(
196
219
  run_id=run.id, callback=self._handle_log_message
@@ -201,11 +224,16 @@ class UiPathDevTerminal(App[Any]):
201
224
  )
202
225
 
203
226
  if run.status == "suspended":
204
- context.resume = True
205
227
  context.input_json = run.resume_data
228
+ context.resume = True
206
229
  self._add_info_log(run, f"Resuming execution: {run.entrypoint}")
207
230
  else:
208
- context.input_json = run.input_data
231
+ if run.conversational:
232
+ context.input_message = cast(
233
+ UiPathConversationMessage, run.input_data
234
+ )
235
+ else:
236
+ context.input_json = run.input_data
209
237
  self._add_info_log(run, f"Starting execution: {run.entrypoint}")
210
238
 
211
239
  run.status = "running"
@@ -214,7 +242,10 @@ class UiPathDevTerminal(App[Any]):
214
242
  result = await self.runtime_factory.execute_in_root_span(context)
215
243
 
216
244
  if result is not None:
217
- if result.status == UiPathRuntimeStatus.SUSPENDED.value:
245
+ if (
246
+ result.status == UiPathRuntimeStatus.SUSPENDED.value
247
+ and result.resume
248
+ ):
218
249
  run.status = "suspended"
219
250
  else:
220
251
  run.output_data = result.output
@@ -1,10 +1,11 @@
1
1
  import time
2
- from typing import Dict, List, Union
2
+ from typing import Dict, List, Optional, Union
3
3
 
4
4
  from textual.app import ComposeResult
5
5
  from textual.containers import Container, Vertical, VerticalScroll
6
6
  from textual.widgets import Input, Markdown
7
7
 
8
+ from uipath._cli._dev._terminal._models._execution import ExecutionRun
8
9
  from uipath.agent.conversation import (
9
10
  UiPathConversationEvent,
10
11
  UiPathConversationMessage,
@@ -44,8 +45,22 @@ class ChatPanel(Container):
44
45
  id="chat-input",
45
46
  )
46
47
 
48
+ def update_messages(self, run: ExecutionRun) -> None:
49
+ """Update the chat panel with messages from the given execution run."""
50
+ chat_view = self.query_one("#chat-view")
51
+ chat_view.remove_children()
52
+ self._chat_widgets.clear()
53
+ self._last_update_time.clear()
54
+
55
+ for chat_msg in run.messages:
56
+ self.add_chat_message(None, chat_msg, auto_scroll=False)
57
+ chat_view.scroll_end(animate=False)
58
+
47
59
  def add_chat_message(
48
- self, event: UiPathConversationEvent, chat_msg: UiPathConversationMessage
60
+ self,
61
+ event: Optional[UiPathConversationEvent],
62
+ chat_msg: UiPathConversationMessage,
63
+ auto_scroll: bool = True,
49
64
  ) -> None:
50
65
  """Add or update a chat message bubble."""
51
66
  chat_view = self.query_one("#chat-view")
@@ -90,17 +105,20 @@ class ChatPanel(Container):
90
105
 
91
106
  if existing:
92
107
  should_update = (
93
- event.exchange
108
+ event
109
+ and event.exchange
94
110
  and event.exchange.message
95
111
  and event.exchange.message.end is not None
96
112
  )
97
113
  if should_update or now - last_update > 0.15:
98
114
  existing.update(content)
99
115
  self._last_update_time[chat_msg.message_id] = now
100
- chat_view.scroll_end(animate=False)
116
+ if auto_scroll:
117
+ chat_view.scroll_end(animate=False)
101
118
  else:
102
119
  widget_instance = widget_cls(content)
103
120
  chat_view.mount(widget_instance)
104
121
  self._chat_widgets[chat_msg.message_id] = widget_instance
105
122
  self._last_update_time[chat_msg.message_id] = now
106
- chat_view.scroll_end(animate=False)
123
+ if auto_scroll:
124
+ chat_view.scroll_end(animate=False)
@@ -155,7 +155,11 @@ class RunDetailsPanel(Container):
155
155
 
156
156
  def _update_chat_tab(self, run: ExecutionRun) -> None:
157
157
  chat_input = self.query_one("#chat-input", Input)
158
- chat_input.disabled = run.status == "completed" or run.status == "failed"
158
+ chat_input.disabled = (
159
+ run.status == "completed" or run.status == "failed"
160
+ ) and not run.conversational
161
+ chat_panel = self.query_one("#chat-panel", ChatPanel)
162
+ chat_panel.update_messages(run)
159
163
 
160
164
  def _flatten_values(self, value: object, prefix: str = "") -> list[str]:
161
165
  """Flatten nested dict/list structures into dot-notation paths."""
@@ -5,7 +5,7 @@ from typing import Any, Dict, Tuple, cast
5
5
  from textual.app import ComposeResult
6
6
  from textual.containers import Container, Horizontal, Vertical
7
7
  from textual.reactive import reactive
8
- from textual.widgets import Button, Select, TabbedContent, TabPane, TextArea
8
+ from textual.widgets import Button, Checkbox, Select, TabbedContent, TabPane, TextArea
9
9
 
10
10
  from ._json_input import JsonInput
11
11
 
@@ -76,6 +76,12 @@ class NewRunPanel(Container):
76
76
  allow_blank=False,
77
77
  )
78
78
 
79
+ yield Checkbox(
80
+ "chat mode",
81
+ value=False,
82
+ id="conversational-toggle",
83
+ )
84
+
79
85
  yield JsonInput(
80
86
  text=self.initial_input,
81
87
  language="json",
@@ -108,9 +114,16 @@ class NewRunPanel(Container):
108
114
  mock_json_from_schema(ep.get("input", {})), indent=2
109
115
  )
110
116
 
111
- def get_input_values(self) -> Tuple[str, str]:
117
+ async def on_checkbox_changed(self, event: Checkbox.Changed) -> None:
118
+ """Hide JSON input if conversational is enabled."""
119
+ if event.checkbox.id == "conversational-toggle":
120
+ json_input = self.query_one("#json-input", TextArea)
121
+ json_input.display = not event.value
122
+
123
+ def get_input_values(self) -> Tuple[str, str, bool]:
112
124
  json_input = self.query_one("#json-input", TextArea)
113
- return self.selected_entrypoint, json_input.text.strip()
125
+ conversational = self.query_one("#conversational-toggle", Checkbox).value
126
+ return self.selected_entrypoint, json_input.text.strip(), conversational
114
127
 
115
128
  def reset_form(self):
116
129
  """Reset selection and JSON input to defaults."""
@@ -1,6 +1,6 @@
1
1
  import os
2
2
  from datetime import datetime
3
- from typing import Any, Dict, List, Optional
3
+ from typing import Any, Dict, List, Optional, Union
4
4
  from uuid import uuid4
5
5
 
6
6
  from rich.text import Text
@@ -15,15 +15,21 @@ from ._messages import LogMessage, TraceMessage
15
15
  class ExecutionRun:
16
16
  """Represents a single execution run."""
17
17
 
18
- def __init__(self, entrypoint: str, input_data: Dict[str, Any]):
18
+ def __init__(
19
+ self,
20
+ entrypoint: str,
21
+ input_data: Union[Dict[str, Any], UiPathConversationMessage],
22
+ conversational: bool = False,
23
+ ):
19
24
  self.id = str(uuid4())[:8]
20
25
  self.entrypoint = entrypoint
21
26
  self.input_data = input_data
22
- self.resume_data: Optional[Dict[str, Any]] = None
27
+ self.conversational = conversational
28
+ self.resume_data: Optional[Any] = None
23
29
  self.output_data: Optional[Dict[str, Any]] = None
24
30
  self.start_time = datetime.now()
25
31
  self.end_time: Optional[datetime] = None
26
- self.status = "running" # running, completed, failed, suspended
32
+ self.status = "pending" # pending, running, completed, failed, suspended
27
33
  self.traces: List[TraceMessage] = []
28
34
  self.logs: List[LogMessage] = []
29
35
  self.error: Optional[UiPathErrorContract] = None
@@ -34,13 +40,15 @@ class ExecutionRun:
34
40
  if self.end_time:
35
41
  delta = self.end_time - self.start_time
36
42
  return f"{delta.total_seconds():.1f}s"
37
- else:
43
+ elif self.start_time:
38
44
  delta = datetime.now() - self.start_time
39
45
  return f"{delta.total_seconds():.1f}s"
46
+ return "0.0s"
40
47
 
41
48
  @property
42
49
  def display_name(self) -> Text:
43
50
  status_colors = {
51
+ "pending": "grey50",
44
52
  "running": "yellow",
45
53
  "suspended": "cyan",
46
54
  "completed": "green",
@@ -48,6 +56,7 @@ class ExecutionRun:
48
56
  }
49
57
 
50
58
  status_icon = {
59
+ "pending": "●",
51
60
  "running": "▶",
52
61
  "suspended": "⏸",
53
62
  "completed": "✔",
@@ -27,6 +27,11 @@ Screen {
27
27
  color: #e0e0e0;
28
28
  }
29
29
 
30
+ .run-pending {
31
+ border-left: solid grey;
32
+ color: #e0e0e0;
33
+ }
34
+
30
35
  .run-completed {
31
36
  border-left: solid #00ff88;
32
37
  color: #e0e0e0;
@@ -250,3 +255,7 @@ Response, Tool {
250
255
  dock: bottom;
251
256
  margin: 1;
252
257
  }
258
+
259
+ Checkbox{
260
+ margin-top: 1;
261
+ }
@@ -22,7 +22,7 @@ from opentelemetry.sdk.trace.export import (
22
22
  from opentelemetry.trace import Tracer
23
23
  from pydantic import BaseModel, Field
24
24
 
25
- from uipath.agent.conversation import UiPathConversationEvent
25
+ from uipath.agent.conversation import UiPathConversationEvent, UiPathConversationMessage
26
26
  from uipath.tracing import TracingManager
27
27
 
28
28
  from ._logging import LogsInterceptor
@@ -167,6 +167,7 @@ class UiPathRuntimeContext(BaseModel):
167
167
  entrypoint: Optional[str] = None
168
168
  input: Optional[str] = None
169
169
  input_json: Optional[Any] = None
170
+ input_message: Optional[UiPathConversationMessage] = None
170
171
  job_id: Optional[str] = None
171
172
  execution_id: Optional[str] = None
172
173
  trace_id: Optional[str] = None
@@ -186,6 +187,7 @@ class UiPathRuntimeContext(BaseModel):
186
187
  is_eval_run: bool = False
187
188
  log_handler: Optional[logging.Handler] = None
188
189
  chat_handler: Optional[UiPathConversationHandler] = None
190
+ is_conversational: Optional[bool] = None
189
191
 
190
192
  model_config = {"arbitrary_types_allowed": True}
191
193
 
uipath/_cli/cli_invoke.py CHANGED
@@ -18,6 +18,7 @@ from ..telemetry import track
18
18
  from ._utils._common import get_env_vars
19
19
  from ._utils._folders import get_personal_workspace_info
20
20
  from ._utils._processes import get_release_info
21
+ from .middlewares import Middlewares
21
22
 
22
23
  logger = logging.getLogger(__name__)
23
24
  console = ConsoleLogger()
@@ -87,6 +88,25 @@ def invoke(
87
88
  "x-uipath-organizationunitid": str(personal_workspace_folder_id),
88
89
  }
89
90
 
91
+ context = {
92
+ "url": url,
93
+ "payload": payload,
94
+ "headers": headers,
95
+ }
96
+
97
+ result = Middlewares.next("invoke", context)
98
+
99
+ if result.error_message:
100
+ console.error(
101
+ result.error_message, include_traceback=result.should_include_stacktrace
102
+ )
103
+
104
+ if result.info_message:
105
+ console.info(result.info_message)
106
+
107
+ if not result.should_continue:
108
+ return
109
+
90
110
  with httpx.Client(**get_httpx_client_kwargs()) as client:
91
111
  response = client.post(url, json=payload, headers=headers)
92
112
 
@@ -29,6 +29,7 @@ class Middlewares:
29
29
  "publish": [],
30
30
  "run": [],
31
31
  "dev": [],
32
+ "invoke": [],
32
33
  }
33
34
  _plugins_loaded = False
34
35
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.1.40
3
+ Version: 2.1.41
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
@@ -11,14 +11,14 @@ uipath/_cli/cli_deploy.py,sha256=KPCmQ0c_NYD5JofSDao5r6QYxHshVCRxlWDVnQvlp5w,645
11
11
  uipath/_cli/cli_dev.py,sha256=JRzXrAUM_sj6FCVG-VveYADTwR8yQ330SgYs3LgbvJc,2104
12
12
  uipath/_cli/cli_eval.py,sha256=Hze4PwW4smivmSZg_eGDHr3pZ6LHxX5MkTJuXB2xpxs,3598
13
13
  uipath/_cli/cli_init.py,sha256=ls577uNm2zWccknIhtVFS3ah2ds0QSy2_TgMp6z7Wt4,6049
14
- uipath/_cli/cli_invoke.py,sha256=zuy3hCn5wfOcd_qYJDmfMB-5qtYS-GENprYXkQN29No,3836
14
+ uipath/_cli/cli_invoke.py,sha256=4jyhqcy7tPrpxvaUhW-9gut6ddsCGMdJJcpOXXmIe8g,4348
15
15
  uipath/_cli/cli_new.py,sha256=9378NYUBc9j-qKVXV7oja-jahfJhXBg8zKVyaon7ctY,2102
16
16
  uipath/_cli/cli_pack.py,sha256=NmwZTfwZ2fURiHyiX1BM0juAtBOjPB1Jmcpu-rD7p-4,11025
17
17
  uipath/_cli/cli_publish.py,sha256=FmBCdeh4zFaESOLfzTTPxGcOwUtsQ_WkvF_fjHEdU8s,6448
18
18
  uipath/_cli/cli_pull.py,sha256=vwS0KMX6O2L6RaPy8tw_qzXe4dC7kf_G6nbLm0I62eI,6831
19
19
  uipath/_cli/cli_push.py,sha256=-j-gDIbT8GyU2SybLQqFl5L8KI9nu3CDijVtltDgX20,3132
20
20
  uipath/_cli/cli_run.py,sha256=pM4FoR0mbykIK2O68auN_NX1LckNsMLJLBtW8MqgLxo,7777
21
- uipath/_cli/middlewares.py,sha256=MffXgAeafn5AqUsbw4l-FVly9Dm9TOvfvGJ61XOTt2Y,4934
21
+ uipath/_cli/middlewares.py,sha256=vgvzIHHpaDxUxHV8cbBv9_PFbq4E4Gq-iJTLvrlyIfw,4956
22
22
  uipath/_cli/spinner.py,sha256=bS-U_HA5yne11ejUERu7CQoXmWdabUD2bm62EfEdV8M,1107
23
23
  uipath/_cli/_auth/_auth_server.py,sha256=ICgc-GqfQmI6fMieJrGNTLcg6v7JgbKjZRGSBm6fdkg,7102
24
24
  uipath/_cli/_auth/_client_credentials.py,sha256=aC_xtEzWBQohRlxt85ZE8Ro0Pv9LmNltXECV8yjjO0U,5422
@@ -31,15 +31,15 @@ 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=NcDVlqq-_h2zhXQJS4oCttDG-JIO5fFVZHKG4LEsANY,11706
35
- uipath/_cli/_dev/_terminal/_components/_chat.py,sha256=ne6a2i67-7ZUDLILApZPVzUY3rHcF-dJ0gWL7hPP5LI,3433
36
- uipath/_cli/_dev/_terminal/_components/_details.py,sha256=f8Wr_iX9tDTBHeOs0i8UepNfh8giNVWtA6k2otOdgTk,17010
34
+ uipath/_cli/_dev/_terminal/__init__.py,sha256=L-nQzx40Is-L8M1A_yoeyg5M06LdJQWI30tqw5zfKhI,12933
35
+ uipath/_cli/_dev/_terminal/_components/_chat.py,sha256=NLRoy49QScHiI-q0FGykkaU8ajv1d23fx7issSALcFA,4119
36
+ uipath/_cli/_dev/_terminal/_components/_details.py,sha256=eu2S4Sfulr3Oj6Zx_vlf_gz1wl1HNKzj7qw0ZaJ8s8Y,17163
37
37
  uipath/_cli/_dev/_terminal/_components/_history.py,sha256=dcT9tohEwpUaLGi7VWu5d-mDIF45UxFzN2Yvdf5N-eM,2691
38
38
  uipath/_cli/_dev/_terminal/_components/_json_input.py,sha256=MPkaeiA5KfkwJZKuNJ02hQksVtluZlmJv9nLRRAWYQI,592
39
- uipath/_cli/_dev/_terminal/_components/_new.py,sha256=jxDFOQ6NCzTgesgx3srRr45ij1FqdICAB0uo6vXeh4I,4614
40
- uipath/_cli/_dev/_terminal/_models/_execution.py,sha256=jp-0lRtHqNDAuk7KKPVZ5CUqlFLfuKGZT_GTwd0LtQs,2615
39
+ uipath/_cli/_dev/_terminal/_components/_new.py,sha256=paA8oRhP5mphpf3RHV0gx7_CYdN5e6158tv_XVQifdE,5219
40
+ uipath/_cli/_dev/_terminal/_models/_execution.py,sha256=gPcxtwWR9eO929VaieOdI1e77clceKLoKA0FYayuCFQ,2869
41
41
  uipath/_cli/_dev/_terminal/_models/_messages.py,sha256=p66MHUi_SS30CQWXtiwydybMKBQrtZLXNfNUD6TdK1w,1832
42
- uipath/_cli/_dev/_terminal/_styles/terminal.tcss,sha256=J5hYPhf_Sdif6dApMLujrwNTXlY0QBwonOdbmskxHY0,3141
42
+ uipath/_cli/_dev/_terminal/_styles/terminal.tcss,sha256=ktVpKwXIXw2VZp8KIZD6fO9i9NTGvts_icCTxMdzEiY,3240
43
43
  uipath/_cli/_dev/_terminal/_utils/_chat.py,sha256=YUZxYVdmEManwHDuZsczJT1dWIYE1dVBgABlurwMFcE,8493
44
44
  uipath/_cli/_dev/_terminal/_utils/_exporter.py,sha256=oI6D_eMwrh_2aqDYUh4GrJg8VLGrLYhDahR-_o0uJns,4144
45
45
  uipath/_cli/_dev/_terminal/_utils/_logger.py,sha256=jeNShEED27cNIHTe_NNx-2kUiXpSLTmi0onM6tVkqRM,888
@@ -57,7 +57,7 @@ uipath/_cli/_evals/_models/__init__.py,sha256=Ewjp3u2YeTH2MmzY9LWf7EIbAoIf_nW9fM
57
57
  uipath/_cli/_evals/_models/_evaluation_set.py,sha256=tVHykSget-G3sOCs9bSchMYUTpFqzXVlYYbY8L9SI0c,1518
58
58
  uipath/_cli/_evals/_models/_evaluators.py,sha256=l57NEVyYmzSKuoIXuGkE94Br01hAMg35fiS2MlTkaQM,2115
59
59
  uipath/_cli/_push/sw_file_handler.py,sha256=AX4TKM-q6CNGw3JyBW02M8ktPZuFMcAU9LN3Ii0Q2QI,18202
60
- uipath/_cli/_runtime/_contracts.py,sha256=X8lev5v4XN2sOIwKWE7VXpFgfNhQjh9UGGbgogo1llE,21246
60
+ uipath/_cli/_runtime/_contracts.py,sha256=5seaUN5nurtimNiCH3c0PH9IcGiF-v1WNxJR-bQN7fs,21380
61
61
  uipath/_cli/_runtime/_escalation.py,sha256=x3vI98qsfRA-fL_tNkRVTFXioM5Gv2w0GFcXJJ5eQtg,7981
62
62
  uipath/_cli/_runtime/_hitl.py,sha256=VKbM021nVg1HEDnTfucSLJ0LsDn83CKyUtVzofS2qTU,11369
63
63
  uipath/_cli/_runtime/_logging.py,sha256=MGklGKPjYKjs7J5Jy9eplA9zCDsdtEbkZdCbTwgut_4,8311
@@ -139,8 +139,8 @@ uipath/tracing/_traced.py,sha256=qeVDrds2OUnpdUIA0RhtF0kg2dlAZhyC1RRkI-qivTM,185
139
139
  uipath/tracing/_utils.py,sha256=wJRELaPu69iY0AhV432Dk5QYf_N_ViRU4kAUG1BI1ew,10384
140
140
  uipath/utils/__init__.py,sha256=VD-KXFpF_oWexFg6zyiWMkxl2HM4hYJMIUDZ1UEtGx0,105
141
141
  uipath/utils/_endpoints_manager.py,sha256=iRTl5Q0XAm_YgcnMcJOXtj-8052sr6jpWuPNz6CgT0Q,8408
142
- uipath-2.1.40.dist-info/METADATA,sha256=Qzmiy04dDbd6AhRGQUWrk0R6qSTBTxIJtjY5kTB6V64,6482
143
- uipath-2.1.40.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
144
- uipath-2.1.40.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
145
- uipath-2.1.40.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
146
- uipath-2.1.40.dist-info/RECORD,,
142
+ uipath-2.1.41.dist-info/METADATA,sha256=f9UBWzmt5y6gAoSqz5BRh368Yw3QY0r4O0qUbs9uXvk,6482
143
+ uipath-2.1.41.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
144
+ uipath-2.1.41.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
145
+ uipath-2.1.41.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
146
+ uipath-2.1.41.dist-info/RECORD,,