uipath 2.1.12__tar.gz → 2.1.14__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 (231) hide show
  1. {uipath-2.1.12 → uipath-2.1.14}/PKG-INFO +1 -1
  2. {uipath-2.1.12 → uipath-2.1.14}/pyproject.toml +1 -1
  3. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_common.py +16 -0
  4. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_init.py +27 -0
  5. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_pack.py +23 -1
  6. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/telemetry/_constants.py +3 -0
  7. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/telemetry/_track.py +24 -0
  8. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_pack.py +76 -0
  9. {uipath-2.1.12 → uipath-2.1.14}/uv.lock +846 -846
  10. {uipath-2.1.12 → uipath-2.1.14}/.cursorrules +0 -0
  11. {uipath-2.1.12 → uipath-2.1.14}/.editorconfig +0 -0
  12. {uipath-2.1.12 → uipath-2.1.14}/.gitattributes +0 -0
  13. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/cd.yml +0 -0
  14. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/ci.yml +0 -0
  15. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/commitlint.yml +0 -0
  16. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/lint.yml +0 -0
  17. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/publish-dev.yml +0 -0
  18. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/publish-docs.yml +0 -0
  19. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/slack.yml +0 -0
  20. {uipath-2.1.12 → uipath-2.1.14}/.github/workflows/test.yml +0 -0
  21. {uipath-2.1.12 → uipath-2.1.14}/.gitignore +0 -0
  22. {uipath-2.1.12 → uipath-2.1.14}/.pre-commit-config.yaml +0 -0
  23. {uipath-2.1.12 → uipath-2.1.14}/.python-version +0 -0
  24. {uipath-2.1.12 → uipath-2.1.14}/.vscode/extensions.json +0 -0
  25. {uipath-2.1.12 → uipath-2.1.14}/.vscode/launch.json +0 -0
  26. {uipath-2.1.12 → uipath-2.1.14}/.vscode/settings.json +0 -0
  27. {uipath-2.1.12 → uipath-2.1.14}/CONTRIBUTING.md +0 -0
  28. {uipath-2.1.12 → uipath-2.1.14}/LICENSE +0 -0
  29. {uipath-2.1.12 → uipath-2.1.14}/README.md +0 -0
  30. {uipath-2.1.12 → uipath-2.1.14}/docs/CONTRIBUTING.md +0 -0
  31. {uipath-2.1.12 → uipath-2.1.14}/docs/FAQ.md +0 -0
  32. {uipath-2.1.12 → uipath-2.1.14}/docs/assets/env-preparation-failed-dark.png +0 -0
  33. {uipath-2.1.12 → uipath-2.1.14}/docs/assets/env-preparation-failed-light.png +0 -0
  34. {uipath-2.1.12 → uipath-2.1.14}/docs/assets/favicon.png +0 -0
  35. {uipath-2.1.12 → uipath-2.1.14}/docs/assets/logo-dark.svg +0 -0
  36. {uipath-2.1.12 → uipath-2.1.14}/docs/assets/logo-light.svg +0 -0
  37. {uipath-2.1.12 → uipath-2.1.14}/docs/cli/index.md +0 -0
  38. {uipath-2.1.12 → uipath-2.1.14}/docs/core/actions.md +0 -0
  39. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  40. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_light.gif +0 -0
  41. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  42. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  43. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/copy_path_dark.png +0 -0
  44. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets/copy_path_light.png +0 -0
  45. {uipath-2.1.12 → uipath-2.1.14}/docs/core/assets.md +0 -0
  46. {uipath-2.1.12 → uipath-2.1.14}/docs/core/attachments.md +0 -0
  47. {uipath-2.1.12 → uipath-2.1.14}/docs/core/buckets.md +0 -0
  48. {uipath-2.1.12 → uipath-2.1.14}/docs/core/connections.md +0 -0
  49. {uipath-2.1.12 → uipath-2.1.14}/docs/core/context_grounding.md +0 -0
  50. {uipath-2.1.12 → uipath-2.1.14}/docs/core/environment_variables.md +0 -0
  51. {uipath-2.1.12 → uipath-2.1.14}/docs/core/getting_started.md +0 -0
  52. {uipath-2.1.12 → uipath-2.1.14}/docs/core/jobs.md +0 -0
  53. {uipath-2.1.12 → uipath-2.1.14}/docs/core/llm_gateway.md +0 -0
  54. {uipath-2.1.12 → uipath-2.1.14}/docs/core/processes.md +0 -0
  55. {uipath-2.1.12 → uipath-2.1.14}/docs/core/queues.md +0 -0
  56. {uipath-2.1.12 → uipath-2.1.14}/docs/core/traced.md +0 -0
  57. {uipath-2.1.12 → uipath-2.1.14}/docs/hooks.py +0 -0
  58. {uipath-2.1.12 → uipath-2.1.14}/docs/index.md +0 -0
  59. {uipath-2.1.12 → uipath-2.1.14}/docs/javascripts/extra.js +0 -0
  60. {uipath-2.1.12 → uipath-2.1.14}/docs/overrides/main.html +0 -0
  61. {uipath-2.1.12 → uipath-2.1.14}/docs/overrides/partials/actions.html +0 -0
  62. {uipath-2.1.12 → uipath-2.1.14}/docs/overrides/partials/logo.html +0 -0
  63. {uipath-2.1.12 → uipath-2.1.14}/docs/release_policy.md +0 -0
  64. {uipath-2.1.12 → uipath-2.1.14}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  65. {uipath-2.1.12 → uipath-2.1.14}/docs/stylesheets/extra.css +0 -0
  66. {uipath-2.1.12 → uipath-2.1.14}/justfile +0 -0
  67. {uipath-2.1.12 → uipath-2.1.14}/mkdocs.yml +0 -0
  68. {uipath-2.1.12 → uipath-2.1.14}/py.typed +0 -0
  69. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/.env.example +0 -0
  70. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/README.md +0 -0
  71. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/input.json +0 -0
  72. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  73. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  74. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/pyproject.toml +0 -0
  75. {uipath-2.1.12 → uipath-2.1.14}/samples/google-ADK-agent/uv.lock +0 -0
  76. {uipath-2.1.12 → uipath-2.1.14}/scripts/debug_test.py +0 -0
  77. {uipath-2.1.12 → uipath-2.1.14}/scripts/lint_httpx_client.py +0 -0
  78. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/__init__.py +0 -0
  79. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/README.md +0 -0
  80. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/__init__.py +0 -0
  81. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  82. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
  83. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_models.py +0 -0
  84. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  85. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  86. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/_utils.py +0 -0
  87. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/auth_config.json +0 -0
  88. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/index.html +0 -0
  89. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/localhost.crt +0 -0
  90. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_auth/localhost.key +0 -0
  91. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/__init__.py +0 -0
  92. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_agent_scorer_evaluator.py +0 -0
  93. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_deterministic_evaluator.py +0 -0
  94. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_evaluator_base.py +0 -0
  95. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_evaluator_factory.py +0 -0
  96. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_llm_as_judge_evaluator.py +0 -0
  97. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_evaluators/_trajectory_evaluator.py +0 -0
  98. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_models/__init__.py +0 -0
  99. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
  100. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/_models/_evaluators.py +0 -0
  101. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/evaluation_service.py +0 -0
  102. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_evals/progress_reporter.py +0 -0
  103. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_contracts.py +0 -0
  104. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  105. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  106. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_logging.py +0 -0
  107. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  108. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  109. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/.rels.template +0 -0
  110. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  111. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/main.py.template +0 -0
  112. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  113. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_console.py +0 -0
  114. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_constants.py +0 -0
  115. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_debug.py +0 -0
  116. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_folders.py +0 -0
  117. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_input_args.py +0 -0
  118. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  119. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_processes.py +0 -0
  120. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_project_files.py +0 -0
  121. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_studio_project.py +0 -0
  122. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_tracing.py +0 -0
  123. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
  124. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_auth.py +0 -0
  125. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_deploy.py +0 -0
  126. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_eval.py +0 -0
  127. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_invoke.py +0 -0
  128. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_new.py +0 -0
  129. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_publish.py +0 -0
  130. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_pull.py +0 -0
  131. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_push.py +0 -0
  132. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/cli_run.py +0 -0
  133. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/middlewares.py +0 -0
  134. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_cli/spinner.py +0 -0
  135. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_config.py +0 -0
  136. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_execution_context.py +0 -0
  137. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_folder_context.py +0 -0
  138. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/__init__.py +0 -0
  139. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/_base_service.py +0 -0
  140. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/actions_service.py +0 -0
  141. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/api_client.py +0 -0
  142. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/assets_service.py +0 -0
  143. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/attachments_service.py +0 -0
  144. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/buckets_service.py +0 -0
  145. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/connections_service.py +0 -0
  146. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/context_grounding_service.py +0 -0
  147. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/folder_service.py +0 -0
  148. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/jobs_service.py +0 -0
  149. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/llm_gateway_service.py +0 -0
  150. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/processes_service.py +0 -0
  151. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_services/queues_service.py +0 -0
  152. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_uipath.py +0 -0
  153. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/__init__.py +0 -0
  154. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_endpoint.py +0 -0
  155. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_infer_bindings.py +0 -0
  156. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_logs.py +0 -0
  157. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_read_overwrites.py +0 -0
  158. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_request_override.py +0 -0
  159. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_request_spec.py +0 -0
  160. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_ssl_context.py +0 -0
  161. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_url.py +0 -0
  162. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/_user_agent.py +0 -0
  163. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/_utils/constants.py +0 -0
  164. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/__init__.py +0 -0
  165. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/action_schema.py +0 -0
  166. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/actions.py +0 -0
  167. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/assets.py +0 -0
  168. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/attachment.py +0 -0
  169. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/buckets.py +0 -0
  170. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/connections.py +0 -0
  171. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/context_grounding.py +0 -0
  172. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/context_grounding_index.py +0 -0
  173. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/errors.py +0 -0
  174. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/exceptions.py +0 -0
  175. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/interrupt_models.py +0 -0
  176. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/job.py +0 -0
  177. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/llm_gateway.py +0 -0
  178. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/processes.py +0 -0
  179. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/models/queues.py +0 -0
  180. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/py.typed +0 -0
  181. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/telemetry/__init__.py +0 -0
  182. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/__init__.py +0 -0
  183. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/_otel_exporters.py +0 -0
  184. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/_traced.py +0 -0
  185. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/tracing/_utils.py +0 -0
  186. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/utils/__init__.py +0 -0
  187. {uipath-2.1.12 → uipath-2.1.14}/src/uipath/utils/_endpoints_manager.py +0 -0
  188. {uipath-2.1.12 → uipath-2.1.14}/tests/__init__.py +0 -0
  189. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/conftest.py +0 -0
  190. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/bindings_script.py +0 -0
  191. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/pyproject.toml +0 -0
  192. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/simple_script.py +0 -0
  193. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/uipath-mock.json +0 -0
  194. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  195. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_hitl.py +0 -0
  196. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_init.py +0 -0
  197. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_invoke.py +0 -0
  198. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_new.py +0 -0
  199. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_publish.py +0 -0
  200. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_pull.py +0 -0
  201. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_push.py +0 -0
  202. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_run.py +0 -0
  203. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/test_utils.py +0 -0
  204. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/utils/common.py +0 -0
  205. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/utils/project_details.py +0 -0
  206. {uipath-2.1.12 → uipath-2.1.14}/tests/cli/utils/uipath_json.py +0 -0
  207. {uipath-2.1.12 → uipath-2.1.14}/tests/conftest.py +0 -0
  208. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/conftest.py +0 -0
  209. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_actions_service.py +0 -0
  210. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_api_client.py +0 -0
  211. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_assets_service.py +0 -0
  212. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_attachments_service.py +0 -0
  213. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_base_service.py +0 -0
  214. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_buckets_service.py +0 -0
  215. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_connections_service.py +0 -0
  216. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_context_grounding_service.py +0 -0
  217. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_folder_service.py +0 -0
  218. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_jobs_service.py +0 -0
  219. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_llm_integration.py +0 -0
  220. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
  221. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_llm_service.py +0 -0
  222. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_processes_service.py +0 -0
  223. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_queues_service.py +0 -0
  224. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  225. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/test_bindings_inference.py +0 -0
  226. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/test_config.py +0 -0
  227. {uipath-2.1.12 → uipath-2.1.14}/tests/sdk/test_overwrites.py +0 -0
  228. {uipath-2.1.12 → uipath-2.1.14}/tests/tracing/test_otel_exporters.py +0 -0
  229. {uipath-2.1.12 → uipath-2.1.14}/tests/tracing/test_span_utils.py +0 -0
  230. {uipath-2.1.12 → uipath-2.1.14}/tests/tracing/test_traced.py +0 -0
  231. {uipath-2.1.12 → uipath-2.1.14}/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.12
3
+ Version: 2.1.14
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.12"
3
+ version = "2.1.14"
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"
@@ -86,3 +86,19 @@ def get_org_scoped_url(base_url: str) -> str:
86
86
  org_name, *_ = parsed.path.strip("/").split("/")
87
87
  org_scoped_url = f"{parsed.scheme}://{parsed.netloc}/{org_name}"
88
88
  return org_scoped_url
89
+
90
+
91
+ def clean_directory(directory: str) -> None:
92
+ """Clean up Python files in the specified directory.
93
+
94
+ Args:
95
+ directory (str): Path to the directory to clean.
96
+
97
+ This function removes all Python files (*.py) from the specified directory.
98
+ It's used to prepare a directory for a quickstart agent/coded MCP server.
99
+ """
100
+ for file_name in os.listdir(directory):
101
+ file_path = os.path.join(directory, file_name)
102
+
103
+ if os.path.isfile(file_path) and file_name.endswith(".py"):
104
+ os.remove(file_path)
@@ -8,7 +8,9 @@ from typing import Any, Dict, Optional
8
8
  import click
9
9
  from dotenv import load_dotenv
10
10
 
11
+ from .._utils.constants import ENV_TELEMETRY_ENABLED
11
12
  from ..telemetry import track
13
+ from ..telemetry._constants import _PROJECT_KEY, _TELEMETRY_CONFIG_FILE
12
14
  from ._utils._console import ConsoleLogger
13
15
  from ._utils._input_args import generate_args
14
16
  from ._utils._parse_ast import generate_bindings_json
@@ -19,6 +21,30 @@ console = ConsoleLogger()
19
21
  CONFIG_PATH = "uipath.json"
20
22
 
21
23
 
24
+ def create_telemetry_config_file(target_directory: str) -> None:
25
+ """Create telemetry file if telemetry is enabled.
26
+
27
+ Args:
28
+ target_directory: The directory where the .uipath folder should be created.
29
+ """
30
+ telemetry_enabled = os.getenv(ENV_TELEMETRY_ENABLED, "true").lower() == "true"
31
+
32
+ if not telemetry_enabled:
33
+ return
34
+
35
+ uipath_dir = os.path.join(target_directory, ".uipath")
36
+ telemetry_file = os.path.join(uipath_dir, _TELEMETRY_CONFIG_FILE)
37
+
38
+ if os.path.exists(telemetry_file):
39
+ return
40
+
41
+ os.makedirs(uipath_dir, exist_ok=True)
42
+ telemetry_data = {_PROJECT_KEY: str(uuid.uuid4())}
43
+
44
+ with open(telemetry_file, "w") as f:
45
+ json.dump(telemetry_data, f, indent=4)
46
+
47
+
22
48
  def generate_env_file(target_directory):
23
49
  env_path = os.path.join(target_directory, ".env")
24
50
 
@@ -103,6 +129,7 @@ def init(entrypoint: str, infer_bindings: bool) -> None:
103
129
  with console.spinner("Initializing UiPath project ..."):
104
130
  current_directory = os.getcwd()
105
131
  generate_env_file(current_directory)
132
+ create_telemetry_config_file(current_directory)
106
133
 
107
134
  result = Middlewares.next(
108
135
  "init",
@@ -8,6 +8,7 @@ from string import Template
8
8
  import click
9
9
 
10
10
  from ..telemetry import track
11
+ from ..telemetry._constants import _PROJECT_KEY, _TELEMETRY_CONFIG_FILE
11
12
  from ._utils._console import ConsoleLogger
12
13
  from ._utils._project_files import (
13
14
  ensure_config_file,
@@ -23,6 +24,27 @@ console = ConsoleLogger()
23
24
  schema = "https://cloud.uipath.com/draft/2024-12/entry-point"
24
25
 
25
26
 
27
+ def get_project_id() -> str:
28
+ """Get project ID from telemetry file if it exists, otherwise generate a new one.
29
+
30
+ Returns:
31
+ Project ID string (either from telemetry file or newly generated).
32
+ """
33
+ telemetry_file = os.path.join(".uipath", _TELEMETRY_CONFIG_FILE)
34
+
35
+ if os.path.exists(telemetry_file):
36
+ try:
37
+ with open(telemetry_file, "r") as f:
38
+ telemetry_data = json.load(f)
39
+ project_id = telemetry_data.get(_PROJECT_KEY)
40
+ if project_id:
41
+ return project_id
42
+ except (json.JSONDecodeError, IOError):
43
+ pass
44
+
45
+ return str(uuid.uuid4())
46
+
47
+
26
48
  def get_project_version(directory):
27
49
  toml_path = os.path.join(directory, "pyproject.toml")
28
50
  if not os.path.exists(toml_path):
@@ -40,7 +62,7 @@ def validate_config_structure(config_data):
40
62
 
41
63
 
42
64
  def generate_operate_file(entryPoints, dependencies=None):
43
- project_id = str(uuid.uuid4())
65
+ project_id = get_project_id()
44
66
 
45
67
  first_entry = entryPoints[0]
46
68
  file_path = first_entry["filePath"]
@@ -3,6 +3,9 @@ _CONNECTION_STRING = "InstrumentationKey=4128b5ed-f5ec-4612-ac32-b8cff0f2de93;In
3
3
  _APP_INSIGHTS_EVENT_MARKER_ATTRIBUTE = "APPLICATION_INSIGHTS_EVENT_MARKER_ATTRIBUTE"
4
4
  _OTEL_RESOURCE_ATTRIBUTES = "OTEL_RESOURCE_ATTRIBUTES"
5
5
  _SDK_VERSION = "SdkVersion"
6
+ _PROJECT_KEY = "ProjectKey"
7
+
8
+ _TELEMETRY_CONFIG_FILE = ".telemetry.json"
6
9
 
7
10
  _CODE_FILEPATH = "code.file.path"
8
11
  _CODE_FUNCTION = "code.function.name"
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import os
2
3
  from functools import wraps
3
4
  from importlib.metadata import version
@@ -25,7 +26,9 @@ from ._constants import (
25
26
  _CODE_LINENO,
26
27
  _CONNECTION_STRING,
27
28
  _OTEL_RESOURCE_ATTRIBUTES,
29
+ _PROJECT_KEY,
28
30
  _SDK_VERSION,
31
+ _TELEMETRY_CONFIG_FILE,
29
32
  _UNKNOWN,
30
33
  )
31
34
 
@@ -33,6 +36,26 @@ _logger = getLogger(__name__)
33
36
  _logger.propagate = False
34
37
 
35
38
 
39
+ def _get_project_key() -> str:
40
+ """Get project key from telemetry file if present.
41
+
42
+ Returns:
43
+ Project key string if available, otherwise empty string.
44
+ """
45
+ try:
46
+ telemetry_file = os.path.join(".uipath", _TELEMETRY_CONFIG_FILE)
47
+ if os.path.exists(telemetry_file):
48
+ with open(telemetry_file, "r") as f:
49
+ telemetry_data = json.load(f)
50
+ project_id = telemetry_data.get(_PROJECT_KEY)
51
+ if project_id:
52
+ return project_id
53
+ except (json.JSONDecodeError, IOError, KeyError):
54
+ pass
55
+
56
+ return _UNKNOWN
57
+
58
+
36
59
  class _AzureMonitorOpenTelemetryEventHandler(LoggingHandler):
37
60
  @staticmethod
38
61
  def _get_attributes(record: LogRecord) -> Attributes:
@@ -43,6 +66,7 @@ class _AzureMonitorOpenTelemetryEventHandler(LoggingHandler):
43
66
  attributes[_CLOUD_URL] = os.getenv(ENV_BASE_URL, _UNKNOWN)
44
67
  attributes[_APP_NAME] = "UiPath.Sdk"
45
68
  attributes[_SDK_VERSION] = version("uipath")
69
+ attributes[_PROJECT_KEY] = _get_project_key()
46
70
 
47
71
  if _CODE_FILEPATH in attributes:
48
72
  del attributes[_CODE_FILEPATH]
@@ -493,3 +493,79 @@ class TestPack:
493
493
  assert "projectId" in operate_data
494
494
  assert operate_data["targetRuntime"] == "python"
495
495
  assert operate_data["targetFramework"] == "Portable"
496
+
497
+ def test_nupkg_contains_all_necessary_files(
498
+ self,
499
+ runner: CliRunner,
500
+ temp_dir: str,
501
+ project_details: ProjectDetails,
502
+ uipath_json: UiPathJson,
503
+ ) -> None:
504
+ with runner.isolated_filesystem(temp_dir=temp_dir):
505
+ with open("uipath.json", "w") as f:
506
+ f.write(uipath_json.to_json())
507
+ with open("pyproject.toml", "w") as f:
508
+ f.write(project_details.to_toml())
509
+ with open("uv.lock", "w") as f:
510
+ f.write("# uv.lock content")
511
+ for entry in uipath_json.entry_points:
512
+ with open(f"{entry.file_path}.py", "w") as f:
513
+ f.write("# agent content")
514
+
515
+ result = runner.invoke(pack, ["./"])
516
+ assert result.exit_code == 0
517
+
518
+ nupkg_path = (
519
+ f".uipath/{project_details.name}.{project_details.version}.nupkg"
520
+ )
521
+ assert os.path.exists(nupkg_path)
522
+
523
+ # List of expected files in the package
524
+ expected_files = [
525
+ "content/uipath.json",
526
+ "content/pyproject.toml",
527
+ "content/operate.json",
528
+ "content/entry-points.json",
529
+ "content/bindings_v2.json",
530
+ "content/uv.lock",
531
+ ]
532
+
533
+ for entry in uipath_json.entry_points:
534
+ expected_files.append(f"content/{entry.file_path}.py")
535
+
536
+ with zipfile.ZipFile(nupkg_path, "r") as z:
537
+ actual_files = set(z.namelist())
538
+ for expected in expected_files:
539
+ assert expected in actual_files, f"Missing {expected} in nupkg"
540
+
541
+ def test_no_uv_lock_with_nolock(
542
+ self,
543
+ runner: CliRunner,
544
+ temp_dir: str,
545
+ project_details: ProjectDetails,
546
+ uipath_json: UiPathJson,
547
+ ) -> None:
548
+ with runner.isolated_filesystem(temp_dir=temp_dir):
549
+ with open("uipath.json", "w") as f:
550
+ f.write(uipath_json.to_json())
551
+ with open("pyproject.toml", "w") as f:
552
+ f.write(project_details.to_toml())
553
+ with open("uv.lock", "w") as f:
554
+ f.write("# uv.lock content")
555
+ for entry in uipath_json.entry_points:
556
+ with open(f"{entry.file_path}.py", "w") as f:
557
+ f.write("# agent content")
558
+
559
+ result = runner.invoke(pack, ["./", "--nolock"])
560
+ assert result.exit_code == 0
561
+
562
+ nupkg_path = (
563
+ f".uipath/{project_details.name}.{project_details.version}.nupkg"
564
+ )
565
+ assert os.path.exists(nupkg_path)
566
+
567
+ with zipfile.ZipFile(nupkg_path, "r") as z:
568
+ actual_files = set(z.namelist())
569
+ assert "content/uv.lock" not in actual_files, (
570
+ "uv.lock should not be in nupkg when --nolock is used"
571
+ )