uipath 2.0.82__tar.gz → 2.1.0__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.
Files changed (210) hide show
  1. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/publish-docs.yml +3 -0
  2. {uipath-2.0.82 → uipath-2.1.0}/PKG-INFO +1 -3
  3. {uipath-2.0.82 → uipath-2.1.0}/docs/index.md +11 -0
  4. {uipath-2.0.82 → uipath-2.1.0}/mkdocs.yml +19 -15
  5. {uipath-2.0.82 → uipath-2.1.0}/pyproject.toml +1 -4
  6. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_contracts.py +20 -0
  7. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_debug.py +4 -0
  8. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_pack.py +1 -1
  9. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_run.py +30 -8
  10. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_run.py +30 -4
  11. uipath-2.1.0/uv.lock +2246 -0
  12. uipath-2.0.82/uv.lock +0 -3528
  13. {uipath-2.0.82 → uipath-2.1.0}/.cursorrules +0 -0
  14. {uipath-2.0.82 → uipath-2.1.0}/.editorconfig +0 -0
  15. {uipath-2.0.82 → uipath-2.1.0}/.gitattributes +0 -0
  16. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/cd.yml +0 -0
  17. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/ci.yml +0 -0
  18. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/commitlint.yml +0 -0
  19. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/lint.yml +0 -0
  20. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/publish-dev.yml +0 -0
  21. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/slack.yml +0 -0
  22. {uipath-2.0.82 → uipath-2.1.0}/.github/workflows/test.yml +0 -0
  23. {uipath-2.0.82 → uipath-2.1.0}/.gitignore +0 -0
  24. {uipath-2.0.82 → uipath-2.1.0}/.pre-commit-config.yaml +0 -0
  25. {uipath-2.0.82 → uipath-2.1.0}/.python-version +0 -0
  26. {uipath-2.0.82 → uipath-2.1.0}/.vscode/extensions.json +0 -0
  27. {uipath-2.0.82 → uipath-2.1.0}/.vscode/launch.json +0 -0
  28. {uipath-2.0.82 → uipath-2.1.0}/.vscode/settings.json +0 -0
  29. {uipath-2.0.82 → uipath-2.1.0}/CONTRIBUTING.md +0 -0
  30. {uipath-2.0.82 → uipath-2.1.0}/LICENSE +0 -0
  31. {uipath-2.0.82 → uipath-2.1.0}/README.md +0 -0
  32. {uipath-2.0.82 → uipath-2.1.0}/docs/CONTRIBUTING.md +0 -0
  33. {uipath-2.0.82 → uipath-2.1.0}/docs/FAQ.md +0 -0
  34. {uipath-2.0.82 → uipath-2.1.0}/docs/assets/env-preparation-failed-dark.png +0 -0
  35. {uipath-2.0.82 → uipath-2.1.0}/docs/assets/env-preparation-failed-light.png +0 -0
  36. {uipath-2.0.82 → uipath-2.1.0}/docs/assets/favicon.png +0 -0
  37. {uipath-2.0.82 → uipath-2.1.0}/docs/assets/logo-dark.svg +0 -0
  38. {uipath-2.0.82 → uipath-2.1.0}/docs/assets/logo-light.svg +0 -0
  39. {uipath-2.0.82 → uipath-2.1.0}/docs/cli/index.md +0 -0
  40. {uipath-2.0.82 → uipath-2.1.0}/docs/core/actions.md +0 -0
  41. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  42. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_light.gif +0 -0
  43. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  44. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  45. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/copy_path_dark.png +0 -0
  46. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets/copy_path_light.png +0 -0
  47. {uipath-2.0.82 → uipath-2.1.0}/docs/core/assets.md +0 -0
  48. {uipath-2.0.82 → uipath-2.1.0}/docs/core/attachments.md +0 -0
  49. {uipath-2.0.82 → uipath-2.1.0}/docs/core/buckets.md +0 -0
  50. {uipath-2.0.82 → uipath-2.1.0}/docs/core/connections.md +0 -0
  51. {uipath-2.0.82 → uipath-2.1.0}/docs/core/context_grounding.md +0 -0
  52. {uipath-2.0.82 → uipath-2.1.0}/docs/core/environment_variables.md +0 -0
  53. {uipath-2.0.82 → uipath-2.1.0}/docs/core/getting_started.md +0 -0
  54. {uipath-2.0.82 → uipath-2.1.0}/docs/core/jobs.md +0 -0
  55. {uipath-2.0.82 → uipath-2.1.0}/docs/core/llm_gateway.md +0 -0
  56. {uipath-2.0.82 → uipath-2.1.0}/docs/core/processes.md +0 -0
  57. {uipath-2.0.82 → uipath-2.1.0}/docs/core/queues.md +0 -0
  58. {uipath-2.0.82 → uipath-2.1.0}/docs/core/traced.md +0 -0
  59. {uipath-2.0.82 → uipath-2.1.0}/docs/hooks.py +0 -0
  60. {uipath-2.0.82 → uipath-2.1.0}/docs/javascripts/extra.js +0 -0
  61. {uipath-2.0.82 → uipath-2.1.0}/docs/overrides/main.html +0 -0
  62. {uipath-2.0.82 → uipath-2.1.0}/docs/overrides/partials/actions.html +0 -0
  63. {uipath-2.0.82 → uipath-2.1.0}/docs/overrides/partials/logo.html +0 -0
  64. {uipath-2.0.82 → uipath-2.1.0}/docs/release_policy.md +0 -0
  65. {uipath-2.0.82 → uipath-2.1.0}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  66. {uipath-2.0.82 → uipath-2.1.0}/docs/stylesheets/extra.css +0 -0
  67. {uipath-2.0.82 → uipath-2.1.0}/justfile +0 -0
  68. {uipath-2.0.82 → uipath-2.1.0}/py.typed +0 -0
  69. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/.env.example +0 -0
  70. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/README.md +0 -0
  71. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/input.json +0 -0
  72. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  73. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  74. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/pyproject.toml +0 -0
  75. {uipath-2.0.82 → uipath-2.1.0}/samples/google-ADK-agent/uv.lock +0 -0
  76. {uipath-2.0.82 → uipath-2.1.0}/scripts/debug_test.py +0 -0
  77. {uipath-2.0.82 → uipath-2.1.0}/scripts/lint_httpx_client.py +0 -0
  78. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/__init__.py +0 -0
  79. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/README.md +0 -0
  80. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/__init__.py +0 -0
  81. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  82. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
  83. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_models.py +0 -0
  84. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  85. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  86. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/_utils.py +0 -0
  87. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/auth_config.json +0 -0
  88. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/index.html +0 -0
  89. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/localhost.crt +0 -0
  90. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_auth/localhost.key +0 -0
  91. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  92. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  93. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_logging.py +0 -0
  94. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  95. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  96. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/.rels.template +0 -0
  97. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  98. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/main.py.template +0 -0
  99. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  100. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_common.py +0 -0
  101. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_console.py +0 -0
  102. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_constants.py +0 -0
  103. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_folders.py +0 -0
  104. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_input_args.py +0 -0
  105. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  106. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_processes.py +0 -0
  107. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/_utils/_tracing.py +0 -0
  108. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_auth.py +0 -0
  109. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_deploy.py +0 -0
  110. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_init.py +0 -0
  111. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_invoke.py +0 -0
  112. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_new.py +0 -0
  113. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/cli_publish.py +0 -0
  114. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/middlewares.py +0 -0
  115. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_cli/spinner.py +0 -0
  116. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_config.py +0 -0
  117. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_execution_context.py +0 -0
  118. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_folder_context.py +0 -0
  119. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/__init__.py +0 -0
  120. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/_base_service.py +0 -0
  121. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/actions_service.py +0 -0
  122. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/api_client.py +0 -0
  123. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/assets_service.py +0 -0
  124. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/attachments_service.py +0 -0
  125. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/buckets_service.py +0 -0
  126. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/connections_service.py +0 -0
  127. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/context_grounding_service.py +0 -0
  128. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/folder_service.py +0 -0
  129. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/jobs_service.py +0 -0
  130. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/llm_gateway_service.py +0 -0
  131. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/processes_service.py +0 -0
  132. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_services/queues_service.py +0 -0
  133. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_uipath.py +0 -0
  134. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/__init__.py +0 -0
  135. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_endpoint.py +0 -0
  136. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_infer_bindings.py +0 -0
  137. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_logs.py +0 -0
  138. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_read_overwrites.py +0 -0
  139. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_request_override.py +0 -0
  140. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_request_spec.py +0 -0
  141. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_ssl_context.py +0 -0
  142. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_url.py +0 -0
  143. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/_user_agent.py +0 -0
  144. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/_utils/constants.py +0 -0
  145. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/__init__.py +0 -0
  146. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/action_schema.py +0 -0
  147. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/actions.py +0 -0
  148. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/assets.py +0 -0
  149. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/attachment.py +0 -0
  150. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/buckets.py +0 -0
  151. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/connections.py +0 -0
  152. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/context_grounding.py +0 -0
  153. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/context_grounding_index.py +0 -0
  154. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/errors.py +0 -0
  155. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/exceptions.py +0 -0
  156. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/interrupt_models.py +0 -0
  157. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/job.py +0 -0
  158. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/llm_gateway.py +0 -0
  159. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/processes.py +0 -0
  160. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/models/queues.py +0 -0
  161. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/py.typed +0 -0
  162. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/telemetry/__init__.py +0 -0
  163. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/telemetry/_constants.py +0 -0
  164. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/telemetry/_track.py +0 -0
  165. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/__init__.py +0 -0
  166. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/_otel_exporters.py +0 -0
  167. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/_traced.py +0 -0
  168. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/tracing/_utils.py +0 -0
  169. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/utils/__init__.py +0 -0
  170. {uipath-2.0.82 → uipath-2.1.0}/src/uipath/utils/_endpoints_manager.py +0 -0
  171. {uipath-2.0.82 → uipath-2.1.0}/tests/__init__.py +0 -0
  172. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/conftest.py +0 -0
  173. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/bindings_script.py +0 -0
  174. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/pyproject.toml +0 -0
  175. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/simple_script.py +0 -0
  176. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/uipath-mock.json +0 -0
  177. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  178. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_hitl.py +0 -0
  179. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_init.py +0 -0
  180. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_invoke.py +0 -0
  181. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_new.py +0 -0
  182. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_pack.py +0 -0
  183. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_publish.py +0 -0
  184. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/test_utils.py +0 -0
  185. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/utils/project_details.py +0 -0
  186. {uipath-2.0.82 → uipath-2.1.0}/tests/cli/utils/uipath_json.py +0 -0
  187. {uipath-2.0.82 → uipath-2.1.0}/tests/conftest.py +0 -0
  188. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/conftest.py +0 -0
  189. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_actions_service.py +0 -0
  190. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_api_client.py +0 -0
  191. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_assets_service.py +0 -0
  192. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_attachments_service.py +0 -0
  193. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_base_service.py +0 -0
  194. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_buckets_service.py +0 -0
  195. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_connections_service.py +0 -0
  196. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_context_grounding_service.py +0 -0
  197. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_folder_service.py +0 -0
  198. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_jobs_service.py +0 -0
  199. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_llm_integration.py +0 -0
  200. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_llm_service.py +0 -0
  201. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_processes_service.py +0 -0
  202. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_queues_service.py +0 -0
  203. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  204. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/test_bindings_inference.py +0 -0
  205. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/test_config.py +0 -0
  206. {uipath-2.0.82 → uipath-2.1.0}/tests/sdk/test_overwrites.py +0 -0
  207. {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_otel_exporters.py +0 -0
  208. {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_span_utils.py +0 -0
  209. {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_traced.py +0 -0
  210. {uipath-2.0.82 → uipath-2.1.0}/tests/tracing/test_tracing_manager.py +0 -0
@@ -40,13 +40,16 @@ jobs:
40
40
  run: |
41
41
  git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-langchain-python plugins/uipath-langchain-python
42
42
  git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-llamaindex-python plugins/uipath-llamaindex-python
43
+ git clone https://x-access-token:${{ secrets.REPO_ACCESS }}@github.com/UiPath/uipath-mcp-python plugins/uipath-mcp-python
43
44
 
44
45
  - name: Symlink plugin docs
45
46
  run: |
46
47
  ln -s ../plugins/uipath-langchain-python/docs docs/langchain
47
48
  ln -s ../plugins/uipath-llamaindex-python/docs docs/llamaindex
49
+ ln -s ../plugins/uipath-mcp-python/docs docs/mcp
48
50
  ls -a docs/langchain
49
51
  ls -a docs/llamaindex
52
+ ls -a docs/mcp
50
53
 
51
54
  - name: Publish Docs
52
55
  run: uv run mkdocs gh-deploy --force
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.0.82
3
+ Version: 2.1.0
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
@@ -25,8 +25,6 @@ Requires-Dist: rich>=13.0.0
25
25
  Requires-Dist: tenacity>=9.0.0
26
26
  Requires-Dist: tomli>=2.2.1
27
27
  Requires-Dist: truststore>=0.10.1
28
- Provides-Extra: langchain
29
- Requires-Dist: uipath-langchain<0.1.0,>=0.0.88; extra == 'langchain'
30
28
  Description-Content-Type: text/markdown
31
29
 
32
30
  # UiPath Python SDK
@@ -13,6 +13,17 @@ title: Getting Started
13
13
 
14
14
  </div>
15
15
 
16
+ <div class="grid cards" markdown>
17
+ - __UiPath MCP SDK__
18
+
19
+ ---
20
+
21
+ Build and host Coded MCP Servers within UiPath.
22
+
23
+ [Start Building](./mcp/quick_start.md)
24
+
25
+ </div>
26
+
16
27
  <h2> Extensions </h2>
17
28
  <div class="grid cards" markdown>
18
29
  - __UiPath Langchain SDK__
@@ -53,6 +53,25 @@ theme:
53
53
  - toc.follow
54
54
 
55
55
  nav:
56
+ - UiPath SDK:
57
+ - Getting Started: core/getting_started.md
58
+ - Environment Variables: core/environment_variables.md
59
+ - CLI Reference: cli/index.md
60
+ - Tracing: core/traced.md
61
+ - Services:
62
+ - Actions: core/actions.md
63
+ - Assets: core/assets.md
64
+ - Buckets: core/buckets.md
65
+ - Connections: core/connections.md
66
+ - Context Grounding: core/context_grounding.md
67
+ - Jobs: core/jobs.md
68
+ - LLM Gateway: core/llm_gateway.md
69
+ - Queues: core/queues.md
70
+ - Processes: core/processes.md
71
+ - UiPath MCP SDK:
72
+ - Getting Started: mcp/quick_start.md
73
+ - How To Pack Binary: mcp/how_to_pack_binary.md
74
+ - Sample MCP Servers: https://github.com/UiPath/uipath-mcp-python/tree/main/samples
56
75
  - UiPath Langchain SDK:
57
76
  - Getting Started: langchain/quick_start.md
58
77
  - Chat Models: langchain/chat_models.md
@@ -65,21 +84,6 @@ nav:
65
84
  - Context Grounding: llamaindex/context_grounding.md
66
85
  - Human In The Loop: llamaindex/human_in_the_loop.md
67
86
  - Sample Agents: https://github.com/UiPath/uipath-llamaindex-python/tree/main/samples
68
- - UiPath SDK:
69
- - Getting Started: core/getting_started.md
70
- - Environment Variables: core/environment_variables.md
71
- - CLI Reference: cli/index.md
72
- - Tracing: core/traced.md
73
- - Services:
74
- - Actions: core/actions.md
75
- - Assets: core/assets.md
76
- - Buckets: core/buckets.md
77
- - Connections: core/connections.md
78
- - Context Grounding: core/context_grounding.md
79
- - Jobs: core/jobs.md
80
- - LLM Gateway: core/llm_gateway.md
81
- - Queues: core/queues.md
82
- - Processes: core/processes.md
83
87
  - How To Contribute: CONTRIBUTING.md
84
88
  - FAQ: FAQ.md
85
89
  - Release Policy: release_policy.md
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath"
3
- version = "2.0.82"
3
+ version = "2.1.0"
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"
@@ -67,9 +67,6 @@ dev = [
67
67
  "types-toml>=0.10.8",
68
68
  ]
69
69
 
70
- [project.optional-dependencies]
71
- langchain = ["uipath-langchain>=0.0.88,<0.1.0"]
72
-
73
70
  [tool.hatch.build.targets.wheel]
74
71
  packages = ["src/uipath"]
75
72
 
@@ -148,6 +148,7 @@ class UiPathRuntimeContext(BaseModel):
148
148
  trace_context: Optional[UiPathTraceContext] = None
149
149
  tracing_enabled: Union[bool, str] = False
150
150
  resume: bool = False
151
+ debug: bool = False
151
152
  config_path: str = "uipath.json"
152
153
  runtime_dir: Optional[str] = "__uipath"
153
154
  logs_file: Optional[str] = "execution.log"
@@ -155,6 +156,8 @@ class UiPathRuntimeContext(BaseModel):
155
156
  output_file: str = "output.json"
156
157
  state_file: str = "state.db"
157
158
  result: Optional[UiPathRuntimeResult] = None
159
+ execution_output_file: Optional[str] = None
160
+ input_file: Optional[str] = None
158
161
 
159
162
  model_config = {"arbitrary_types_allowed": True}
160
163
 
@@ -295,6 +298,18 @@ class UiPathBaseRuntime(ABC):
295
298
  Returns:
296
299
  The runtime instance
297
300
  """
301
+ # Read the input from file if provided
302
+ if self.context.input_file:
303
+ _, file_extension = os.path.splitext(self.context.input_file)
304
+ if file_extension != ".json":
305
+ raise UiPathRuntimeError(
306
+ code="INVALID_INPUT_FILE_EXTENSION",
307
+ title="Invalid Input File Extension",
308
+ detail="The provided input file must be in JSON format.",
309
+ )
310
+ with open(self.context.input_file) as f:
311
+ self.context.input = f.read()
312
+
298
313
  # Intercept all stdout/stderr/logs and write them to a file (runtime), stdout (debug)
299
314
  self.logs_interceptor = LogsInterceptor(
300
315
  min_level=self.context.logs_min_level,
@@ -370,6 +385,11 @@ class UiPathBaseRuntime(ABC):
370
385
  with open(self.output_file_path, "w") as f:
371
386
  json.dump(content, f, indent=2, default=str)
372
387
 
388
+ # Write the execution output to file if requested
389
+ if self.context.execution_output_file:
390
+ with open(self.context.execution_output_file, "w") as f:
391
+ json.dump(execution_result.output or {}, f, indent=2, default=str)
392
+
373
393
  # Don't suppress exceptions
374
394
  return False
375
395
 
@@ -42,6 +42,10 @@ def setup_debugging(debug: bool, debug_port: int = 5678) -> bool:
42
42
  console.info(f"🐛 Debug server started on port {debug_port}")
43
43
  console.info("📌 Waiting for debugger to attach...")
44
44
  console.info(" - VS Code: Run -> Start Debugging -> Python: Remote Attach")
45
+ console.link(
46
+ " CLI Documentation reference: ",
47
+ "https://uipath.github.io/uipath-python/cli/#run",
48
+ )
45
49
 
46
50
  debugpy.wait_for_client()
47
51
  console.success("Debugger attached successfully!")
@@ -264,7 +264,7 @@ def pack_fn(
264
264
  console.error("uipath.json not found, please run `uipath init`.")
265
265
 
266
266
  # Define the allowlist of file extensions to include
267
- file_extensions_included = [".py", ".mermaid", ".json", ".yaml", ".yml"]
267
+ file_extensions_included = [".py", ".mermaid", ".json", ".yaml", ".yml", ".md"]
268
268
  files_included = []
269
269
 
270
270
  with open(config_path, "r") as f:
@@ -32,6 +32,7 @@ def python_run_middleware(
32
32
  entrypoint: Optional[str],
33
33
  input: Optional[str],
34
34
  resume: bool,
35
+ **kwargs,
35
36
  ) -> MiddlewareResult:
36
37
  """Middleware to handle Python script execution.
37
38
 
@@ -70,6 +71,8 @@ Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path
70
71
  context.resume = resume
71
72
  context.job_id = env.get("UIPATH_JOB_KEY")
72
73
  context.trace_id = env.get("UIPATH_TRACE_ID")
74
+ context.input_file = kwargs.get("input_file", None)
75
+ context.execution_output_file = kwargs.get("execution_output_file", None)
73
76
  context.tracing_enabled = env.get("UIPATH_TRACING_ENABLED", True)
74
77
  context.trace_context = UiPathTraceContext(
75
78
  trace_id=env.get("UIPATH_TRACE_ID"),
@@ -118,6 +121,18 @@ Usage: `uipath run <entrypoint_path> <input_arguments> [-f <input_json_file_path
118
121
  type=click.Path(exists=True),
119
122
  help="File path for the .json input",
120
123
  )
124
+ @click.option(
125
+ "--input-file",
126
+ required=False,
127
+ type=click.Path(exists=True),
128
+ help="Alias for '-f/--file' arguments",
129
+ )
130
+ @click.option(
131
+ "--output-file",
132
+ required=False,
133
+ type=click.Path(exists=False),
134
+ help="File path where the output will be written",
135
+ )
121
136
  @click.option(
122
137
  "--debug",
123
138
  is_flag=True,
@@ -135,29 +150,36 @@ def run(
135
150
  input: Optional[str],
136
151
  resume: bool,
137
152
  file: Optional[str],
153
+ input_file: Optional[str],
154
+ output_file: Optional[str],
138
155
  debug: bool,
139
156
  debug_port: int,
140
157
  ) -> None:
141
158
  """Execute the project."""
142
- if file:
143
- _, file_extension = os.path.splitext(file)
144
- if file_extension != ".json":
145
- console.error("Input file extension must be '.json'.")
146
- with open(file) as f:
147
- input = f.read()
159
+ input_file = file or input_file
148
160
  # Setup debugging if requested
149
-
150
161
  if not setup_debugging(debug, debug_port):
151
162
  console.error(f"Failed to start debug server on port {debug_port}")
152
163
 
153
164
  # Process through middleware chain
154
- result = Middlewares.next("run", entrypoint, input, resume)
165
+ result = Middlewares.next(
166
+ "run",
167
+ entrypoint,
168
+ input,
169
+ resume,
170
+ debug=debug,
171
+ debug_port=debug_port,
172
+ input_file=input_file,
173
+ execution_output_file=output_file,
174
+ )
155
175
 
156
176
  if result.should_continue:
157
177
  result = python_run_middleware(
158
178
  entrypoint=entrypoint,
159
179
  input=input,
160
180
  resume=resume,
181
+ input_file=input_file,
182
+ execution_output_file=output_file,
161
183
  )
162
184
 
163
185
  # Handle result from middleware
@@ -53,6 +53,9 @@ class TestRun:
53
53
  entrypoint: str,
54
54
  ):
55
55
  with runner.isolated_filesystem(temp_dir=temp_dir):
56
+ file_path = os.path.join(temp_dir, entrypoint)
57
+ with open(file_path, "w") as f:
58
+ f.write("script content")
56
59
  result = runner.invoke(run, [entrypoint, "--file", "not-here.json"])
57
60
  assert result.exit_code != 0
58
61
  assert "Error: Invalid value for '-f' / '--file'" in result.output
@@ -65,12 +68,15 @@ class TestRun:
65
68
  ):
66
69
  file_name = "not-json.txt"
67
70
  with runner.isolated_filesystem(temp_dir=temp_dir):
71
+ script_file_path = os.path.join(temp_dir, entrypoint)
72
+ with open(script_file_path, "w") as f:
73
+ f.write("script content")
68
74
  file_path = os.path.join(temp_dir, file_name)
69
75
  with open(file_path, "w") as f:
70
76
  f.write("file content")
71
- result = runner.invoke(run, [entrypoint, "--file", file_path])
77
+ result = runner.invoke(run, [script_file_path, "--file", file_path])
72
78
  assert result.exit_code == 1
73
- assert "Input file extension must be '.json'." in result.output
79
+ assert "Invalid Input File Extension" in result.output
74
80
 
75
81
  def test_run_input_file_success(
76
82
  self,
@@ -100,7 +106,14 @@ class TestRun:
100
106
  assert "Successful execution." in result.output
101
107
  assert mock_middleware.call_count == 1
102
108
  assert mock_middleware.call_args == mock.call(
103
- "run", entrypoint, json_content, False
109
+ "run",
110
+ entrypoint,
111
+ "{}",
112
+ False,
113
+ debug=False,
114
+ debug_port=5678,
115
+ input_file=file_path,
116
+ execution_output_file=None,
104
117
  )
105
118
 
106
119
  class TestMiddleware:
@@ -134,6 +147,7 @@ class TestRun:
134
147
  simple_script: str,
135
148
  ):
136
149
  input_file_name = "input.json"
150
+ output_file_name = "output.json"
137
151
  input_json_content = """
138
152
  {
139
153
  "message": "Hello world",
@@ -142,6 +156,7 @@ class TestRun:
142
156
  with runner.isolated_filesystem(temp_dir=temp_dir):
143
157
  # create input file
144
158
  input_file_path = os.path.join(temp_dir, input_file_name)
159
+ output_file_path = os.path.join(temp_dir, output_file_name)
145
160
  with open(input_file_path, "w") as f:
146
161
  f.write(input_json_content)
147
162
  # Create test script
@@ -152,11 +167,22 @@ class TestRun:
152
167
  with open("uipath.json", "w") as f:
153
168
  f.write(uipath_json.to_json())
154
169
  result = runner.invoke(
155
- run, [script_file_path, "--file", input_file_path]
170
+ run,
171
+ [
172
+ script_file_path,
173
+ "--input-file",
174
+ input_file_path,
175
+ "--output-file",
176
+ output_file_path,
177
+ ],
156
178
  )
157
179
  assert result.exit_code == 0
158
180
  assert "Successful execution." in result.output
159
181
  assert result.output.count("Hello world") == 2
182
+ assert os.path.exists(output_file_path)
183
+ with open(output_file_path, "r") as f:
184
+ output = f.read()
185
+ assert output.count("Hello world") == 2
160
186
 
161
187
  def test_no_main_function_found(
162
188
  self,