Skip to content

Commit 9e477e8

Browse files
feat: update cm agent with variant field
1 parent a927b7e commit 9e477e8

4 files changed

Lines changed: 22 additions & 14 deletions

File tree

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.59"
3+
version = "2.10.60"
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"

packages/uipath/src/uipath/agent/models/agent.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,12 @@ class AgentMessageRole(str, CaseInsensitiveEnum):
165165
USER = "user"
166166

167167

168+
class AgentVariant(str, CaseInsensitiveEnum):
169+
"""Agent variant enumeration."""
170+
171+
CASE_MANAGER = "caseManager"
172+
173+
168174
class AgentGuardrailActionType(str, CaseInsensitiveEnum):
169175
"""Agent guardrail action type enumeration."""
170176

@@ -1156,7 +1162,7 @@ class AgentMetadata(BaseCfg):
11561162
"""Agent metadata model."""
11571163

11581164
is_conversational: bool = Field(alias="isConversational")
1159-
is_case_manager: bool = Field(default=False, alias="isCaseManager")
1165+
variant: Optional[AgentVariant] = Field(default=None, alias="variant")
11601166
storage_version: str = Field(alias="storageVersion")
11611167

11621168

@@ -1220,7 +1226,9 @@ def is_conversational(self) -> bool:
12201226
@property
12211227
def is_case_manager(self) -> bool:
12221228
"""Checks if the agent is a case manager agent."""
1223-
return self.metadata.is_case_manager if self.metadata else False
1229+
if not self.metadata:
1230+
return False
1231+
return self.metadata.variant == AgentVariant.CASE_MANAGER
12241232

12251233
@staticmethod
12261234
def _normalize_guardrails(v: Dict[str, Any]) -> None:

packages/uipath/tests/agent/models/test_agent.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3286,15 +3286,15 @@ def test_is_conversational_false_by_default(self):
32863286
class TestAgentDefinitionIsCaseManager:
32873287
"""Tests for AgentDefinition.is_case_manager property."""
32883288

3289-
def test_is_case_manager_true_when_metadata_set(self):
3290-
"""Returns True when metadata.is_case_manager is True."""
3289+
def test_is_case_manager_true_when_variant_is_case_manager(self):
3290+
"""Returns True when metadata.variant is "caseManager"."""
32913291
json_data = {
32923292
"id": "test-case-manager",
32933293
"name": "Case Manager Agent",
32943294
"version": "1.0.0",
32953295
"metadata": {
32963296
"isConversational": False,
3297-
"isCaseManager": True,
3297+
"variant": "caseManager",
32983298
"storageVersion": "1.0.0",
32993299
},
33003300
"settings": {
@@ -3317,15 +3317,15 @@ def test_is_case_manager_true_when_metadata_set(self):
33173317

33183318
assert config.is_case_manager is True
33193319

3320-
def test_is_case_manager_false_when_metadata_set_false(self):
3321-
"""Returns False when metadata.is_case_manager is False."""
3320+
def test_is_case_manager_false_when_variant_is_none(self):
3321+
"""Returns False when metadata.variant is None."""
33223322
json_data = {
33233323
"id": "test-non-case-manager",
33243324
"name": "Regular Agent",
33253325
"version": "1.0.0",
33263326
"metadata": {
33273327
"isConversational": False,
3328-
"isCaseManager": False,
3328+
"variant": None,
33293329
"storageVersion": "1.0.0",
33303330
},
33313331
"settings": {
@@ -3346,11 +3346,11 @@ def test_is_case_manager_false_when_metadata_set_false(self):
33463346

33473347
assert config.is_case_manager is False
33483348

3349-
def test_is_case_manager_false_when_not_in_metadata(self):
3350-
"""Returns False when isCaseManager is not present in metadata."""
3349+
def test_is_case_manager_false_when_variant_not_in_metadata(self):
3350+
"""Returns False when variant is not present in metadata."""
33513351
json_data = {
3352-
"id": "test-no-case-manager-field",
3353-
"name": "Agent Without CM Field",
3352+
"id": "test-no-variant-field",
3353+
"name": "Agent Without Variant Field",
33543354
"version": "1.0.0",
33553355
"metadata": {"isConversational": False, "storageVersion": "1.0.0"},
33563356
"settings": {

packages/uipath/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.

0 commit comments

Comments
 (0)