diff --git a/pyproject.toml b/pyproject.toml index b031523..fae5204 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "uipath-runtime" -version = "0.11.8" +version = "0.11.9" description = "Runtime abstractions and interfaces for building agents and automation scripts in the UiPath ecosystem" readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.11" diff --git a/src/uipath/runtime/context.py b/src/uipath/runtime/context.py index 820bb18..d59c6a0 100644 --- a/src/uipath/runtime/context.py +++ b/src/uipath/runtime/context.py @@ -58,7 +58,7 @@ class UiPathRuntimeContext(BaseModel): None, description="Conversation owner id for CAS (a real cloud user id or a synthetic user id)", ) - voice_mode: Literal["session"] | None = Field( + voice_mode: Literal["session", "maestro_flow"] | None = Field( None, description="Voice job type for CAS" ) mcp_server_id: str | None = None diff --git a/tests/test_context.py b/tests/test_context.py index 30cef65..9b99b7e 100644 --- a/tests/test_context.py +++ b/tests/test_context.py @@ -391,3 +391,20 @@ def test_explicit_execution_source_not_overwritten() -> None: ctx = UiPathRuntimeContext(command="run", execution_source="custom") assert ctx.execution_source == "custom" + + +def test_constructor_accepts_maestro_flow_voice_mode() -> None: + ctx = UiPathRuntimeContext(voice_mode="maestro_flow") + + assert ctx.voice_mode == "maestro_flow" + + +def test_from_config_accepts_maestro_flow_voice_mode(tmp_path: Path) -> None: + config_path = tmp_path / "uipath.json" + config_path.write_text( + json.dumps({"fpsProperties": {"voice.mode": "maestro_flow"}}) + ) + + ctx = UiPathRuntimeContext.from_config(str(config_path)) + + assert ctx.voice_mode == "maestro_flow" diff --git a/uv.lock b/uv.lock index cd8797c..aaf4df8 100644 --- a/uv.lock +++ b/uv.lock @@ -1153,7 +1153,7 @@ wheels = [ [[package]] name = "uipath-runtime" -version = "0.11.8" +version = "0.11.9" source = { editable = "." } dependencies = [ { name = "chardet" },