uipath 2.1.26__tar.gz → 2.1.28__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 (253) hide show
  1. {uipath-2.1.26 → uipath-2.1.28}/PKG-INFO +3 -1
  2. {uipath-2.1.26 → uipath-2.1.28}/pyproject.toml +3 -1
  3. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/__init__.py +2 -0
  4. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/__init__.py +227 -0
  5. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_components/_details.py +421 -0
  6. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_components/_history.py +57 -0
  7. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_components/_new.py +133 -0
  8. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_models/_execution.py +43 -0
  9. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_models/_messages.py +65 -0
  10. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +361 -0
  11. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_traces/_exporter.py +119 -0
  12. uipath-2.1.28/src/uipath/_cli/_dev/_terminal/_traces/_logger.py +32 -0
  13. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_runtime/_contracts.py +128 -3
  14. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_runtime/_logging.py +20 -13
  15. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_runtime/_runtime.py +2 -14
  16. uipath-2.1.28/src/uipath/_cli/cli_dev.py +44 -0
  17. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_run.py +33 -28
  18. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/middlewares.py +1 -0
  19. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/telemetry/_track.py +2 -2
  20. {uipath-2.1.26 → uipath-2.1.28}/uv.lock +526 -459
  21. {uipath-2.1.26 → uipath-2.1.28}/.cursorrules +0 -0
  22. {uipath-2.1.26 → uipath-2.1.28}/.editorconfig +0 -0
  23. {uipath-2.1.26 → uipath-2.1.28}/.gitattributes +0 -0
  24. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/cd.yml +0 -0
  25. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/ci.yml +0 -0
  26. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/commitlint.yml +0 -0
  27. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/lint.yml +0 -0
  28. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/publish-dev.yml +0 -0
  29. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/publish-docs.yml +0 -0
  30. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/slack.yml +0 -0
  31. {uipath-2.1.26 → uipath-2.1.28}/.github/workflows/test.yml +0 -0
  32. {uipath-2.1.26 → uipath-2.1.28}/.gitignore +0 -0
  33. {uipath-2.1.26 → uipath-2.1.28}/.pre-commit-config.yaml +0 -0
  34. {uipath-2.1.26 → uipath-2.1.28}/.python-version +0 -0
  35. {uipath-2.1.26 → uipath-2.1.28}/.vscode/extensions.json +0 -0
  36. {uipath-2.1.26 → uipath-2.1.28}/.vscode/launch.json +0 -0
  37. {uipath-2.1.26 → uipath-2.1.28}/.vscode/settings.json +0 -0
  38. {uipath-2.1.26 → uipath-2.1.28}/CONTRIBUTING.md +0 -0
  39. {uipath-2.1.26 → uipath-2.1.28}/LICENSE +0 -0
  40. {uipath-2.1.26 → uipath-2.1.28}/README.md +0 -0
  41. {uipath-2.1.26 → uipath-2.1.28}/docs/CONTRIBUTING.md +0 -0
  42. {uipath-2.1.26 → uipath-2.1.28}/docs/FAQ.md +0 -0
  43. {uipath-2.1.26 → uipath-2.1.28}/docs/assets/env-preparation-failed-dark.png +0 -0
  44. {uipath-2.1.26 → uipath-2.1.28}/docs/assets/env-preparation-failed-light.png +0 -0
  45. {uipath-2.1.26 → uipath-2.1.28}/docs/assets/favicon.png +0 -0
  46. {uipath-2.1.26 → uipath-2.1.28}/docs/assets/logo-dark.svg +0 -0
  47. {uipath-2.1.26 → uipath-2.1.28}/docs/assets/logo-light.svg +0 -0
  48. {uipath-2.1.26 → uipath-2.1.28}/docs/cli/index.md +0 -0
  49. {uipath-2.1.26 → uipath-2.1.28}/docs/core/actions.md +0 -0
  50. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  51. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets/cloud_env_var_light.gif +0 -0
  52. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  53. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  54. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets/copy_path_dark.png +0 -0
  55. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets/copy_path_light.png +0 -0
  56. {uipath-2.1.26 → uipath-2.1.28}/docs/core/assets.md +0 -0
  57. {uipath-2.1.26 → uipath-2.1.28}/docs/core/attachments.md +0 -0
  58. {uipath-2.1.26 → uipath-2.1.28}/docs/core/buckets.md +0 -0
  59. {uipath-2.1.26 → uipath-2.1.28}/docs/core/connections.md +0 -0
  60. {uipath-2.1.26 → uipath-2.1.28}/docs/core/context_grounding.md +0 -0
  61. {uipath-2.1.26 → uipath-2.1.28}/docs/core/environment_variables.md +0 -0
  62. {uipath-2.1.26 → uipath-2.1.28}/docs/core/getting_started.md +0 -0
  63. {uipath-2.1.26 → uipath-2.1.28}/docs/core/jobs.md +0 -0
  64. {uipath-2.1.26 → uipath-2.1.28}/docs/core/llm_gateway.md +0 -0
  65. {uipath-2.1.26 → uipath-2.1.28}/docs/core/processes.md +0 -0
  66. {uipath-2.1.26 → uipath-2.1.28}/docs/core/queues.md +0 -0
  67. {uipath-2.1.26 → uipath-2.1.28}/docs/core/traced.md +0 -0
  68. {uipath-2.1.26 → uipath-2.1.28}/docs/hooks.py +0 -0
  69. {uipath-2.1.26 → uipath-2.1.28}/docs/index.md +0 -0
  70. {uipath-2.1.26 → uipath-2.1.28}/docs/javascripts/extra.js +0 -0
  71. {uipath-2.1.26 → uipath-2.1.28}/docs/overrides/main.html +0 -0
  72. {uipath-2.1.26 → uipath-2.1.28}/docs/overrides/partials/actions.html +0 -0
  73. {uipath-2.1.26 → uipath-2.1.28}/docs/overrides/partials/logo.html +0 -0
  74. {uipath-2.1.26 → uipath-2.1.28}/docs/release_policy.md +0 -0
  75. {uipath-2.1.26 → uipath-2.1.28}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  76. {uipath-2.1.26 → uipath-2.1.28}/docs/stylesheets/extra.css +0 -0
  77. {uipath-2.1.26 → uipath-2.1.28}/justfile +0 -0
  78. {uipath-2.1.26 → uipath-2.1.28}/mkdocs.yml +0 -0
  79. {uipath-2.1.26 → uipath-2.1.28}/py.typed +0 -0
  80. {uipath-2.1.26 → uipath-2.1.28}/samples/event-trigger/.python-version +0 -0
  81. {uipath-2.1.26 → uipath-2.1.28}/samples/event-trigger/README.md +0 -0
  82. {uipath-2.1.26 → uipath-2.1.28}/samples/event-trigger/main.py +0 -0
  83. {uipath-2.1.26 → uipath-2.1.28}/samples/event-trigger/pyproject.toml +0 -0
  84. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/.env.example +0 -0
  85. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/README.md +0 -0
  86. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/input.json +0 -0
  87. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  88. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  89. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/pyproject.toml +0 -0
  90. {uipath-2.1.26 → uipath-2.1.28}/samples/google-ADK-agent/uv.lock +0 -0
  91. {uipath-2.1.26 → uipath-2.1.28}/scripts/debug_test.py +0 -0
  92. {uipath-2.1.26 → uipath-2.1.28}/scripts/lint_httpx_client.py +0 -0
  93. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/__init__.py +0 -0
  94. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/README.md +0 -0
  95. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  96. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
  97. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_models.py +0 -0
  98. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  99. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  100. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_url_utils.py +0 -0
  101. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/_utils.py +0 -0
  102. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/auth_config.json +0 -0
  103. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/index.html +0 -0
  104. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/localhost.crt +0 -0
  105. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_auth/localhost.key +0 -0
  106. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/__init__.py +0 -0
  107. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_deterministic_evaluator_base.py +0 -0
  108. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_evaluator_base.py +0 -0
  109. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_evaluator_factory.py +0 -0
  110. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_exact_match_evaluator.py +0 -0
  111. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_json_similarity_evaluator.py +0 -0
  112. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_llm_as_judge_evaluator.py +0 -0
  113. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_evaluators/_trajectory_evaluator.py +0 -0
  114. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_models/__init__.py +0 -0
  115. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
  116. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/_models/_evaluators.py +0 -0
  117. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/evaluation_service.py +0 -0
  118. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_evals/progress_reporter.py +0 -0
  119. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
  120. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  121. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  122. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  123. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_templates/.rels.template +0 -0
  124. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  125. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_templates/main.py.template +0 -0
  126. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  127. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_common.py +0 -0
  128. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_console.py +0 -0
  129. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_constants.py +0 -0
  130. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_debug.py +0 -0
  131. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_folders.py +0 -0
  132. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_input_args.py +0 -0
  133. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  134. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_processes.py +0 -0
  135. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_project_files.py +0 -0
  136. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_studio_project.py +0 -0
  137. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_tracing.py +0 -0
  138. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
  139. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_auth.py +0 -0
  140. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_deploy.py +0 -0
  141. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_eval.py +0 -0
  142. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_init.py +0 -0
  143. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_invoke.py +0 -0
  144. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_new.py +0 -0
  145. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_pack.py +0 -0
  146. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_publish.py +0 -0
  147. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_pull.py +0 -0
  148. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/cli_push.py +0 -0
  149. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_cli/spinner.py +0 -0
  150. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_config.py +0 -0
  151. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_execution_context.py +0 -0
  152. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_folder_context.py +0 -0
  153. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/__init__.py +0 -0
  154. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/_base_service.py +0 -0
  155. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/actions_service.py +0 -0
  156. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/api_client.py +0 -0
  157. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/assets_service.py +0 -0
  158. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/attachments_service.py +0 -0
  159. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/buckets_service.py +0 -0
  160. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/connections_service.py +0 -0
  161. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/context_grounding_service.py +0 -0
  162. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/folder_service.py +0 -0
  163. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/jobs_service.py +0 -0
  164. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/llm_gateway_service.py +0 -0
  165. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/processes_service.py +0 -0
  166. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_services/queues_service.py +0 -0
  167. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_uipath.py +0 -0
  168. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/__init__.py +0 -0
  169. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_endpoint.py +0 -0
  170. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_infer_bindings.py +0 -0
  171. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_logs.py +0 -0
  172. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_read_overwrites.py +0 -0
  173. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_request_override.py +0 -0
  174. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_request_spec.py +0 -0
  175. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_ssl_context.py +0 -0
  176. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_url.py +0 -0
  177. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/_user_agent.py +0 -0
  178. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/_utils/constants.py +0 -0
  179. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/__init__.py +0 -0
  180. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/action_schema.py +0 -0
  181. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/actions.py +0 -0
  182. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/assets.py +0 -0
  183. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/attachment.py +0 -0
  184. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/buckets.py +0 -0
  185. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/connections.py +0 -0
  186. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/context_grounding.py +0 -0
  187. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/context_grounding_index.py +0 -0
  188. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/errors.py +0 -0
  189. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/exceptions.py +0 -0
  190. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/interrupt_models.py +0 -0
  191. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/job.py +0 -0
  192. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/llm_gateway.py +0 -0
  193. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/processes.py +0 -0
  194. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/models/queues.py +0 -0
  195. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/py.typed +0 -0
  196. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/telemetry/__init__.py +0 -0
  197. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/telemetry/_constants.py +0 -0
  198. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/tracing/__init__.py +0 -0
  199. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/tracing/_otel_exporters.py +0 -0
  200. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/tracing/_traced.py +0 -0
  201. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/tracing/_utils.py +0 -0
  202. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/utils/__init__.py +0 -0
  203. {uipath-2.1.26 → uipath-2.1.28}/src/uipath/utils/_endpoints_manager.py +0 -0
  204. {uipath-2.1.26 → uipath-2.1.28}/tests/__init__.py +0 -0
  205. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/conftest.py +0 -0
  206. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
  207. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/mocks/bindings_script.py +0 -0
  208. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/mocks/pyproject.toml +0 -0
  209. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/mocks/simple_script.py +0 -0
  210. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/mocks/uipath-mock.json +0 -0
  211. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  212. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_auth.py +0 -0
  213. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_hitl.py +0 -0
  214. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_init.py +0 -0
  215. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_input_args.py +0 -0
  216. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_invoke.py +0 -0
  217. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_new.py +0 -0
  218. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_pack.py +0 -0
  219. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
  220. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_portal_service_refresh_token.py +0 -0
  221. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_publish.py +0 -0
  222. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_pull.py +0 -0
  223. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_push.py +0 -0
  224. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_run.py +0 -0
  225. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/test_utils.py +0 -0
  226. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/utils/common.py +0 -0
  227. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/utils/project_details.py +0 -0
  228. {uipath-2.1.26 → uipath-2.1.28}/tests/cli/utils/uipath_json.py +0 -0
  229. {uipath-2.1.26 → uipath-2.1.28}/tests/conftest.py +0 -0
  230. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/conftest.py +0 -0
  231. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_actions_service.py +0 -0
  232. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_api_client.py +0 -0
  233. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_assets_service.py +0 -0
  234. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_attachments_service.py +0 -0
  235. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_base_service.py +0 -0
  236. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_buckets_service.py +0 -0
  237. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_connections_service.py +0 -0
  238. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_context_grounding_service.py +0 -0
  239. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_folder_service.py +0 -0
  240. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_jobs_service.py +0 -0
  241. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_llm_integration.py +0 -0
  242. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
  243. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_llm_service.py +0 -0
  244. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_processes_service.py +0 -0
  245. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_queues_service.py +0 -0
  246. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  247. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/test_bindings_inference.py +0 -0
  248. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/test_config.py +0 -0
  249. {uipath-2.1.26 → uipath-2.1.28}/tests/sdk/test_overwrites.py +0 -0
  250. {uipath-2.1.26 → uipath-2.1.28}/tests/tracing/test_otel_exporters.py +0 -0
  251. {uipath-2.1.26 → uipath-2.1.28}/tests/tracing/test_span_utils.py +0 -0
  252. {uipath-2.1.26 → uipath-2.1.28}/tests/tracing/test_traced.py +0 -0
  253. {uipath-2.1.26 → uipath-2.1.28}/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.26
3
+ Version: 2.1.28
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
@@ -17,12 +17,14 @@ Requires-Python: >=3.10
17
17
  Requires-Dist: azure-monitor-opentelemetry>=1.6.8
18
18
  Requires-Dist: click>=8.1.8
19
19
  Requires-Dist: httpx>=0.28.1
20
+ Requires-Dist: opentelemetry-instrumentation>=0.52b1
20
21
  Requires-Dist: opentelemetry-sdk>=1.31.1
21
22
  Requires-Dist: pathlib>=1.0.1
22
23
  Requires-Dist: pydantic>=2.11.1
23
24
  Requires-Dist: python-dotenv>=1.0.1
24
25
  Requires-Dist: rich>=13.0.0
25
26
  Requires-Dist: tenacity>=9.0.0
27
+ Requires-Dist: textual>=5.3.0
26
28
  Requires-Dist: tomli>=2.2.1
27
29
  Requires-Dist: truststore>=0.10.1
28
30
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "uipath"
3
- version = "2.1.26"
3
+ version = "2.1.28"
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"
@@ -8,6 +8,7 @@ dependencies = [
8
8
  "click>=8.1.8",
9
9
  "httpx>=0.28.1",
10
10
  "opentelemetry-sdk>=1.31.1",
11
+ "opentelemetry-instrumentation>=0.52b1",
11
12
  "pydantic>=2.11.1",
12
13
  "python-dotenv>=1.0.1",
13
14
  "tenacity>=9.0.0",
@@ -16,6 +17,7 @@ dependencies = [
16
17
  "rich>=13.0.0",
17
18
  "azure-monitor-opentelemetry>=1.6.8",
18
19
  "truststore>=0.10.1",
20
+ "textual>=5.3.0",
19
21
  ]
20
22
  classifiers = [
21
23
  "Development Status :: 3 - Alpha",
@@ -5,6 +5,7 @@ import click
5
5
 
6
6
  from .cli_auth import auth as auth
7
7
  from .cli_deploy import deploy as deploy # type: ignore
8
+ from .cli_dev import dev as dev
8
9
  from .cli_eval import eval as eval # type: ignore
9
10
  from .cli_init import init as init # type: ignore
10
11
  from .cli_invoke import invoke as invoke # type: ignore
@@ -69,3 +70,4 @@ cli.add_command(invoke)
69
70
  cli.add_command(push)
70
71
  cli.add_command(pull)
71
72
  cli.add_command(eval)
73
+ cli.add_command(dev)
@@ -0,0 +1,227 @@
1
+ import asyncio
2
+ import json
3
+ from datetime import datetime
4
+ from os import environ as env
5
+ from pathlib import Path
6
+ from typing import Any, Dict
7
+ from uuid import uuid4
8
+
9
+ from textual.app import App, ComposeResult
10
+ from textual.binding import Binding
11
+ from textual.containers import Container, Horizontal
12
+ from textual.widgets import Button, ListView
13
+
14
+ from ..._runtime._contracts import (
15
+ UiPathRuntimeContext,
16
+ UiPathRuntimeFactory,
17
+ )
18
+ from ._components._details import RunDetailsPanel
19
+ from ._components._history import RunHistoryPanel
20
+ from ._components._new import NewRunPanel
21
+ from ._models._execution import ExecutionRun
22
+ from ._models._messages import LogMessage, TraceMessage
23
+ from ._traces._exporter import RunContextExporter
24
+ from ._traces._logger import RunContextLogHandler
25
+
26
+
27
+ class UiPathDevTerminal(App[Any]):
28
+ """UiPath development terminal interface."""
29
+
30
+ CSS_PATH = Path(__file__).parent / "_styles" / "terminal.tcss"
31
+
32
+ BINDINGS = [
33
+ Binding("q", "quit", "Quit"),
34
+ Binding("n", "new_run", "New Run"),
35
+ Binding("r", "execute_run", "Execute"),
36
+ Binding("c", "clear_history", "Clear History"),
37
+ Binding("escape", "cancel", "Cancel"),
38
+ ]
39
+
40
+ def __init__(
41
+ self,
42
+ runtime_factory: UiPathRuntimeFactory[Any, Any],
43
+ **kwargs,
44
+ ):
45
+ super().__init__(**kwargs)
46
+
47
+ self.initial_entrypoint: str = "main.py"
48
+ self.initial_input: str = '{\n "message": "Hello World"\n}'
49
+ self.runs: Dict[str, ExecutionRun] = {}
50
+ self.runtime_factory = runtime_factory
51
+ self.runtime_factory.add_span_exporter(
52
+ RunContextExporter(
53
+ on_trace=self._handle_trace_message,
54
+ on_log=self._handle_log_message,
55
+ ),
56
+ batch=False,
57
+ )
58
+
59
+ def compose(self) -> ComposeResult:
60
+ with Horizontal():
61
+ # Left sidebar - run history
62
+ with Container(classes="run-history"):
63
+ yield RunHistoryPanel(id="history-panel")
64
+
65
+ # Main content area
66
+ with Container(classes="main-content"):
67
+ # New run panel (initially visible)
68
+ yield NewRunPanel(
69
+ id="new-run-panel",
70
+ classes="new-run-panel",
71
+ )
72
+
73
+ # Run details panel (initially hidden)
74
+ yield RunDetailsPanel(id="details-panel", classes="hidden")
75
+
76
+ async def on_button_pressed(self, event: Button.Pressed) -> None:
77
+ """Handle button press events."""
78
+ if event.button.id == "new-run-btn":
79
+ await self.action_new_run()
80
+ elif event.button.id == "execute-btn":
81
+ await self.action_execute_run()
82
+ elif event.button.id == "cancel-btn":
83
+ await self.action_cancel()
84
+
85
+ async def on_list_view_selected(self, event: ListView.Selected) -> None:
86
+ """Handle run selection from history."""
87
+ if event.list_view.id == "run-list" and event.item:
88
+ run_id = getattr(event.item, "run_id", None)
89
+ if run_id:
90
+ history_panel = self.query_one("#history-panel", RunHistoryPanel)
91
+ run = history_panel.get_run_by_id(run_id)
92
+ if run:
93
+ self._show_run_details(run)
94
+
95
+ async def action_new_run(self) -> None:
96
+ """Show new run panel."""
97
+ new_panel = self.query_one("#new-run-panel")
98
+ details_panel = self.query_one("#details-panel")
99
+
100
+ new_panel.remove_class("hidden")
101
+ details_panel.add_class("hidden")
102
+
103
+ async def action_cancel(self) -> None:
104
+ """Cancel and return to new run view."""
105
+ await self.action_new_run()
106
+
107
+ async def action_execute_run(self) -> None:
108
+ """Execute a new run with UiPath runtime."""
109
+ new_run_panel = self.query_one("#new-run-panel", NewRunPanel)
110
+ entrypoint, input_data = new_run_panel.get_input_values()
111
+
112
+ if not entrypoint:
113
+ return
114
+
115
+ try:
116
+ json.loads(input_data)
117
+ except json.JSONDecodeError:
118
+ return
119
+
120
+ run = ExecutionRun(entrypoint, input_data)
121
+ self.runs[run.id] = run
122
+
123
+ self._add_run_in_history(run)
124
+
125
+ self._show_run_details(run)
126
+
127
+ asyncio.create_task(self._execute_runtime(run))
128
+
129
+ async def action_clear_history(self) -> None:
130
+ """Clear run history."""
131
+ history_panel = self.query_one("#history-panel", RunHistoryPanel)
132
+ history_panel.clear_runs()
133
+ await self.action_new_run()
134
+
135
+ async def _execute_runtime(self, run: ExecutionRun):
136
+ """Execute the script using UiPath runtime."""
137
+ try:
138
+ context: UiPathRuntimeContext = self.runtime_factory.new_context(
139
+ entrypoint=run.entrypoint,
140
+ input=run.input_data,
141
+ trace_id=str(uuid4()),
142
+ execution_id=run.id,
143
+ logs_min_level=env.get("LOG_LEVEL", "INFO"),
144
+ log_handler=RunContextLogHandler(
145
+ run_id=run.id, on_log=self._handle_log_message
146
+ ),
147
+ )
148
+
149
+ self._add_info_log(run, f"Starting execution: {run.entrypoint}")
150
+
151
+ result = await self.runtime_factory.execute_in_root_span(context)
152
+
153
+ if result is not None:
154
+ run.output_data = json.dumps(result.output)
155
+ if run.output_data:
156
+ self._add_info_log(run, f"Execution result: {run.output_data}")
157
+
158
+ self._add_info_log(run, "✅ Execution completed successfully")
159
+ run.status = "completed"
160
+ run.end_time = datetime.now()
161
+
162
+ except Exception as e:
163
+ error_msg = f"Execution failed: {str(e)}"
164
+ self._add_error_log(run, error_msg)
165
+ run.status = "failed"
166
+ run.end_time = datetime.now()
167
+
168
+ self._update_run_in_history(run)
169
+ self._update_run_details(run)
170
+
171
+ def _show_run_details(self, run: ExecutionRun):
172
+ """Show details panel for a specific run."""
173
+ # Hide new run panel, show details panel
174
+ new_panel = self.query_one("#new-run-panel")
175
+ details_panel = self.query_one("#details-panel", RunDetailsPanel)
176
+
177
+ new_panel.add_class("hidden")
178
+ details_panel.remove_class("hidden")
179
+
180
+ # Populate the details panel with run data
181
+ details_panel.update_run(run)
182
+
183
+ def _add_run_in_history(self, run: ExecutionRun):
184
+ """Add run to history panel."""
185
+ history_panel = self.query_one("#history-panel", RunHistoryPanel)
186
+ history_panel.add_run(run)
187
+
188
+ def _update_run_in_history(self, run: ExecutionRun):
189
+ """Update run display in history panel."""
190
+ history_panel = self.query_one("#history-panel", RunHistoryPanel)
191
+ history_panel.update_run(run)
192
+
193
+ def _update_run_details(self, run: ExecutionRun):
194
+ """Update the displayed run information."""
195
+ details_panel = self.query_one("#details-panel", RunDetailsPanel)
196
+ details_panel.update_run_details(run)
197
+
198
+ def _handle_trace_message(self, trace_msg: TraceMessage):
199
+ """Handle trace message from exporter."""
200
+ run = self.runs[trace_msg.run_id]
201
+ for i, existing_trace in enumerate(run.traces):
202
+ if existing_trace.span_id == trace_msg.span_id:
203
+ run.traces[i] = trace_msg
204
+ break
205
+ else:
206
+ run.traces.append(trace_msg)
207
+
208
+ details_panel = self.query_one("#details-panel", RunDetailsPanel)
209
+ details_panel.add_trace(trace_msg)
210
+
211
+ def _handle_log_message(self, log_msg: LogMessage):
212
+ """Handle log message from exporter."""
213
+ self.runs[log_msg.run_id].logs.append(log_msg)
214
+ details_panel = self.query_one("#details-panel", RunDetailsPanel)
215
+ details_panel.add_log(log_msg)
216
+
217
+ def _add_info_log(self, run: ExecutionRun, message: str):
218
+ """Add info log to run."""
219
+ timestamp = datetime.now()
220
+ log_msg = LogMessage(run.id, "INFO", message, timestamp)
221
+ self._handle_log_message(log_msg)
222
+
223
+ def _add_error_log(self, run: ExecutionRun, message: str):
224
+ """Add error log to run."""
225
+ timestamp = datetime.now()
226
+ log_msg = LogMessage(run.id, "ERROR", message, timestamp)
227
+ self._handle_log_message(log_msg)