Skip to content

Commit 4aa07b9

Browse files
Merge branch 'feat/business-rules-evaluate' into feat/business-rules-run
Brings in latest main through #1912. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2 parents 1d19049 + f61841f commit 4aa07b9

4 files changed

Lines changed: 21 additions & 10 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.14.35"
3+
version = "2.14.36"
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: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,10 +1242,11 @@ class AgentInternalJevClassifierSettings(BaseCfg):
12421242
12431243
Only the configuration that is never a call argument: the ``state`` and
12441244
``questions`` the tool sends to Jev are declared in the resource's
1245-
``inputSchema`` and supplied through its ``argumentProperties``.
1245+
``inputSchema`` and supplied through its ``argumentProperties``. The model
1246+
is required: there is no default Jev model.
12461247
"""
12471248

1248-
model: str = Field("jev-latest")
1249+
model: str = Field(..., min_length=1)
12491250

12501251

12511252
class AgentIntegrationToolResourceConfig(BaseAgentToolResourceConfig):

‎packages/uipath/tests/agent/models/test_jev_classifier_tool.py‎

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,18 @@ def test_settings_hold_only_the_model() -> None:
8383
assert _settings(resource).model_dump() == {"model": "jev-1.13.0"}
8484

8585

86-
def test_model_defaults_to_latest() -> None:
87-
assert _settings(_validate(_resource())).model == "jev-latest"
86+
@pytest.mark.parametrize(
87+
"settings",
88+
[pytest.param({}, id="missing"), pytest.param({"model": ""}, id="empty")],
89+
)
90+
def test_model_is_required(settings: dict[str, Any]) -> None:
91+
# No default Jev model: a tool without one fails to load.
92+
with pytest.raises(ValidationError, match="model"):
93+
_validate(_resource(**settings))
8894

8995

9096
def test_tool_type_is_case_insensitive() -> None:
91-
data = _resource()
97+
data = _resource(model="jev-1.13.0")
9298
data["properties"]["toolType"] = "Jev-Classifier"
9399

94100
assert isinstance(
@@ -100,11 +106,15 @@ def test_legacy_state_and_questions_settings_are_ignored_extras() -> None:
100106
# BaseCfg allows extra fields: settings written before questions and state
101107
# moved to inputSchema still parse, but nothing reads or validates them.
102108
resource = _validate(
103-
_resource(state={"type": "number"}, questions=[{"type": "freeform"}])
109+
_resource(
110+
model="jev-1.13.0",
111+
state={"type": "number"},
112+
questions=[{"type": "freeform"}],
113+
)
104114
)
105115

106116
settings = _settings(resource)
107-
assert settings.model == "jev-latest"
117+
assert settings.model == "jev-1.13.0"
108118
assert not hasattr(AgentInternalJevClassifierSettings, "questions")
109119
assert settings.model_extra == {
110120
"state": {"type": "number"},
@@ -207,7 +217,7 @@ def test_rejects_invalid_question(question: dict[str, Any]) -> None:
207217

208218

209219
def test_parses_object_builder_argument_properties() -> None:
210-
raw = _resource()
220+
raw = _resource(model="jev-1.13.0")
211221
raw["argumentProperties"] = {
212222
"$['questions']": {"variant": "ObjectBuilder"},
213223
"$['questions']['department']": {"variant": "objectBuilder"},

‎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)