uipath 2.1.106__tar.gz → 2.1.108__tar.gz

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.

Potentially problematic release.


This version of uipath might be problematic. Click here for more details.

Files changed (385) hide show
  1. {uipath-2.1.106 → uipath-2.1.108}/PKG-INFO +1 -1
  2. {uipath-2.1.106 → uipath-2.1.108}/pyproject.toml +1 -1
  3. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_contracts.py +25 -5
  4. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/SDK_REFERENCE.md +1 -98
  5. uipath-2.1.108/src/uipath/_services/guardrails_service.py +76 -0
  6. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/llm_gateway_service.py +15 -2
  7. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_uipath.py +10 -37
  8. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/models/agent.py +147 -2
  9. uipath-2.1.108/src/uipath/models/guardrails.py +246 -0
  10. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/_utils.py +18 -4
  11. {uipath-2.1.106 → uipath-2.1.108}/tests/agent/models/test_agent.py +59 -10
  12. uipath-2.1.108/tests/sdk/services/test_guardrails_service.py +114 -0
  13. uipath-2.1.108/tests/sdk/test_uipath_caching.py +326 -0
  14. {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_traced.py +78 -0
  15. {uipath-2.1.106 → uipath-2.1.108}/uv.lock +1 -1
  16. uipath-2.1.106/src/uipath/models/guardrails.py +0 -469
  17. {uipath-2.1.106 → uipath-2.1.108}/.claude/agents/command-tester.md +0 -0
  18. {uipath-2.1.106 → uipath-2.1.108}/.claude/commands/prepare-pr.md +0 -0
  19. {uipath-2.1.106 → uipath-2.1.108}/.cursorrules +0 -0
  20. {uipath-2.1.106 → uipath-2.1.108}/.editorconfig +0 -0
  21. {uipath-2.1.106 → uipath-2.1.108}/.gitattributes +0 -0
  22. {uipath-2.1.106 → uipath-2.1.108}/.github/labeler.yml +0 -0
  23. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/auto-label.yml +0 -0
  24. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/cd.yml +0 -0
  25. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/ci.yml +0 -0
  26. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/commitlint.yml +0 -0
  27. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/integration_tests.yml +0 -0
  28. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/lint.yml +0 -0
  29. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/publish-dev.yml +0 -0
  30. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/publish-docs.yml +0 -0
  31. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/slack.yml +0 -0
  32. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/test-uipath-langchain.yml +0 -0
  33. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/test-uipath-llamaindex.yml +0 -0
  34. {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/test.yml +0 -0
  35. {uipath-2.1.106 → uipath-2.1.108}/.gitignore +0 -0
  36. {uipath-2.1.106 → uipath-2.1.108}/.pre-commit-config.yaml +0 -0
  37. {uipath-2.1.106 → uipath-2.1.108}/.python-version +0 -0
  38. {uipath-2.1.106 → uipath-2.1.108}/.vscode/extensions.json +0 -0
  39. {uipath-2.1.106 → uipath-2.1.108}/.vscode/launch.json +0 -0
  40. {uipath-2.1.106 → uipath-2.1.108}/.vscode/settings.json +0 -0
  41. {uipath-2.1.106 → uipath-2.1.108}/CONTRIBUTING.md +0 -0
  42. {uipath-2.1.106 → uipath-2.1.108}/LICENSE +0 -0
  43. {uipath-2.1.106 → uipath-2.1.108}/README.md +0 -0
  44. {uipath-2.1.106 → uipath-2.1.108}/docs/AutomationSuite.md +0 -0
  45. {uipath-2.1.106 → uipath-2.1.108}/docs/CONTRIBUTING.md +0 -0
  46. {uipath-2.1.106 → uipath-2.1.108}/docs/FAQ.md +0 -0
  47. {uipath-2.1.106 → uipath-2.1.108}/docs/assets/env-preparation-failed-dark.png +0 -0
  48. {uipath-2.1.106 → uipath-2.1.108}/docs/assets/env-preparation-failed-light.png +0 -0
  49. {uipath-2.1.106 → uipath-2.1.108}/docs/assets/favicon.png +0 -0
  50. {uipath-2.1.106 → uipath-2.1.108}/docs/assets/llms.txt +0 -0
  51. {uipath-2.1.106 → uipath-2.1.108}/docs/assets/logo-dark.svg +0 -0
  52. {uipath-2.1.106 → uipath-2.1.108}/docs/assets/logo-light.svg +0 -0
  53. {uipath-2.1.106 → uipath-2.1.108}/docs/cli/index.md +0 -0
  54. {uipath-2.1.106 → uipath-2.1.108}/docs/core/actions.md +0 -0
  55. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  56. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_light.gif +0 -0
  57. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  58. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  59. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/copy_path_dark.png +0 -0
  60. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/copy_path_light.png +0 -0
  61. {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets.md +0 -0
  62. {uipath-2.1.106 → uipath-2.1.108}/docs/core/attachments.md +0 -0
  63. {uipath-2.1.106 → uipath-2.1.108}/docs/core/buckets.md +0 -0
  64. {uipath-2.1.106 → uipath-2.1.108}/docs/core/connections.md +0 -0
  65. {uipath-2.1.106 → uipath-2.1.108}/docs/core/context_grounding.md +0 -0
  66. {uipath-2.1.106 → uipath-2.1.108}/docs/core/documents.md +0 -0
  67. {uipath-2.1.106 → uipath-2.1.108}/docs/core/documents_models.md +0 -0
  68. {uipath-2.1.106 → uipath-2.1.108}/docs/core/environment_variables.md +0 -0
  69. {uipath-2.1.106 → uipath-2.1.108}/docs/core/getting_started.md +0 -0
  70. {uipath-2.1.106 → uipath-2.1.108}/docs/core/jobs.md +0 -0
  71. {uipath-2.1.106 → uipath-2.1.108}/docs/core/llm_gateway.md +0 -0
  72. {uipath-2.1.106 → uipath-2.1.108}/docs/core/processes.md +0 -0
  73. {uipath-2.1.106 → uipath-2.1.108}/docs/core/queues.md +0 -0
  74. {uipath-2.1.106 → uipath-2.1.108}/docs/core/traced.md +0 -0
  75. {uipath-2.1.106 → uipath-2.1.108}/docs/hooks.py +0 -0
  76. {uipath-2.1.106 → uipath-2.1.108}/docs/index.md +0 -0
  77. {uipath-2.1.106 → uipath-2.1.108}/docs/javascripts/extra.js +0 -0
  78. {uipath-2.1.106 → uipath-2.1.108}/docs/overrides/main.html +0 -0
  79. {uipath-2.1.106 → uipath-2.1.108}/docs/overrides/partials/actions.html +0 -0
  80. {uipath-2.1.106 → uipath-2.1.108}/docs/overrides/partials/logo.html +0 -0
  81. {uipath-2.1.106 → uipath-2.1.108}/docs/release_policy.md +0 -0
  82. {uipath-2.1.106 → uipath-2.1.108}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  83. {uipath-2.1.106 → uipath-2.1.108}/docs/stylesheets/extra.css +0 -0
  84. {uipath-2.1.106 → uipath-2.1.108}/justfile +0 -0
  85. {uipath-2.1.106 → uipath-2.1.108}/mkdocs.yml +0 -0
  86. {uipath-2.1.106 → uipath-2.1.108}/py.typed +0 -0
  87. {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/.env.example +0 -0
  88. {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/README.md +0 -0
  89. {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/input.json +0 -0
  90. {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/main.py +0 -0
  91. {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/pyproject.toml +0 -0
  92. {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/uv.lock +0 -0
  93. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/README.md +0 -0
  94. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/evals/eval-sets/default.json +0 -0
  95. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/evals/evaluators/equality.json +0 -0
  96. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/evals/evaluators/llm-as-a-judge.json +0 -0
  97. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/main.py +0 -0
  98. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/pyproject.toml +0 -0
  99. {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/uipath.json +0 -0
  100. {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/.python-version +0 -0
  101. {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/README.md +0 -0
  102. {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/main.py +0 -0
  103. {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/pyproject.toml +0 -0
  104. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/.env.example +0 -0
  105. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/README.md +0 -0
  106. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/input.json +0 -0
  107. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  108. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  109. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/pyproject.toml +0 -0
  110. {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/uv.lock +0 -0
  111. {uipath-2.1.106 → uipath-2.1.108}/scripts/debug_test.py +0 -0
  112. {uipath-2.1.106 → uipath-2.1.108}/scripts/lint_httpx_client.py +0 -0
  113. {uipath-2.1.106 → uipath-2.1.108}/scripts/update_agents_md.py +0 -0
  114. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/__init__.py +0 -0
  115. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/README.md +0 -0
  116. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/__init__.py +0 -0
  117. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  118. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_auth_service.py +0 -0
  119. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_models.py +0 -0
  120. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  121. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  122. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_url_utils.py +0 -0
  123. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_utils.py +0 -0
  124. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/auth_config.json +0 -0
  125. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/index.html +0 -0
  126. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/localhost.crt +0 -0
  127. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/localhost.key +0 -0
  128. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_debug/_bridge.py +0 -0
  129. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_debug/_runtime.py +0 -0
  130. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
  131. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
  132. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
  133. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_history.py +0 -0
  134. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
  135. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
  136. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
  137. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
  138. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
  139. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
  140. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
  141. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
  142. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/__init__.py +0 -0
  143. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_console_progress_reporter.py +0 -0
  144. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_evaluate.py +0 -0
  145. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_evaluator_factory.py +0 -0
  146. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
  147. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_evaluator.py +0 -0
  148. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_evaluator_base_params.py +0 -0
  149. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_exceptions.py +0 -0
  150. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_mocks.py +0 -0
  151. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_output.py +0 -0
  152. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_sw_reporting.py +0 -0
  153. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_progress_reporter.py +0 -0
  154. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_runtime.py +0 -0
  155. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_span_collection.py +0 -0
  156. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/__init__.py +0 -0
  157. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/input_mocker.py +0 -0
  158. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/llm_mocker.py +0 -0
  159. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mocker.py +0 -0
  160. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mocker_factory.py +0 -0
  161. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mockito_mocker.py +0 -0
  162. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mocks.py +0 -0
  163. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
  164. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  165. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  166. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_logging.py +0 -0
  167. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  168. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_runtime_factory.py +0 -0
  169. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
  170. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  171. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/.rels.template +0 -0
  172. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  173. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/main.py.template +0 -0
  174. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  175. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_common.py +0 -0
  176. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_console.py +0 -0
  177. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_constants.py +0 -0
  178. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_debug.py +0 -0
  179. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_eval_set.py +0 -0
  180. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_folders.py +0 -0
  181. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_input_args.py +0 -0
  182. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  183. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_processes.py +0 -0
  184. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_project_files.py +0 -0
  185. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_studio_project.py +0 -0
  186. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_tracing.py +0 -0
  187. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
  188. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_auth.py +0 -0
  189. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_debug.py +0 -0
  190. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_deploy.py +0 -0
  191. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_dev.py +0 -0
  192. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_eval.py +0 -0
  193. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_init.py +0 -0
  194. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_invoke.py +0 -0
  195. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_new.py +0 -0
  196. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_pack.py +0 -0
  197. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_publish.py +0 -0
  198. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_pull.py +0 -0
  199. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_push.py +0 -0
  200. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_run.py +0 -0
  201. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/middlewares.py +0 -0
  202. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/models/__init__.py +0 -0
  203. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/models/runtime_schema.py +0 -0
  204. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/spinner.py +0 -0
  205. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_config.py +0 -0
  206. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_events/__init__.py +0 -0
  207. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_events/_event_bus.py +0 -0
  208. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_events/_events.py +0 -0
  209. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_execution_context.py +0 -0
  210. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_folder_context.py +0 -0
  211. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/AGENTS.md +0 -0
  212. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/CLAUDE.md +0 -0
  213. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/CLI_REFERENCE.md +0 -0
  214. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/REQUIRED_STRUCTURE.md +0 -0
  215. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/__init__.py +0 -0
  216. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/_base_service.py +0 -0
  217. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/actions_service.py +0 -0
  218. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/api_client.py +0 -0
  219. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/assets_service.py +0 -0
  220. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/attachments_service.py +0 -0
  221. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/buckets_service.py +0 -0
  222. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/connections_service.py +0 -0
  223. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/context_grounding_service.py +0 -0
  224. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/documents_service.py +0 -0
  225. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/entities_service.py +0 -0
  226. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/external_application_service.py +0 -0
  227. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/folder_service.py +0 -0
  228. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/jobs_service.py +0 -0
  229. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/processes_service.py +0 -0
  230. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/queues_service.py +0 -0
  231. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/__init__.py +0 -0
  232. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_auth.py +0 -0
  233. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_endpoint.py +0 -0
  234. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_infer_bindings.py +0 -0
  235. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_logs.py +0 -0
  236. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_read_overwrites.py +0 -0
  237. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_request_override.py +0 -0
  238. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_request_spec.py +0 -0
  239. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_ssl_context.py +0 -0
  240. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_url.py +0 -0
  241. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_user_agent.py +0 -0
  242. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/constants.py +0 -0
  243. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/_utils.py +0 -0
  244. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/__init__.py +0 -0
  245. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/async_stream.py +0 -0
  246. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/citation.py +0 -0
  247. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/content.py +0 -0
  248. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/conversation.py +0 -0
  249. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/event.py +0 -0
  250. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/exchange.py +0 -0
  251. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/message.py +0 -0
  252. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/meta.py +0 -0
  253. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/tool.py +0 -0
  254. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/models/evals.py +0 -0
  255. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/react/__init__.py +0 -0
  256. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/react/prompts.py +0 -0
  257. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/react/tools.py +0 -0
  258. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/_helpers/__init__.py +0 -0
  259. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/_helpers/helpers.py +0 -0
  260. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/__init__.py +0 -0
  261. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/base_evaluator.py +0 -0
  262. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/deterministic_evaluator_base.py +0 -0
  263. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/exact_match_evaluator.py +0 -0
  264. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/json_similarity_evaluator.py +0 -0
  265. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/llm_as_judge_evaluator.py +0 -0
  266. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/trajectory_evaluator.py +0 -0
  267. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/mocks/__init__.py +0 -0
  268. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/mocks/mockable.py +0 -0
  269. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/models/__init__.py +0 -0
  270. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/models/models.py +0 -0
  271. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/__init__.py +0 -0
  272. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/action_schema.py +0 -0
  273. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/actions.py +0 -0
  274. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/assets.py +0 -0
  275. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/attachment.py +0 -0
  276. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/auth.py +0 -0
  277. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/buckets.py +0 -0
  278. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/connections.py +0 -0
  279. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/context_grounding.py +0 -0
  280. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/context_grounding_index.py +0 -0
  281. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/documents.py +0 -0
  282. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/entities.py +0 -0
  283. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/errors.py +0 -0
  284. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/exceptions.py +0 -0
  285. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/interrupt_models.py +0 -0
  286. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/job.py +0 -0
  287. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/llm_gateway.py +0 -0
  288. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/processes.py +0 -0
  289. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/queues.py +0 -0
  290. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/py.typed +0 -0
  291. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/telemetry/__init__.py +0 -0
  292. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/telemetry/_constants.py +0 -0
  293. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/telemetry/_track.py +0 -0
  294. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/__init__.py +0 -0
  295. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/_otel_exporters.py +0 -0
  296. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/_traced.py +0 -0
  297. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/utils/__init__.py +0 -0
  298. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/utils/_endpoints_manager.py +0 -0
  299. {uipath-2.1.106 → uipath-2.1.108}/src/uipath/utils/dynamic_schema.py +0 -0
  300. {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/main.py +0 -0
  301. {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/pyproject.toml +0 -0
  302. {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/run.sh +0 -0
  303. {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/src/assert.py +0 -0
  304. {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/main.py +0 -0
  305. {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/pyproject.toml +0 -0
  306. {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/run.sh +0 -0
  307. {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/src/assert.py +0 -0
  308. {uipath-2.1.106 → uipath-2.1.108}/testcases/common/validate_output.sh +0 -0
  309. {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/agent.mermaid +0 -0
  310. {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/langgraph.json +0 -0
  311. {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/pyproject.toml +0 -0
  312. {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/run.sh +0 -0
  313. {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/src/assert.py +0 -0
  314. {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/src/main.py +0 -0
  315. {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/agent.mermaid +0 -0
  316. {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/llama_index.json +0 -0
  317. {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/pyproject.toml +0 -0
  318. {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/run.sh +0 -0
  319. {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/src/assert.py +0 -0
  320. {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/src/main.py +0 -0
  321. {uipath-2.1.106 → uipath-2.1.108}/tests/__init__.py +0 -0
  322. {uipath-2.1.106 → uipath-2.1.108}/tests/agent/models/test_evals.py +0 -0
  323. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/conftest.py +0 -0
  324. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/evals/eval-sets/default.json +0 -0
  325. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/evals/evaluators/equality.json +0 -0
  326. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/mocks/test_input_mocker.py +0 -0
  327. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/mocks/test_mocks.py +0 -0
  328. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/test_evaluate.py +0 -0
  329. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
  330. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/bindings_script.py +0 -0
  331. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/pyproject.toml +0 -0
  332. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/simple_script.py +0 -0
  333. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/uipath-mock.json +0 -0
  334. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  335. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/models/test_runtime_schema.py +0 -0
  336. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_auth.py +0 -0
  337. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_hitl.py +0 -0
  338. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_init.py +0 -0
  339. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_init_agents_md.py +0 -0
  340. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_input_args.py +0 -0
  341. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_invoke.py +0 -0
  342. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_new.py +0 -0
  343. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_oidc_utils.py +0 -0
  344. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_pack.py +0 -0
  345. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
  346. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_portal_service_refresh_token.py +0 -0
  347. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_publish.py +0 -0
  348. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_pull.py +0 -0
  349. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_push.py +0 -0
  350. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_run.py +0 -0
  351. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_utils.py +0 -0
  352. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/common.py +0 -0
  353. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/project_details.py +0 -0
  354. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/test_dynamic_schema.py +0 -0
  355. {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/uipath_json.py +0 -0
  356. {uipath-2.1.106 → uipath-2.1.108}/tests/conftest.py +0 -0
  357. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/conftest.py +0 -0
  358. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_actions_service.py +0 -0
  359. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_api_client.py +0 -0
  360. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_assets_service.py +0 -0
  361. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_attachments_service.py +0 -0
  362. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_base_service.py +0 -0
  363. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_buckets_service.py +0 -0
  364. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_connections_service.py +0 -0
  365. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_context_grounding_service.py +0 -0
  366. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_documents_service.py +0 -0
  367. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_entities_service.py +0 -0
  368. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_external_application_service.py +0 -0
  369. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_folder_service.py +0 -0
  370. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_jobs_service.py +0 -0
  371. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_llm_integration.py +0 -0
  372. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
  373. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_llm_service.py +0 -0
  374. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_processes_service.py +0 -0
  375. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_queues_service.py +0 -0
  376. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  377. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/tests_data/documents_service/create_validation_action_response.json +0 -0
  378. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/tests_data/documents_service/extraction_response.json +0 -0
  379. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/tests_data/documents_service/validated_result.json +0 -0
  380. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/test_bindings_inference.py +0 -0
  381. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/test_config.py +0 -0
  382. {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/test_overwrites.py +0 -0
  383. {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_otel_exporters.py +0 -0
  384. {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_span_utils.py +0 -0
  385. {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_tracing_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.1.106
3
+ Version: 2.1.108
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath"
3
- version = "2.1.106"
3
+ version = "2.1.108"
4
4
  description = "Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools."
5
5
  readme = { file = "README.md", content-type = "text/markdown" }
6
6
  requires-python = ">=3.10"
@@ -460,12 +460,12 @@ class UiPathRuntimeContext(BaseModel):
460
460
  return instance
461
461
 
462
462
 
463
- class UiPathRuntimeError(Exception):
463
+ class UiPathBaseRuntimeError(Exception):
464
464
  """Base exception class for UiPath runtime errors with structured error information."""
465
465
 
466
466
  def __init__(
467
467
  self,
468
- code: UiPathErrorCode,
468
+ code: str,
469
469
  title: str,
470
470
  detail: str,
471
471
  category: UiPathErrorCategory = UiPathErrorCategory.UNKNOWN,
@@ -484,10 +484,8 @@ class UiPathRuntimeError(Exception):
484
484
  if status is None:
485
485
  status = self._extract_http_status()
486
486
 
487
- code_value = code.value
488
-
489
487
  self.error_info = UiPathErrorContract(
490
- code=f"{prefix}.{code_value}",
488
+ code=f"{prefix}.{code}",
491
489
  title=title,
492
490
  detail=detail,
493
491
  category=category,
@@ -529,6 +527,28 @@ class UiPathRuntimeError(Exception):
529
527
  return self.error_info.model_dump()
530
528
 
531
529
 
530
+ class UiPathRuntimeError(UiPathBaseRuntimeError):
531
+ """Exception class for UiPath runtime errors."""
532
+
533
+ def __init__(
534
+ self,
535
+ code: UiPathErrorCode,
536
+ title: str,
537
+ detail: str,
538
+ category: UiPathErrorCategory = UiPathErrorCategory.UNKNOWN,
539
+ prefix: str = "Python",
540
+ include_traceback: bool = True,
541
+ ):
542
+ super().__init__(
543
+ code=code.value,
544
+ title=title,
545
+ detail=detail,
546
+ category=category,
547
+ prefix=prefix,
548
+ include_traceback=include_traceback,
549
+ )
550
+
551
+
532
552
  class UiPathRuntimeStreamNotSupportedError(NotImplementedError):
533
553
  """Raised when a runtime does not support streaming."""
534
554
 
@@ -70,93 +70,6 @@ sdk.assets.update_async(robot_asset: uipath.models.assets.UserAsset, folder_key:
70
70
 
71
71
  ```
72
72
 
73
- ### Attachments
74
-
75
- Attachments service
76
-
77
- ```python
78
- # Delete an attachment.
79
- sdk.attachments.delete(key: uuid.UUID, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
80
-
81
- # Delete an attachment asynchronously.
82
- sdk.attachments.delete_async(key: uuid.UUID, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
83
-
84
- # Download an attachment.
85
- sdk.attachments.download(key: uuid.UUID, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> str
86
-
87
- # Download an attachment asynchronously.
88
- sdk.attachments.download_async(key: uuid.UUID, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> str
89
-
90
- # Upload a file or content to UiPath as an attachment.
91
- sdk.attachments.upload(name: str, content: Union[str, bytes, NoneType]=None, source_path: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uuid.UUID
92
-
93
- # Upload a file or content to UiPath as an attachment asynchronously.
94
- sdk.attachments.upload_async(name: str, content: Union[str, bytes, NoneType]=None, source_path: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uuid.UUID
95
-
96
- ```
97
-
98
- ### Buckets
99
-
100
- Buckets service
101
-
102
- ```python
103
- # Download a file from a bucket.
104
- sdk.buckets.download(name: Optional[str]=None, key: Optional[str]=None, blob_file_path: str, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
105
-
106
- # Download a file from a bucket asynchronously.
107
- sdk.buckets.download_async(name: Optional[str]=None, key: Optional[str]=None, blob_file_path: str, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
108
-
109
- # Retrieve bucket information by its name.
110
- sdk.buckets.retrieve(name: Optional[str]=None, key: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uipath.models.buckets.Bucket
111
-
112
- # Asynchronously retrieve bucket information by its name.
113
- sdk.buckets.retrieve_async(name: Optional[str]=None, key: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uipath.models.buckets.Bucket
114
-
115
- # Upload a file to a bucket.
116
- sdk.buckets.upload(key: Optional[str]=None, name: Optional[str]=None, blob_file_path: str, content_type: Optional[str]=None, source_path: Optional[str]=None, content: Union[str, bytes, NoneType]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
117
-
118
- # Upload a file to a bucket asynchronously.
119
- sdk.buckets.upload_async(key: Optional[str]=None, name: Optional[str]=None, blob_file_path: str, content_type: Optional[str]=None, source_path: Optional[str]=None, content: Union[str, bytes, NoneType]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
120
-
121
- ```
122
-
123
- ### Connections
124
-
125
- Connections service
126
-
127
- ```python
128
- # Lists all connections with optional filtering.
129
- sdk.connections.list(name: Optional[str]=None, folder_path: Optional[str]=None, folder_key: Optional[str]=None, connector_key: Optional[str]=None, skip: Optional[int]=None, top: Optional[int]=None) -> typing.List[uipath.models.connections.Connection]
130
-
131
- # Asynchronously lists all connections with optional filtering.
132
- sdk.connections.list_async(name: Optional[str]=None, folder_path: Optional[str]=None, folder_key: Optional[str]=None, connector_key: Optional[str]=None, skip: Optional[int]=None, top: Optional[int]=None) -> typing.List[uipath.models.connections.Connection]
133
-
134
- # Synchronously retrieve connection API metadata.
135
- sdk.connections.metadata(element_instance_id: int, tool_path: str, schema_mode: bool=True) -> uipath.models.connections.ConnectionMetadata
136
-
137
- # Asynchronously retrieve connection API metadata.
138
- sdk.connections.metadata_async(element_instance_id: int, tool_path: str, schema_mode: bool=True) -> uipath.models.connections.ConnectionMetadata
139
-
140
- # Retrieve connection details by its key.
141
- sdk.connections.retrieve(key: str) -> uipath.models.connections.Connection
142
-
143
- # Asynchronously retrieve connection details by its key.
144
- sdk.connections.retrieve_async(key: str) -> uipath.models.connections.Connection
145
-
146
- # Retrieve event payload from UiPath Integration Service.
147
- sdk.connections.retrieve_event_payload(event_args: uipath.models.connections.EventArguments) -> typing.Dict[str, typing.Any]
148
-
149
- # Retrieve event payload from UiPath Integration Service.
150
- sdk.connections.retrieve_event_payload_async(event_args: uipath.models.connections.EventArguments) -> typing.Dict[str, typing.Any]
151
-
152
- # Retrieve an authentication token for a connection.
153
- sdk.connections.retrieve_token(key: str, token_type: <enum 'ConnectionTokenType="direct") -> uipath.models.connections.ConnectionToken
154
-
155
- # Asynchronously retrieve an authentication token for a connection.
156
- sdk.connections.retrieve_token_async(key: str, token_type: <enum 'ConnectionTokenType="direct") -> uipath.models.connections.ConnectionToken
157
-
158
- ```
159
-
160
73
  ### Context Grounding
161
74
 
162
75
  Context Grounding service
@@ -274,16 +187,6 @@ sdk.entities.update_records_async(entity_key: str, records: List[Any], schema: O
274
187
 
275
188
  ```
276
189
 
277
- ### Folders
278
-
279
- Folders service
280
-
281
- ```python
282
- # Retrieve the folder key by folder path with pagination support.
283
- sdk.folders.retrieve_key(folder_path: str) -> typing.Optional[str]
284
-
285
- ```
286
-
287
190
  ### Jobs
288
191
 
289
192
  Jobs service
@@ -339,7 +242,7 @@ Llm service
339
242
 
340
243
  ```python
341
244
  # Generate chat completions using UiPath's normalized LLM Gateway API.
342
- sdk.llm.chat_completions(messages: List[Dict[str, str]], model: str="gpt-4o-mini-2024-07-18", max_tokens: int=4096, temperature: float=0, n: int=1, frequency_penalty: float=0, presence_penalty: float=0, top_p: Optional[float]=1, top_k: Optional[int]=None, tools: Optional[List[uipath.models.llm_gateway.ToolDefinition]]=None, tool_choice: Union[uipath.models.llm_gateway.AutoToolChoice, uipath.models.llm_gateway.RequiredToolChoice, uipath.models.llm_gateway.SpecificToolChoice, Literal['auto', 'none'], NoneType]=None, response_format: Union[Dict[str, Any], type[pydantic.main.BaseModel], NoneType]=None, api_version: str="2024-08-01-preview")
245
+ sdk.llm.chat_completions(messages: Union[List[Dict[str, str]], List[tuple[str, str]]], model: str="gpt-4o-mini-2024-07-18", max_tokens: int=4096, temperature: float=0, n: int=1, frequency_penalty: float=0, presence_penalty: float=0, top_p: Optional[float]=1, top_k: Optional[int]=None, tools: Optional[List[uipath.models.llm_gateway.ToolDefinition]]=None, tool_choice: Union[uipath.models.llm_gateway.AutoToolChoice, uipath.models.llm_gateway.RequiredToolChoice, uipath.models.llm_gateway.SpecificToolChoice, Literal['auto', 'none'], NoneType]=None, response_format: Union[Dict[str, Any], type[pydantic.main.BaseModel], NoneType]=None, api_version: str="2024-08-01-preview")
343
246
 
344
247
  ```
345
248
 
@@ -0,0 +1,76 @@
1
+ from typing import Any, Dict, Optional, Union
2
+
3
+ from pydantic import BaseModel, ConfigDict, Field
4
+
5
+ from .._config import Config
6
+ from .._execution_context import ExecutionContext
7
+ from .._folder_context import FolderContext
8
+ from .._utils import Endpoint, RequestSpec, header_folder
9
+ from ..models.guardrails import BuiltInValidatorGuardrail, Guardrail
10
+ from ..tracing import traced
11
+ from ._base_service import BaseService
12
+
13
+
14
+ class BuiltInGuardrailValidationResult(BaseModel):
15
+ """Result from built-in guardrail validation."""
16
+
17
+ model_config = ConfigDict(populate_by_name=True)
18
+
19
+ validation_passed: bool = Field(alias="validation_passed")
20
+ reason: str = Field(alias="reason")
21
+
22
+
23
+ class GuardrailViolationError(Exception):
24
+ """Exception raised when guardrail validation fails."""
25
+
26
+ def __init__(self, detected_issue: Any):
27
+ self.detected_issue = detected_issue
28
+ super().__init__(f"Guardrail violation detected: {detected_issue}")
29
+
30
+
31
+ class GuardrailsService(FolderContext, BaseService):
32
+ """Service for validating text against UiPath Guardrails."""
33
+
34
+ def __init__(self, config: Config, execution_context: ExecutionContext) -> None:
35
+ super().__init__(config=config, execution_context=execution_context)
36
+
37
+ @traced("evaluate_guardrail", run_type="uipath")
38
+ def evaluate_guardrail(
39
+ self,
40
+ input_data: Union[str, Dict[str, Any]],
41
+ guardrail: Guardrail,
42
+ *,
43
+ folder_key: Optional[str] = None,
44
+ folder_path: Optional[str] = None,
45
+ ) -> BuiltInGuardrailValidationResult:
46
+ """Call the API to validate input_data with the given guardrail.
47
+
48
+ Only supports built-in guardrails for now.
49
+ """
50
+ if isinstance(guardrail, BuiltInValidatorGuardrail):
51
+ parameters = [
52
+ param.model_dump(by_alias=True)
53
+ for param in guardrail.validator_parameters
54
+ ]
55
+ payload = {
56
+ "validator": guardrail.validator_type,
57
+ "input": input_data if isinstance(input_data, str) else str(input_data),
58
+ "parameters": parameters,
59
+ }
60
+ spec = RequestSpec(
61
+ method="POST",
62
+ endpoint=Endpoint("/agentsruntime_/api/execution/guardrails/validate"),
63
+ json=payload,
64
+ headers={**header_folder(folder_key, folder_path)},
65
+ )
66
+ response = self.request(
67
+ spec.method,
68
+ url=spec.endpoint,
69
+ json=spec.json,
70
+ headers=spec.headers,
71
+ )
72
+ return BuiltInGuardrailValidationResult.model_validate(response.json())
73
+ else:
74
+ raise NotImplementedError(
75
+ "Custom guardrail validation is not yet supported by the API."
76
+ )
@@ -344,7 +344,7 @@ class UiPathLlmChatService(BaseService):
344
344
  @traced(name="llm_chat_completions", run_type="uipath")
345
345
  async def chat_completions(
346
346
  self,
347
- messages: List[Dict[str, str]],
347
+ messages: Union[List[Dict[str, str]], List[tuple[str, str]]],
348
348
  model: str = ChatModels.gpt_4o_mini_2024_07_18,
349
349
  max_tokens: int = 4096,
350
350
  temperature: float = 0,
@@ -475,13 +475,26 @@ class UiPathLlmChatService(BaseService):
475
475
  This service uses UiPath's normalized API format which provides consistent
476
476
  behavior across different underlying model providers and enhanced enterprise features.
477
477
  """
478
+ converted_messages = []
479
+
480
+ for message in messages:
481
+ if isinstance(message, tuple) and len(message) == 2:
482
+ role, content = message
483
+ converted_messages.append({"role": role, "content": content})
484
+ elif isinstance(message, dict):
485
+ converted_messages.append(message)
486
+ else:
487
+ raise ValueError(
488
+ f"Invalid message format: {message}. Expected tuple (role, content) or dict with 'role' and 'content' keys."
489
+ )
490
+
478
491
  endpoint = EndpointManager.get_normalized_endpoint().format(
479
492
  model=model, api_version=api_version
480
493
  )
481
494
  endpoint = Endpoint("/" + endpoint)
482
495
 
483
496
  request_body = {
484
- "messages": messages,
497
+ "messages": converted_messages,
485
498
  "max_tokens": max_tokens,
486
499
  "temperature": temperature,
487
500
  "n": n,
@@ -1,3 +1,4 @@
1
+ from functools import cached_property
1
2
  from typing import Optional
2
3
 
3
4
  from pydantic import ValidationError
@@ -51,10 +52,6 @@ class UiPath:
51
52
  raise BaseUrlMissingError() from e
52
53
  elif error["loc"][0] == "secret":
53
54
  raise SecretMissingError() from e
54
- self._folders_service: Optional[FolderService] = None
55
- self._buckets_service: Optional[BucketsService] = None
56
- self._attachments_service: Optional[AttachmentsService] = None
57
- self._connections_service: Optional[ConnectionsService] = None
58
55
  setup_logging(should_debug=debug)
59
56
  self._execution_context = ExecutionContext()
60
57
 
@@ -66,13 +63,9 @@ class UiPath:
66
63
  def assets(self) -> AssetsService:
67
64
  return AssetsService(self._config, self._execution_context)
68
65
 
69
- @property
66
+ @cached_property
70
67
  def attachments(self) -> AttachmentsService:
71
- if not self._attachments_service:
72
- self._attachments_service = AttachmentsService(
73
- self._config, self._execution_context
74
- )
75
- return self._attachments_service
68
+ return AttachmentsService(self._config, self._execution_context)
76
69
 
77
70
  @property
78
71
  def processes(self) -> ProcessesService:
@@ -82,39 +75,21 @@ class UiPath:
82
75
  def actions(self) -> ActionsService:
83
76
  return ActionsService(self._config, self._execution_context)
84
77
 
85
- @property
78
+ @cached_property
86
79
  def buckets(self) -> BucketsService:
87
- if not self._buckets_service:
88
- self._buckets_service = BucketsService(
89
- self._config, self._execution_context
90
- )
91
80
  return BucketsService(self._config, self._execution_context)
92
81
 
93
- @property
82
+ @cached_property
94
83
  def connections(self) -> ConnectionsService:
95
- if not self._connections_service:
96
- if not self._folders_service:
97
- self._folders_service = FolderService(
98
- self._config, self._execution_context
99
- )
100
- self._connections_service = ConnectionsService(
101
- self._config, self._execution_context, self._folders_service
102
- )
103
- return self._connections_service
84
+ return ConnectionsService(self._config, self._execution_context, self.folders)
104
85
 
105
86
  @property
106
87
  def context_grounding(self) -> ContextGroundingService:
107
- if not self._folders_service:
108
- self._folders_service = FolderService(self._config, self._execution_context)
109
- if not self._buckets_service:
110
- self._buckets_service = BucketsService(
111
- self._config, self._execution_context
112
- )
113
88
  return ContextGroundingService(
114
89
  self._config,
115
90
  self._execution_context,
116
- self._folders_service,
117
- self._buckets_service,
91
+ self.folders,
92
+ self.buckets,
118
93
  )
119
94
 
120
95
  @property
@@ -129,11 +104,9 @@ class UiPath:
129
104
  def jobs(self) -> JobsService:
130
105
  return JobsService(self._config, self._execution_context)
131
106
 
132
- @property
107
+ @cached_property
133
108
  def folders(self) -> FolderService:
134
- if not self._folders_service:
135
- self._folders_service = FolderService(self._config, self._execution_context)
136
- return self._folders_service
109
+ return FolderService(self._config, self._execution_context)
137
110
 
138
111
  @property
139
112
  def llm_openai(self) -> UiPathOpenAIService:
@@ -6,7 +6,11 @@ from typing import Annotated, Any, Dict, List, Literal, Optional, Union
6
6
  from pydantic import BaseModel, ConfigDict, Discriminator, Field, Tag, field_validator
7
7
 
8
8
  from uipath.models import Connection
9
- from uipath.models.guardrails import AgentEscalationRecipient, Guardrail
9
+ from uipath.models.guardrails import (
10
+ BuiltInValidatorGuardrail,
11
+ CustomGuardrail,
12
+ FieldReference,
13
+ )
10
14
 
11
15
 
12
16
  class AgentResourceType(str, Enum):
@@ -132,6 +136,37 @@ class AgentProcessToolResourceConfig(BaseAgentToolResourceConfig):
132
136
  )
133
137
 
134
138
 
139
+ class AgentEscalationRecipientType(str, Enum):
140
+ """Enum for escalation recipient types."""
141
+
142
+ USER_ID = "UserId"
143
+ GROUP_ID = "GroupId"
144
+ USER_EMAIL = "UserEmail"
145
+
146
+
147
+ class AgentEscalationRecipient(BaseModel):
148
+ """Recipient for escalation."""
149
+
150
+ type: Union[AgentEscalationRecipientType, str] = Field(..., alias="type")
151
+ value: str = Field(..., alias="value")
152
+ display_name: Optional[str] = Field(default=None, alias="displayName")
153
+
154
+ @field_validator("type", mode="before")
155
+ @classmethod
156
+ def normalize_type(cls, v: Any) -> str:
157
+ """Normalize recipient type from int (1=UserId, 2=GroupId, 3=UserEmail) or string. Unknown integers are converted to string."""
158
+ if isinstance(v, int):
159
+ mapping = {
160
+ 1: AgentEscalationRecipientType.USER_ID,
161
+ 2: AgentEscalationRecipientType.GROUP_ID,
162
+ 3: AgentEscalationRecipientType.USER_EMAIL,
163
+ }
164
+ return mapping.get(v, str(v))
165
+ return v
166
+
167
+ model_config = ConfigDict(populate_by_name=True, extra="allow")
168
+
169
+
135
170
  class AgentIntegrationToolParameter(BaseModel):
136
171
  """Agent integration tool parameter."""
137
172
 
@@ -479,6 +514,116 @@ class AgentSettings(BaseModel):
479
514
  )
480
515
 
481
516
 
517
+ class AgentGuardrailActionType(str, Enum):
518
+ """Action type enumeration."""
519
+
520
+ BLOCK = "block"
521
+ ESCALATE = "escalate"
522
+ FILTER = "filter"
523
+ LOG = "log"
524
+
525
+
526
+ class AgentGuardrailBlockAction(BaseModel):
527
+ """Block action model."""
528
+
529
+ action_type: Literal["block"] = Field(alias="$actionType")
530
+ reason: str
531
+
532
+ model_config = ConfigDict(populate_by_name=True, extra="allow")
533
+
534
+
535
+ class AgentGuardrailFilterAction(BaseModel):
536
+ """Filter action model."""
537
+
538
+ action_type: Literal["filter"] = Field(alias="$actionType")
539
+ fields: List[FieldReference]
540
+
541
+ model_config = ConfigDict(populate_by_name=True, extra="allow")
542
+
543
+
544
+ class AgentGuardrailSeverityLevel(str, Enum):
545
+ """Severity level enumeration."""
546
+
547
+ ERROR = "Error"
548
+ INFO = "Info"
549
+ WARNING = "Warning"
550
+
551
+
552
+ class AgentGuardrailLogAction(BaseModel):
553
+ """Log action model."""
554
+
555
+ action_type: Literal["log"] = Field(alias="$actionType")
556
+ message: str = Field(..., alias="message")
557
+ severity_level: AgentGuardrailSeverityLevel = Field(alias="severityLevel")
558
+
559
+ model_config = ConfigDict(populate_by_name=True, extra="allow")
560
+
561
+
562
+ class AgentGuardrailEscalateActionApp(BaseModel):
563
+ """Escalate action app model."""
564
+
565
+ id: Optional[str] = None
566
+ version: int
567
+ name: str
568
+ folder_id: Optional[str] = Field(None, alias="folderId")
569
+ folder_name: str = Field(alias="folderName")
570
+ app_process_key: Optional[str] = Field(None, alias="appProcessKey")
571
+ runtime: Optional[str] = None
572
+
573
+ model_config = ConfigDict(populate_by_name=True, extra="allow")
574
+
575
+
576
+ class AgentGuardrailEscalateAction(BaseModel):
577
+ """Escalate action model."""
578
+
579
+ action_type: Literal["escalate"] = Field(alias="$actionType")
580
+ app: AgentGuardrailEscalateActionApp
581
+ recipient: AgentEscalationRecipient
582
+
583
+ model_config = ConfigDict(populate_by_name=True, extra="allow")
584
+
585
+
586
+ GuardrailAction = Annotated[
587
+ Union[
588
+ AgentGuardrailBlockAction,
589
+ AgentGuardrailFilterAction,
590
+ AgentGuardrailLogAction,
591
+ AgentGuardrailEscalateAction,
592
+ ],
593
+ Field(discriminator="action_type"),
594
+ ]
595
+
596
+
597
+ class AgentCustomGuardrail(CustomGuardrail):
598
+ """Agent custom guardrail with action capabilities."""
599
+
600
+ action: GuardrailAction = Field(
601
+ ..., description="Action to take when guardrail is triggered"
602
+ )
603
+
604
+ model_config = ConfigDict(
605
+ validate_by_name=True, validate_by_alias=True, extra="allow"
606
+ )
607
+
608
+
609
+ class AgentBuiltInValidatorGuardrail(BuiltInValidatorGuardrail):
610
+ """Agent built-in validator guardrail with action capabilities."""
611
+
612
+ action: GuardrailAction = Field(
613
+ ..., description="Action to take when guardrail is triggered"
614
+ )
615
+
616
+ model_config = ConfigDict(
617
+ validate_by_name=True, validate_by_alias=True, extra="allow"
618
+ )
619
+
620
+
621
+ AgentGuardrail = Annotated[
622
+ Union[AgentCustomGuardrail, AgentBuiltInValidatorGuardrail],
623
+ Field(discriminator="guardrail_type"),
624
+ ]
625
+
626
+
482
627
  class BaseAgentDefinition(BaseModel):
483
628
  """Agent definition model."""
484
629
 
@@ -488,7 +633,7 @@ class BaseAgentDefinition(BaseModel):
488
633
  output_schema: Dict[str, Any] = Field(
489
634
  ..., alias="outputSchema", description="JSON schema for output arguments"
490
635
  )
491
- guardrails: Optional[List[Guardrail]] = Field(
636
+ guardrails: Optional[List[AgentGuardrail]] = Field(
492
637
  None, description="List of agent guardrails"
493
638
  )
494
639