uipath 2.1.56__py3-none-any.whl → 2.1.58__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.
uipath/agent/_utils.py ADDED
@@ -0,0 +1,55 @@
1
+ import logging
2
+ from pathlib import PurePath
3
+
4
+ from httpx import Response
5
+ from pydantic import TypeAdapter
6
+
7
+ from uipath._cli._utils._studio_project import (
8
+ ProjectFile,
9
+ ProjectFolder,
10
+ StudioClient,
11
+ resolve_path,
12
+ )
13
+ from uipath.agent.models.agent import AgentDefinition
14
+
15
+ logger = logging.getLogger(__name__)
16
+
17
+
18
+ async def get_file(
19
+ folder: ProjectFolder, path: PurePath, studio_client: StudioClient
20
+ ) -> Response:
21
+ resolved = resolve_path(folder, path)
22
+ assert isinstance(resolved, ProjectFile), "Path file not found."
23
+ return await studio_client.download_file_async(resolved.id)
24
+
25
+
26
+ async def load_agent_definition(project_id: str):
27
+ studio_client = StudioClient(project_id=project_id)
28
+ project_structure = await studio_client.get_project_structure_async()
29
+
30
+ agent = (
31
+ await get_file(project_structure, PurePath("agent.json"), studio_client)
32
+ ).json()
33
+
34
+ resolved_path = resolve_path(project_structure, PurePath("resources"))
35
+ if isinstance(resolved_path, ProjectFolder):
36
+ resource_folders = resolved_path.folders
37
+ else:
38
+ logger.warning(
39
+ "Unable to read resource information from project. Defaulting to empty resources."
40
+ )
41
+ resource_folders = []
42
+
43
+ resources = []
44
+ for resource in resource_folders:
45
+ resources.append(
46
+ (await get_file(resource, PurePath("resource.json"), studio_client)).json()
47
+ )
48
+
49
+ agent_definition = {
50
+ "id": project_id,
51
+ "name": project_structure.name,
52
+ "resources": resources,
53
+ **agent,
54
+ }
55
+ return TypeAdapter(AgentDefinition).validate_python(agent_definition)
@@ -0,0 +1,344 @@
1
+ """Agent Models."""
2
+
3
+ from enum import Enum
4
+ from typing import Annotated, Any, Dict, List, Literal, Optional, Union
5
+
6
+ from pydantic import BaseModel, ConfigDict, Discriminator, Field, Tag
7
+
8
+ from uipath.models import Connection
9
+
10
+
11
+ class AgentResourceType(str, Enum):
12
+ """Enum for resource types."""
13
+
14
+ TOOL = "tool"
15
+ CONTEXT = "context"
16
+ ESCALATION = "escalation"
17
+
18
+
19
+ class BaseAgentResourceConfig(BaseModel):
20
+ """Base resource model with common properties."""
21
+
22
+ name: str
23
+ description: str
24
+
25
+ model_config = ConfigDict(
26
+ validate_by_name=True, validate_by_alias=True, extra="allow"
27
+ )
28
+
29
+
30
+ class AgentUnknownResourceConfig(BaseAgentResourceConfig):
31
+ """Fallback for unknown or future resource types."""
32
+
33
+ resource_type: str = Field(alias="$resourceType")
34
+
35
+ model_config = ConfigDict(extra="allow")
36
+
37
+
38
+ class BaseAgentToolResourceConfig(BaseAgentResourceConfig):
39
+ """Tool resource with tool-specific properties."""
40
+
41
+ resource_type: Literal[AgentResourceType.TOOL] = Field(alias="$resourceType")
42
+ input_schema: Dict[str, Any] = Field(
43
+ ..., alias="inputSchema", description="Input schema for the tool"
44
+ )
45
+
46
+ model_config = ConfigDict(
47
+ validate_by_name=True, validate_by_alias=True, extra="allow"
48
+ )
49
+
50
+
51
+ class AgentToolType(str, Enum):
52
+ """Agent tool type."""
53
+
54
+ AGENT = "agent"
55
+ INTEGRATION = "integration"
56
+
57
+
58
+ class AgentToolSettings(BaseModel):
59
+ """Settings for tool configuration."""
60
+
61
+ max_attempts: Optional[int] = Field(None, alias="maxAttempts")
62
+ retry_delay: Optional[int] = Field(None, alias="retryDelay")
63
+ timeout: Optional[int] = Field(None)
64
+
65
+ model_config = ConfigDict(
66
+ validate_by_name=True, validate_by_alias=True, extra="allow"
67
+ )
68
+
69
+
70
+ class AgentProcessToolProperties(BaseModel):
71
+ """Properties specific to tool configuration."""
72
+
73
+ folder_path: Optional[str] = Field(None, alias="folderPath")
74
+ process_name: Optional[str] = Field(None, alias="processName")
75
+
76
+ model_config = ConfigDict(
77
+ validate_by_name=True, validate_by_alias=True, extra="allow"
78
+ )
79
+
80
+
81
+ class AgentProcessToolResourceConfig(BaseAgentToolResourceConfig):
82
+ """Tool resource with tool-specific properties."""
83
+
84
+ type: Literal[AgentToolType.AGENT] = AgentToolType.AGENT
85
+ output_schema: Dict[str, Any] = Field(
86
+ ..., alias="outputSchema", description="Output schema for the tool"
87
+ )
88
+ properties: AgentProcessToolProperties = Field(
89
+ ..., description="Tool-specific properties"
90
+ )
91
+ settings: AgentToolSettings = Field(
92
+ default_factory=AgentToolSettings, description="Tool settings"
93
+ )
94
+
95
+ model_config = ConfigDict(
96
+ validate_by_name=True, validate_by_alias=True, extra="allow"
97
+ )
98
+
99
+
100
+ class AgentIntegrationToolProperties(BaseModel):
101
+ """Properties specific to tool configuration."""
102
+
103
+ tool_path: str = Field(..., alias="toolPath")
104
+ object_name: str = Field(..., alias="objectName")
105
+ tool_display_name: str = Field(..., alias="toolDisplayName")
106
+ tool_description: str = Field(..., alias="toolDescription")
107
+ method: str = Field(..., alias="method")
108
+ connection: Connection = Field(..., alias="connection")
109
+ body_structure: dict[str, Any] = Field(..., alias="bodyStructure")
110
+
111
+ model_config = ConfigDict(
112
+ validate_by_name=True, validate_by_alias=True, extra="allow"
113
+ )
114
+
115
+
116
+ class AgentIntegrationToolResourceConfig(BaseAgentToolResourceConfig):
117
+ """Tool resource with tool-specific properties."""
118
+
119
+ type: Literal[AgentToolType.INTEGRATION] = AgentToolType.INTEGRATION
120
+ properties: AgentIntegrationToolProperties
121
+
122
+ model_config = ConfigDict(
123
+ validate_by_name=True, validate_by_alias=True, extra="allow"
124
+ )
125
+
126
+
127
+ class AgentUnknownToolResourceConfig(BaseAgentToolResourceConfig):
128
+ """Fallback for unknown or future tool types."""
129
+
130
+ resource_type: Literal[AgentResourceType.TOOL] = AgentResourceType.TOOL
131
+ type: str = Field(alias="$resourceType")
132
+
133
+ model_config = ConfigDict(extra="allow")
134
+
135
+
136
+ class AgentContextSettings(BaseModel):
137
+ """Settings for context configuration."""
138
+
139
+ result_count: int = Field(alias="resultCount")
140
+ retrieval_mode: Literal["Semantic", "Structured"] = Field(alias="retrievalMode")
141
+ threshold: float = Field(default=0)
142
+
143
+ model_config = ConfigDict(
144
+ validate_by_name=True, validate_by_alias=True, extra="allow"
145
+ )
146
+
147
+
148
+ class AgentContextResourceConfig(BaseAgentResourceConfig):
149
+ """Context resource with context-specific properties."""
150
+
151
+ resource_type: Literal[AgentResourceType.CONTEXT] = Field(alias="$resourceType")
152
+ folder_path: str = Field(alias="folderPath")
153
+ index_name: str = Field(alias="indexName")
154
+ settings: AgentContextSettings = Field(..., description="Context settings")
155
+
156
+ model_config = ConfigDict(
157
+ validate_by_name=True, validate_by_alias=True, extra="allow"
158
+ )
159
+
160
+
161
+ class AgentEscalationChannelProperties(BaseModel):
162
+ """Agent escalation channel properties."""
163
+
164
+ app_name: str = Field(..., alias="appName")
165
+ app_version: int = Field(..., alias="appVersion")
166
+ folder_name: Optional[str] = Field(..., alias="folderName")
167
+ resource_key: str = Field(..., alias="resourceKey")
168
+ is_actionable_message_enabled: Optional[bool] = Field(
169
+ None, alias="isActionableMessageEnabled"
170
+ )
171
+ actionable_message_meta_data: Optional[Any] = Field(
172
+ None, alias="actionableMessageMetaData"
173
+ )
174
+
175
+ model_config = ConfigDict(
176
+ validate_by_name=True, validate_by_alias=True, extra="allow"
177
+ )
178
+
179
+
180
+ class AgentEscalationChannel(BaseModel):
181
+ """Agent escalation channel."""
182
+
183
+ id: str = Field(..., alias="id")
184
+ name: str = Field(..., alias="name")
185
+ type: str = Field(alias="type")
186
+ description: str = Field(..., alias="description")
187
+ input_schema: Dict[str, Any] = Field(
188
+ ..., alias="inputSchema", description="Input schema for the escalation channel"
189
+ )
190
+ output_schema: Dict[str, Any] = Field(
191
+ ...,
192
+ alias="outputSchema",
193
+ description="Output schema for the escalation channel",
194
+ )
195
+ properties: AgentEscalationChannelProperties = Field(..., alias="properties")
196
+
197
+ model_config = ConfigDict(
198
+ validate_by_name=True, validate_by_alias=True, extra="allow"
199
+ )
200
+
201
+
202
+ class AgentEscalationResourceConfig(BaseAgentResourceConfig):
203
+ """Escalation resource with escalation-specific properties."""
204
+
205
+ resource_type: Literal[AgentResourceType.ESCALATION] = Field(alias="$resourceType")
206
+ channels: List[AgentEscalationChannel] = Field(alias="channels")
207
+
208
+ # escalation_type: int = Field(..., alias="escalationType")
209
+ is_agent_memory_enabled: bool = Field(alias="isAgentMemoryEnabled")
210
+
211
+ model_config = ConfigDict(
212
+ validate_by_name=True, validate_by_alias=True, extra="allow"
213
+ )
214
+
215
+
216
+ def custom_discriminator(data: Any) -> str:
217
+ """Discriminator for resource types. This is required due to multi-key discrimination requirements for resources."""
218
+ if isinstance(data, dict):
219
+ resource_type = data.get("$resourceType")
220
+ if resource_type == AgentResourceType.CONTEXT:
221
+ return "AgentContextResourceConfig"
222
+ elif resource_type == AgentResourceType.ESCALATION:
223
+ return "AgentEscalationResourceConfig"
224
+ elif resource_type == AgentResourceType.TOOL:
225
+ tool_type = data.get("type")
226
+ if tool_type == AgentToolType.AGENT:
227
+ return "AgentProcessToolResourceConfig"
228
+ elif tool_type == AgentToolType.INTEGRATION:
229
+ return "AgentIntegrationToolResourceConfig"
230
+ else:
231
+ return "AgentUnknownToolResourceConfig"
232
+ else:
233
+ return "AgentUnknownResourceConfig"
234
+ raise ValueError("Invalid discriminator values")
235
+
236
+
237
+ AgentResourceConfig = Annotated[
238
+ Union[
239
+ Annotated[
240
+ AgentProcessToolResourceConfig, Tag("AgentProcessToolResourceConfig")
241
+ ],
242
+ Annotated[
243
+ AgentIntegrationToolResourceConfig,
244
+ Tag("AgentIntegrationToolResourceConfig"),
245
+ ],
246
+ Annotated[
247
+ AgentUnknownToolResourceConfig, Tag("AgentUnknownToolResourceConfig")
248
+ ],
249
+ Annotated[AgentContextResourceConfig, Tag("AgentContextResourceConfig")],
250
+ Annotated[AgentEscalationResourceConfig, Tag("AgentEscalationResourceConfig")],
251
+ Annotated[AgentUnknownResourceConfig, Tag("AgentUnknownResourceConfig")],
252
+ ],
253
+ Field(discriminator=Discriminator(custom_discriminator)),
254
+ ]
255
+
256
+
257
+ class BaseAgentDefinition(BaseModel):
258
+ """Main agent model."""
259
+
260
+ id: str = Field(..., description="Agent id or project name")
261
+ name: str = Field(..., description="Agent name or project name")
262
+ input_schema: Dict[str, Any] = Field(
263
+ ..., alias="inputSchema", description="JSON schema for input arguments"
264
+ )
265
+ output_schema: Dict[str, Any] = Field(
266
+ ..., alias="outputSchema", description="JSON schema for output arguments"
267
+ )
268
+ version: str = Field("1.0.0", description="Agent version")
269
+ resources: List[AgentResourceConfig] = Field(
270
+ ..., description="List of tools, context, and escalation resources"
271
+ )
272
+
273
+ model_config = ConfigDict(
274
+ validate_by_name=True, validate_by_alias=True, extra="allow"
275
+ )
276
+
277
+
278
+ class AgentType(str, Enum):
279
+ """Agent type."""
280
+
281
+ LOW_CODE = "lowCode"
282
+
283
+
284
+ class AgentMessageRole(str, Enum):
285
+ """Enum for message roles."""
286
+
287
+ SYSTEM = "system"
288
+ USER = "user"
289
+
290
+
291
+ class AgentMessage(BaseModel):
292
+ """Message model for agent conversations."""
293
+
294
+ role: AgentMessageRole
295
+ content: str
296
+
297
+ model_config = ConfigDict(
298
+ validate_by_name=True, validate_by_alias=True, extra="allow"
299
+ )
300
+
301
+
302
+ class AgentSettings(BaseModel):
303
+ """Settings for agent configuration."""
304
+
305
+ engine: str = Field(..., description="Engine type, e.g., 'basic-v1'")
306
+ model: str = Field(..., description="LLM model identifier")
307
+ max_tokens: int = Field(
308
+ ..., alias="maxTokens", description="Maximum number of tokens"
309
+ )
310
+ temperature: float = Field(..., description="Temperature for response generation")
311
+
312
+ model_config = ConfigDict(
313
+ validate_by_name=True, validate_by_alias=True, extra="allow"
314
+ )
315
+
316
+
317
+ class LowCodeAgentDefinition(BaseAgentDefinition):
318
+ """Low code agent definition."""
319
+
320
+ type: Literal[AgentType.LOW_CODE] = AgentType.LOW_CODE
321
+ messages: List[AgentMessage] = Field(
322
+ ..., description="List of system and user messages"
323
+ )
324
+ features: List[Any] = Field(
325
+ default_factory=list, description="Currently empty feature list"
326
+ )
327
+ settings: AgentSettings = Field(..., description="Agent settings configuration")
328
+
329
+
330
+ KnownAgentDefinition = Annotated[
331
+ Union[LowCodeAgentDefinition,],
332
+ Field(discriminator="type"),
333
+ ]
334
+
335
+
336
+ class UnknownAgentDefinition(BaseAgentDefinition):
337
+ """Fallback for unknown agent definitions."""
338
+
339
+ type: str
340
+
341
+ model_config = ConfigDict(extra="allow")
342
+
343
+
344
+ AgentDefinition = Union[KnownAgentDefinition, UnknownAgentDefinition]
uipath/tracing/_traced.py CHANGED
@@ -215,11 +215,15 @@ def _opentelemetry_traced(
215
215
  if input_processor:
216
216
  processed_inputs = input_processor(json.loads(inputs))
217
217
  inputs = json.dumps(processed_inputs, default=str)
218
- span.set_attribute("inputs", inputs)
218
+ span.set_attribute("input.mime_type", "application/json")
219
+ span.set_attribute("input.value", inputs)
219
220
 
220
221
  result = func(*args, **kwargs)
221
222
  output = output_processor(result) if output_processor else result
222
- span.set_attribute("output", json.dumps(output, default=str))
223
+ span.set_attribute(
224
+ "output.value", _SpanUtils.format_object_for_trace_json(output)
225
+ )
226
+ span.set_attribute("output.mime_type", "application/json")
223
227
  return result
224
228
  except Exception as e:
225
229
  span.record_exception(e)
@@ -249,11 +253,15 @@ def _opentelemetry_traced(
249
253
  if input_processor:
250
254
  processed_inputs = input_processor(json.loads(inputs))
251
255
  inputs = json.dumps(processed_inputs, default=str)
252
- span.set_attribute("inputs", inputs)
256
+ span.set_attribute("input.mime_type", "application/json")
257
+ span.set_attribute("input.value", inputs)
253
258
 
254
259
  result = await func(*args, **kwargs)
255
260
  output = output_processor(result) if output_processor else result
256
- span.set_attribute("output", json.dumps(output, default=str))
261
+ span.set_attribute(
262
+ "output.value", _SpanUtils.format_object_for_trace_json(output)
263
+ )
264
+ span.set_attribute("output.mime_type", "application/json")
257
265
  return result
258
266
  except Exception as e:
259
267
  span.record_exception(e)
@@ -285,7 +293,8 @@ def _opentelemetry_traced(
285
293
  if input_processor:
286
294
  processed_inputs = input_processor(json.loads(inputs))
287
295
  inputs = json.dumps(processed_inputs, default=str)
288
- span.set_attribute("inputs", inputs)
296
+ span.set_attribute("input.mime_type", "application/json")
297
+ span.set_attribute("input.value", inputs)
289
298
 
290
299
  outputs = []
291
300
  for item in func(*args, **kwargs):
@@ -293,7 +302,10 @@ def _opentelemetry_traced(
293
302
  span.add_event(f"Yielded: {item}")
294
303
  yield item
295
304
  output = output_processor(outputs) if output_processor else outputs
296
- span.set_attribute("output", json.dumps(output, default=str))
305
+ span.set_attribute(
306
+ "output.value", _SpanUtils.format_object_for_trace_json(output)
307
+ )
308
+ span.set_attribute("output.mime_type", "application/json")
297
309
  except Exception as e:
298
310
  span.record_exception(e)
299
311
  span.set_status(
@@ -324,7 +336,8 @@ def _opentelemetry_traced(
324
336
  if input_processor:
325
337
  processed_inputs = input_processor(json.loads(inputs))
326
338
  inputs = json.dumps(processed_inputs, default=str)
327
- span.set_attribute("inputs", inputs)
339
+ span.set_attribute("input.mime_type", "application/json")
340
+ span.set_attribute("input.value", inputs)
328
341
 
329
342
  outputs = []
330
343
  async for item in func(*args, **kwargs):
@@ -332,7 +345,10 @@ def _opentelemetry_traced(
332
345
  span.add_event(f"Yielded: {item}")
333
346
  yield item
334
347
  output = output_processor(outputs) if output_processor else outputs
335
- span.set_attribute("output", json.dumps(output, default=str))
348
+ span.set_attribute(
349
+ "output.value", _SpanUtils.format_object_for_trace_json(output)
350
+ )
351
+ span.set_attribute("output.mime_type", "application/json")
336
352
  except Exception as e:
337
353
  span.record_exception(e)
338
354
  span.set_status(
uipath/tracing/_utils.py CHANGED
@@ -4,10 +4,12 @@ import logging
4
4
  import os
5
5
  import random
6
6
  import uuid
7
- from dataclasses import dataclass, field
8
- from datetime import datetime
7
+ from dataclasses import asdict, dataclass, field, is_dataclass
8
+ from datetime import datetime, timezone
9
+ from enum import Enum
9
10
  from os import environ as env
10
11
  from typing import Any, Dict, Optional
12
+ from zoneinfo import ZoneInfo
11
13
 
12
14
  from opentelemetry.sdk.trace import ReadableSpan
13
15
  from opentelemetry.trace import StatusCode
@@ -15,6 +17,36 @@ from opentelemetry.trace import StatusCode
15
17
  logger = logging.getLogger(__name__)
16
18
 
17
19
 
20
+ def _simple_serialize_defaults(obj):
21
+ if hasattr(obj, "model_dump"):
22
+ return obj.model_dump(exclude_none=True, mode="json")
23
+ if hasattr(obj, "dict"):
24
+ return obj.dict()
25
+ if hasattr(obj, "to_dict"):
26
+ return obj.to_dict()
27
+
28
+ # Handle dataclasses
29
+ if is_dataclass(obj) and not isinstance(obj, type):
30
+ return asdict(obj)
31
+
32
+ # Handle enums
33
+ if isinstance(obj, Enum):
34
+ return obj.value
35
+
36
+ if isinstance(obj, (set, tuple)):
37
+ if hasattr(obj, "_asdict") and callable(obj._asdict):
38
+ return obj._asdict()
39
+ return list(obj)
40
+
41
+ if isinstance(obj, datetime):
42
+ return obj.isoformat()
43
+
44
+ if isinstance(obj, (timezone, ZoneInfo)):
45
+ return obj.tzname(None)
46
+
47
+ return str(obj)
48
+
49
+
18
50
  @dataclass
19
51
  class UiPathSpan:
20
52
  """Represents a span in the UiPath tracing system."""
@@ -150,30 +182,32 @@ class _SpanUtils:
150
182
  status = 2 # Error
151
183
  attributes_dict["error"] = otel_span.status.description
152
184
 
153
- original_inputs = attributes_dict.get("inputs", None)
154
- original_outputs = attributes_dict.get("outputs", None)
185
+ original_inputs = attributes_dict.get("input", None)
186
+ original_outputs = attributes_dict.get("output", None)
155
187
 
156
188
  if original_inputs:
157
189
  try:
158
190
  if isinstance(original_inputs, str):
159
191
  json_inputs = json.loads(original_inputs)
160
- attributes_dict["inputs"] = json_inputs
192
+ attributes_dict["input.value"] = json_inputs
193
+ attributes_dict["input.mime_type"] = "application/json"
161
194
  else:
162
- attributes_dict["inputs"] = original_inputs
195
+ attributes_dict["input.value"] = original_inputs
163
196
  except Exception as e:
164
- print(f"Error parsing inputs: {e}")
165
- attributes_dict["inputs"] = str(original_inputs)
197
+ logger.warning(f"Error parsing inputs: {e}")
198
+ attributes_dict["input.value"] = str(original_inputs)
166
199
 
167
200
  if original_outputs:
168
201
  try:
169
202
  if isinstance(original_outputs, str):
170
203
  json_outputs = json.loads(original_outputs)
171
- attributes_dict["outputs"] = json_outputs
204
+ attributes_dict["output.value"] = json_outputs
205
+ attributes_dict["output.mime_type"] = "application/json"
172
206
  else:
173
- attributes_dict["outputs"] = original_outputs
207
+ attributes_dict["output.value"] = original_outputs
174
208
  except Exception as e:
175
- print(f"Error parsing outputs: {e}")
176
- attributes_dict["outputs"] = str(original_outputs)
209
+ logger.warning(f"Error parsing output: {e}")
210
+ attributes_dict["output.value"] = str(original_outputs)
177
211
 
178
212
  # Add events as additional attributes if they exist
179
213
  if otel_span.events:
@@ -233,7 +267,14 @@ class _SpanUtils:
233
267
  ) -> str:
234
268
  """Return a JSON string of inputs from the function signature."""
235
269
  result = _SpanUtils.format_args_for_trace(signature, *args, **kwargs)
236
- return json.dumps(result, default=str)
270
+ return json.dumps(result, default=_simple_serialize_defaults)
271
+
272
+ @staticmethod
273
+ def format_object_for_trace_json(
274
+ input_object: Any,
275
+ ) -> str:
276
+ """Return a JSON string of inputs from the function signature."""
277
+ return json.dumps(input_object, default=_simple_serialize_defaults)
237
278
 
238
279
  @staticmethod
239
280
  def format_args_for_trace(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.1.56
3
+ Version: 2.1.58
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
@@ -101,6 +101,7 @@ uipath/_utils/_ssl_context.py,sha256=xSYitos0eJc9cPHzNtHISX9PBvL6D2vas5G_GiBdLp8
101
101
  uipath/_utils/_url.py,sha256=-4eluSrIZCUlnQ3qU17WPJkgaC2KwF9W5NeqGnTNGGo,2512
102
102
  uipath/_utils/_user_agent.py,sha256=pVJkFYacGwaQBomfwWVAvBQgdBUo62e4n3-fLIajWUU,563
103
103
  uipath/_utils/constants.py,sha256=defPi1_4sLojgKVsbdIjkfME8O8n-iLmJnj_-n4Ox8s,1108
104
+ uipath/agent/_utils.py,sha256=Z5x7TprkEudrd_aC9YI5ObyT8O05_WkmBJTpqkQKOGQ,1641
104
105
  uipath/agent/conversation/__init__.py,sha256=5hK-Iz131mnd9m6ANnpZZffxXZLVFDQ9GTg5z9ik1oQ,5265
105
106
  uipath/agent/conversation/async_stream.py,sha256=BA_8uU1DgE3VpU2KkJj0rkI3bAHLk_ZJKsajR0ipMpo,2055
106
107
  uipath/agent/conversation/citation.py,sha256=42dGv-wiYx3Lt7MPuPCFTkjAlSADFSzjyNXuZHdxqvo,2253
@@ -111,6 +112,7 @@ uipath/agent/conversation/exchange.py,sha256=nuk1tEMBHc_skrraT17d8U6AtyJ3h07ExGQ
111
112
  uipath/agent/conversation/message.py,sha256=1ZkEs146s79TrOAWCQwzBAEJvjAu4lQBpJ64tKXDgGE,2142
112
113
  uipath/agent/conversation/meta.py,sha256=3t0eS9UHoAPHre97QTUeVbjDhnMX4zj4-qG6ju0B8wY,315
113
114
  uipath/agent/conversation/tool.py,sha256=ol8XI8AVd-QNn5auXNBPcCzOkh9PPFtL7hTK3kqInkU,2191
115
+ uipath/agent/models/agent.py,sha256=jhBxZwNRsB-1F-aD6ZELWaX3cFzgGIJ25cCHIb-RzhE,10965
114
116
  uipath/eval/_helpers/__init__.py,sha256=GSmZMryjuO3Wo_zdxZdrHCRRsgOxsVFYkYgJ15YNC3E,86
115
117
  uipath/eval/_helpers/helpers.py,sha256=iE2HHdMiAdAMLqxHkPKHpfecEtAuN5BTBqvKFTI8ciE,1315
116
118
  uipath/eval/evaluators/__init__.py,sha256=DJAAhgv0I5UfBod4sGnSiKerfrz1iMmk7GNFb71V8eI,494
@@ -144,12 +146,12 @@ uipath/telemetry/_constants.py,sha256=uRDuEZayBYtBA0tMx-2AS_D-oiVA7oKgp9zid9jNat
144
146
  uipath/telemetry/_track.py,sha256=G_Pyq8n8iMvoCWhUpWedlptXUSuUSbQBBzGxsh4DW9c,4654
145
147
  uipath/tracing/__init__.py,sha256=GKRINyWdHVrDsI-8mrZDLdf0oey6GHGlNZTOADK-kgc,224
146
148
  uipath/tracing/_otel_exporters.py,sha256=X7cnuGqvxGbACZuFD2XYTWXwIse8pokOEAjeTPE6DCQ,3158
147
- uipath/tracing/_traced.py,sha256=CsuNMy67R5HCunuu84LnRNwcadNLhtHLMEawGaNsTYs,18435
148
- uipath/tracing/_utils.py,sha256=wJRELaPu69iY0AhV432Dk5QYf_N_ViRU4kAUG1BI1ew,10384
149
+ uipath/tracing/_traced.py,sha256=CJIp6wqIoHVTmh9-Kuk7diD4OJDTAeA6x3zI9w0i4lI,19307
150
+ uipath/tracing/_utils.py,sha256=ny3VgfUPT_5fQ0BAFl7hitR2jH6nNuuZEpR7DKVd8QE,11739
149
151
  uipath/utils/__init__.py,sha256=VD-KXFpF_oWexFg6zyiWMkxl2HM4hYJMIUDZ1UEtGx0,105
150
152
  uipath/utils/_endpoints_manager.py,sha256=iRTl5Q0XAm_YgcnMcJOXtj-8052sr6jpWuPNz6CgT0Q,8408
151
- uipath-2.1.56.dist-info/METADATA,sha256=FwOSIJ0R0gXGh9pIvx6xTl2GjTVElDiovjDpJ35X9ik,6482
152
- uipath-2.1.56.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
153
- uipath-2.1.56.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
154
- uipath-2.1.56.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
155
- uipath-2.1.56.dist-info/RECORD,,
153
+ uipath-2.1.58.dist-info/METADATA,sha256=V3aUe96vDwV0iGCY6Uyr752tATUAiDRVYDonJ5Zckvs,6482
154
+ uipath-2.1.58.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
155
+ uipath-2.1.58.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
156
+ uipath-2.1.58.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
157
+ uipath-2.1.58.dist-info/RECORD,,