uipath 2.0.80__tar.gz → 2.0.81__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 (209) hide show
  1. {uipath-2.0.80 → uipath-2.0.81}/PKG-INFO +1 -1
  2. uipath-2.0.81/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  3. {uipath-2.0.80 → uipath-2.0.81}/pyproject.toml +4 -1
  4. uipath-2.0.81/samples/google-ADK-agent/.env.example +2 -0
  5. uipath-2.0.81/samples/google-ADK-agent/README.md +110 -0
  6. uipath-2.0.81/samples/google-ADK-agent/input.json +3 -0
  7. uipath-2.0.81/samples/google-ADK-agent/multi_tool_agent/__init__.py +1 -0
  8. uipath-2.0.81/samples/google-ADK-agent/multi_tool_agent/agent.py +124 -0
  9. uipath-2.0.81/samples/google-ADK-agent/pyproject.toml +11 -0
  10. uipath-2.0.81/samples/google-ADK-agent/uv.lock +2496 -0
  11. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/_base_service.py +13 -2
  12. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/processes_service.py +0 -1
  13. uipath-2.0.81/src/uipath/models/exceptions.py +36 -0
  14. {uipath-2.0.80 → uipath-2.0.81}/uv.lock +1 -1
  15. uipath-2.0.80/src/uipath/models/exceptions.py +0 -13
  16. {uipath-2.0.80 → uipath-2.0.81}/.cursorrules +0 -0
  17. {uipath-2.0.80 → uipath-2.0.81}/.editorconfig +0 -0
  18. {uipath-2.0.80 → uipath-2.0.81}/.gitattributes +0 -0
  19. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/cd.yml +0 -0
  20. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/ci.yml +0 -0
  21. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/commitlint.yml +0 -0
  22. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/lint.yml +0 -0
  23. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/publish-dev.yml +0 -0
  24. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/publish-docs.yml +0 -0
  25. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/slack.yml +0 -0
  26. {uipath-2.0.80 → uipath-2.0.81}/.github/workflows/test.yml +0 -0
  27. {uipath-2.0.80 → uipath-2.0.81}/.gitignore +0 -0
  28. {uipath-2.0.80 → uipath-2.0.81}/.pre-commit-config.yaml +0 -0
  29. {uipath-2.0.80 → uipath-2.0.81}/.python-version +0 -0
  30. {uipath-2.0.80 → uipath-2.0.81}/.vscode/extensions.json +0 -0
  31. {uipath-2.0.80 → uipath-2.0.81}/.vscode/launch.json +0 -0
  32. {uipath-2.0.80 → uipath-2.0.81}/.vscode/settings.json +0 -0
  33. {uipath-2.0.80 → uipath-2.0.81}/CONTRIBUTING.md +0 -0
  34. {uipath-2.0.80 → uipath-2.0.81}/LICENSE +0 -0
  35. {uipath-2.0.80 → uipath-2.0.81}/README.md +0 -0
  36. {uipath-2.0.80 → uipath-2.0.81}/docs/CONTRIBUTING.md +0 -0
  37. {uipath-2.0.80 → uipath-2.0.81}/docs/FAQ.md +0 -0
  38. {uipath-2.0.80 → uipath-2.0.81}/docs/assets/env-preparation-failed-dark.png +0 -0
  39. {uipath-2.0.80 → uipath-2.0.81}/docs/assets/env-preparation-failed-light.png +0 -0
  40. {uipath-2.0.80 → uipath-2.0.81}/docs/assets/favicon.png +0 -0
  41. {uipath-2.0.80 → uipath-2.0.81}/docs/assets/logo-dark.svg +0 -0
  42. {uipath-2.0.80 → uipath-2.0.81}/docs/assets/logo-light.svg +0 -0
  43. {uipath-2.0.80 → uipath-2.0.81}/docs/cli/index.md +0 -0
  44. {uipath-2.0.80 → uipath-2.0.81}/docs/core/actions.md +0 -0
  45. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  46. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets/cloud_env_var_light.gif +0 -0
  47. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  48. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  49. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets/copy_path_dark.png +0 -0
  50. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets/copy_path_light.png +0 -0
  51. {uipath-2.0.80 → uipath-2.0.81}/docs/core/assets.md +0 -0
  52. {uipath-2.0.80 → uipath-2.0.81}/docs/core/attachments.md +0 -0
  53. {uipath-2.0.80 → uipath-2.0.81}/docs/core/buckets.md +0 -0
  54. {uipath-2.0.80 → uipath-2.0.81}/docs/core/connections.md +0 -0
  55. {uipath-2.0.80 → uipath-2.0.81}/docs/core/context_grounding.md +0 -0
  56. {uipath-2.0.80 → uipath-2.0.81}/docs/core/environment_variables.md +0 -0
  57. {uipath-2.0.80 → uipath-2.0.81}/docs/core/getting_started.md +0 -0
  58. {uipath-2.0.80 → uipath-2.0.81}/docs/core/jobs.md +0 -0
  59. {uipath-2.0.80 → uipath-2.0.81}/docs/core/processes.md +0 -0
  60. {uipath-2.0.80 → uipath-2.0.81}/docs/core/queues.md +0 -0
  61. {uipath-2.0.80 → uipath-2.0.81}/docs/core/traced.md +0 -0
  62. {uipath-2.0.80 → uipath-2.0.81}/docs/hooks.py +0 -0
  63. {uipath-2.0.80 → uipath-2.0.81}/docs/index.md +0 -0
  64. {uipath-2.0.80 → uipath-2.0.81}/docs/javascripts/extra.js +0 -0
  65. {uipath-2.0.80 → uipath-2.0.81}/docs/overrides/main.html +0 -0
  66. {uipath-2.0.80 → uipath-2.0.81}/docs/overrides/partials/actions.html +0 -0
  67. {uipath-2.0.80 → uipath-2.0.81}/docs/overrides/partials/logo.html +0 -0
  68. {uipath-2.0.80 → uipath-2.0.81}/docs/release_policy.md +0 -0
  69. {uipath-2.0.80 → uipath-2.0.81}/docs/stylesheets/extra.css +0 -0
  70. {uipath-2.0.80 → uipath-2.0.81}/justfile +0 -0
  71. {uipath-2.0.80 → uipath-2.0.81}/mkdocs.yml +0 -0
  72. {uipath-2.0.80 → uipath-2.0.81}/py.typed +0 -0
  73. {uipath-2.0.80 → uipath-2.0.81}/scripts/debug_test.py +0 -0
  74. {uipath-2.0.80 → uipath-2.0.81}/scripts/lint_httpx_client.py +0 -0
  75. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/__init__.py +0 -0
  76. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/README.md +0 -0
  77. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/__init__.py +0 -0
  78. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  79. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
  80. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/_models.py +0 -0
  81. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  82. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  83. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/_utils.py +0 -0
  84. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/auth_config.json +0 -0
  85. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/index.html +0 -0
  86. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/localhost.crt +0 -0
  87. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_auth/localhost.key +0 -0
  88. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_runtime/_contracts.py +0 -0
  89. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  90. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  91. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_runtime/_logging.py +0 -0
  92. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  93. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  94. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_templates/.rels.template +0 -0
  95. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  96. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_templates/main.py.template +0 -0
  97. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  98. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_common.py +0 -0
  99. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_console.py +0 -0
  100. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_constants.py +0 -0
  101. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_debug.py +0 -0
  102. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_folders.py +0 -0
  103. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_input_args.py +0 -0
  104. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  105. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_processes.py +0 -0
  106. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/_utils/_tracing.py +0 -0
  107. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_auth.py +0 -0
  108. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_deploy.py +0 -0
  109. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_init.py +0 -0
  110. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_invoke.py +0 -0
  111. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_new.py +0 -0
  112. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_pack.py +0 -0
  113. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_publish.py +0 -0
  114. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/cli_run.py +0 -0
  115. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/middlewares.py +0 -0
  116. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_cli/spinner.py +0 -0
  117. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_config.py +0 -0
  118. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_execution_context.py +0 -0
  119. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_folder_context.py +0 -0
  120. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/__init__.py +0 -0
  121. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/actions_service.py +0 -0
  122. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/api_client.py +0 -0
  123. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/assets_service.py +0 -0
  124. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/attachments_service.py +0 -0
  125. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/buckets_service.py +0 -0
  126. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/connections_service.py +0 -0
  127. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/context_grounding_service.py +0 -0
  128. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/folder_service.py +0 -0
  129. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/jobs_service.py +0 -0
  130. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/llm_gateway_service.py +0 -0
  131. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_services/queues_service.py +0 -0
  132. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_uipath.py +0 -0
  133. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/__init__.py +0 -0
  134. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_endpoint.py +0 -0
  135. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_infer_bindings.py +0 -0
  136. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_logs.py +0 -0
  137. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_read_overwrites.py +0 -0
  138. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_request_override.py +0 -0
  139. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_request_spec.py +0 -0
  140. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_ssl_context.py +0 -0
  141. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_url.py +0 -0
  142. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/_user_agent.py +0 -0
  143. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/_utils/constants.py +0 -0
  144. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/__init__.py +0 -0
  145. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/action_schema.py +0 -0
  146. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/actions.py +0 -0
  147. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/assets.py +0 -0
  148. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/attachment.py +0 -0
  149. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/buckets.py +0 -0
  150. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/connections.py +0 -0
  151. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/context_grounding.py +0 -0
  152. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/context_grounding_index.py +0 -0
  153. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/errors.py +0 -0
  154. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/interrupt_models.py +0 -0
  155. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/job.py +0 -0
  156. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/llm_gateway.py +0 -0
  157. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/processes.py +0 -0
  158. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/models/queues.py +0 -0
  159. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/py.typed +0 -0
  160. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/telemetry/__init__.py +0 -0
  161. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/telemetry/_constants.py +0 -0
  162. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/telemetry/_track.py +0 -0
  163. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/tracing/__init__.py +0 -0
  164. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/tracing/_otel_exporters.py +0 -0
  165. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/tracing/_traced.py +0 -0
  166. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/tracing/_utils.py +0 -0
  167. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/utils/__init__.py +0 -0
  168. {uipath-2.0.80 → uipath-2.0.81}/src/uipath/utils/_endpoints_manager.py +0 -0
  169. {uipath-2.0.80 → uipath-2.0.81}/tests/__init__.py +0 -0
  170. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/conftest.py +0 -0
  171. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/mocks/bindings_script.py +0 -0
  172. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/mocks/pyproject.toml +0 -0
  173. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/mocks/simple_script.py +0 -0
  174. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/mocks/uipath-mock.json +0 -0
  175. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  176. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_hitl.py +0 -0
  177. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_init.py +0 -0
  178. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_invoke.py +0 -0
  179. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_new.py +0 -0
  180. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_pack.py +0 -0
  181. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_publish.py +0 -0
  182. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_run.py +0 -0
  183. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/test_utils.py +0 -0
  184. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/utils/project_details.py +0 -0
  185. {uipath-2.0.80 → uipath-2.0.81}/tests/cli/utils/uipath_json.py +0 -0
  186. {uipath-2.0.80 → uipath-2.0.81}/tests/conftest.py +0 -0
  187. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/conftest.py +0 -0
  188. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_actions_service.py +0 -0
  189. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_api_client.py +0 -0
  190. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_assets_service.py +0 -0
  191. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_attachments_service.py +0 -0
  192. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_base_service.py +0 -0
  193. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_buckets_service.py +0 -0
  194. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_connections_service.py +0 -0
  195. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_context_grounding_service.py +0 -0
  196. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_folder_service.py +0 -0
  197. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_jobs_service.py +0 -0
  198. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_llm_integration.py +0 -0
  199. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_llm_service.py +0 -0
  200. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_processes_service.py +0 -0
  201. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_queues_service.py +0 -0
  202. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  203. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/test_bindings_inference.py +0 -0
  204. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/test_config.py +0 -0
  205. {uipath-2.0.80 → uipath-2.0.81}/tests/sdk/test_overwrites.py +0 -0
  206. {uipath-2.0.80 → uipath-2.0.81}/tests/tracing/test_otel_exporters.py +0 -0
  207. {uipath-2.0.80 → uipath-2.0.81}/tests/tracing/test_span_utils.py +0 -0
  208. {uipath-2.0.80 → uipath-2.0.81}/tests/tracing/test_traced.py +0 -0
  209. {uipath-2.0.80 → uipath-2.0.81}/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.0.80
3
+ Version: 2.0.81
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.0.80"
3
+ version = "2.0.81"
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"
@@ -76,6 +76,7 @@ packages = ["src/uipath"]
76
76
  [tool.ruff]
77
77
  line-length = 88
78
78
  indent-width = 4
79
+ exclude = ["samples/**"]
79
80
 
80
81
  [tool.ruff.lint]
81
82
  select = ["E", "F", "B", "I", "D"]
@@ -103,6 +104,8 @@ line-ending = "auto"
103
104
 
104
105
  [tool.mypy]
105
106
  plugins = ["pydantic.mypy"]
107
+ exclude = ["samples/.*"]
108
+
106
109
 
107
110
  follow_imports = "silent"
108
111
  warn_redundant_casts = true
@@ -0,0 +1,2 @@
1
+ GOOGLE_GENAI_USE_VERTEXAI=FALSE
2
+ GOOGLE_API_KEY=YOUR_GOOGLE_API_KEY_HERE
@@ -0,0 +1,110 @@
1
+ # UiPath Google ADK Agent
2
+
3
+ ## Overview
4
+
5
+ This project showcases how to run Google's Agent Development Kit (ADK) agents on the UiPath Platform using the UiPath SDK. The implementation follows the [Google ADK Quickstart](https://google.github.io/adk-docs/get-started/quickstart/#agentpy) guide, demonstrating the ability to deploy and execute ADK agents within the UiPath ecosystem.
6
+
7
+ ## Features
8
+
9
+ - Integration with Google's Gemini model
10
+ - Seamless deployment to UiPath Platform
11
+
12
+ ## Prerequisites
13
+
14
+ 1. Python 3.10+
15
+ 2. Google AI Studio API key
16
+ 3. UiPath Platform account
17
+
18
+ ## Setup and Configuration
19
+
20
+ 1. **Create and activate a virtual environment**:
21
+ ```bash
22
+ pip install uv
23
+ uv venv
24
+ # Windows
25
+ .venv\Scripts\activate
26
+ # Unix/MacOS
27
+ source .venv/bin/activate
28
+ ```
29
+
30
+ 2. **Install dependencies**:
31
+ ```bash
32
+ uv sync
33
+ ```
34
+
35
+ 3. **Initialize UiPath configuration**:
36
+ ```bash
37
+ uipath init .\multi_tool_agent\agent.py
38
+ ```
39
+ This command will create (or update):
40
+ - `uipath.json`: Contains input/output schemas and bindings
41
+ - `.env`: Template for environment variables
42
+
43
+ For more details about the init command, see the [CLI Reference documentation](https://uipath.github.io/uipath-python/cli/#init).
44
+
45
+ 4. **Configure environment variables**:
46
+ Update the `.env` file with:
47
+ ```
48
+ GOOGLE_GENAI_USE_VERTEXAI=FALSE
49
+ GOOGLE_API_KEY=YOUR_API_KEY_HERE
50
+ ```
51
+
52
+ ## Deployment to UiPath Platform
53
+
54
+ 1. **Authenticate with UiPath**:
55
+ ```bash
56
+ uipath auth
57
+ ```
58
+
59
+ 2. **Package the agent**:
60
+ ```bash
61
+ uipath pack
62
+ ```
63
+
64
+ 3. **Publish to your workspace**:
65
+ ```bash
66
+ uipath publish --my-workspace
67
+ ```
68
+
69
+ ## Running the Agent
70
+
71
+ ### On UiPath Platform
72
+
73
+ 1. **Using CLI**:
74
+ ```bash
75
+ uipath invoke agent --file input.json
76
+ ```
77
+
78
+ 2. **From Orchestrator**:
79
+ - Navigate to Processes
80
+ - Find your published agent
81
+ - Click Run
82
+ - Provide input parameters
83
+
84
+ ### Local Development
85
+
86
+ For local testing and development:
87
+ ```bash
88
+ uipath run agent --file input.json
89
+ # Debug mode
90
+ uipath run agent --file input.json --debug
91
+ ```
92
+
93
+ ## Example Query and Output
94
+
95
+ Query:
96
+ ```
97
+ "What time is it in New York, and what's the weather like?"
98
+ ```
99
+
100
+ When running on the UiPath Platform, you'll see the output in the job details:
101
+
102
+ ![Agent Output in UiPath Platform](../../docs/sample_images/google-ADK-agent/agent-output.png)
103
+
104
+ ## Notes
105
+
106
+ - The agent uses Google's Gemini model for natural language processing
107
+ - All agent interactions are logged and can be monitored through UiPath's tracing capabilities
108
+ - The agent can be extended with additional tools and capabilities
109
+
110
+ For more information about Google ADK, visit the [official documentation](https://google.github.io/adk-docs/).
@@ -0,0 +1,3 @@
1
+ {
2
+ "query": "What time is it in New York, and what's the weather like?"
3
+ }
@@ -0,0 +1 @@
1
+ from . import agent
@@ -0,0 +1,124 @@
1
+ import dataclasses
2
+ import datetime
3
+ from typing import Dict
4
+ from zoneinfo import ZoneInfo
5
+
6
+ from google.adk.agents import Agent
7
+ from google.adk.runners import Runner
8
+ from google.adk.sessions import InMemorySessionService
9
+ from google.genai.types import Content, Part
10
+
11
+
12
+ def get_weather(city: str) -> Dict[str, str]:
13
+ """Retrieves the current weather report for a specified city.
14
+
15
+ Args:
16
+ city (str): The name of the city for which to retrieve the weather report.
17
+
18
+ Returns:
19
+ Dict[str, str]: Dictionary containing status and result or error message.
20
+ """
21
+ if city.lower() == "new york":
22
+ return {
23
+ "status": "success",
24
+ "report": (
25
+ "The weather in New York is sunny with a temperature of 25 degrees"
26
+ " Celsius (77 degrees Fahrenheit)."
27
+ ),
28
+ }
29
+ else:
30
+ return {
31
+ "status": "error",
32
+ "error_message": f"Weather information for '{city}' is not available.",
33
+ }
34
+
35
+
36
+ def get_current_time(city: str) -> Dict[str, str]:
37
+ """Returns the current time in a specified city.
38
+
39
+ Args:
40
+ city (str): The name of the city for which to retrieve the current time.
41
+
42
+ Returns:
43
+ Dict[str, str]: Dictionary containing status and result or error message.
44
+ """
45
+ if city.lower() == "new york":
46
+ tz_identifier = "America/New_York"
47
+ else:
48
+ return {
49
+ "status": "error",
50
+ "error_message": (f"Sorry, I don't have timezone information for {city}."),
51
+ }
52
+
53
+ tz = ZoneInfo(tz_identifier)
54
+ now = datetime.datetime.now(tz)
55
+ report = f"The current time in {city} is {now.strftime('%Y-%m-%d %H:%M:%S %Z%z')}"
56
+ return {"status": "success", "report": report}
57
+
58
+
59
+ root_agent = Agent(
60
+ name="weather_time_agent",
61
+ model="gemini-1.5-flash",
62
+ description=("Agent to answer questions about the time and weather in a city."),
63
+ instruction=(
64
+ "You are a helpful agent who can answer user questions about the time and weather in a city."
65
+ ),
66
+ tools=[get_weather, get_current_time],
67
+ )
68
+
69
+
70
+ @dataclasses.dataclass
71
+ class AgentInput:
72
+ """Input data structure for the agent.
73
+
74
+ Attributes:
75
+ query (str): The user's query string.
76
+ """
77
+
78
+ query: str
79
+
80
+
81
+ def configure_ssl_context() -> None:
82
+ """Configure SSL context with proper certificate paths."""
83
+ import os
84
+ import ssl
85
+
86
+ default_paths = ssl.get_default_verify_paths()
87
+ if default_paths.cafile:
88
+ os.environ["SSL_CERT_FILE"] = default_paths.cafile
89
+ if not os.getenv("SSL_CERT_DIR", None):
90
+ os.environ["SSL_CERT_DIR"] = default_paths.capath or "/etc/ssl/certs"
91
+
92
+
93
+ async def main(input: AgentInput) -> str:
94
+ """Main entry point for the agent.
95
+
96
+ Args:
97
+ input (AgentInput): The input containing the user's query.
98
+
99
+ Returns:
100
+ str: The agent's response to the query.
101
+ """
102
+ user_id = "test_user"
103
+ session_service = InMemorySessionService()
104
+ session = await session_service.create_session(
105
+ app_name="multi-tool-agent", user_id=user_id
106
+ )
107
+ configure_ssl_context()
108
+
109
+ runner = Runner(
110
+ app_name=session.app_name,
111
+ agent=root_agent,
112
+ session_service=session_service,
113
+ )
114
+ content = Content(parts=[Part(text=input.query)], role="user")
115
+ output = ""
116
+ async for event in runner.run_async(
117
+ new_message=content,
118
+ user_id=user_id,
119
+ session_id=session.id,
120
+ ):
121
+ if event.content and event.content.parts:
122
+ if text := "".join(part.text or "" for part in event.content.parts):
123
+ output = text
124
+ return output
@@ -0,0 +1,11 @@
1
+ [project]
2
+ name = "google-adk-agent"
3
+ version = "0.0.1"
4
+ description = "UiPath - Google ADK agent"
5
+ authors = [{ name = "John Doe" }]
6
+ readme = "README.md"
7
+ requires-python = ">=3.10"
8
+ dependencies = [
9
+ "google-adk>=1.4.2",
10
+ "uipath>=2.0.79",
11
+ ]