uipath 2.1.55__tar.gz → 2.1.57__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 (305) hide show
  1. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/test.yml +1 -1
  2. {uipath-2.1.55 → uipath-2.1.57}/PKG-INFO +1 -1
  3. {uipath-2.1.55 → uipath-2.1.57}/pyproject.toml +1 -1
  4. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_runtime/_contracts.py +1 -3
  5. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_eval.py +3 -0
  6. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_run.py +4 -0
  7. uipath-2.1.57/src/uipath/agent/_utils.py +55 -0
  8. uipath-2.1.57/src/uipath/agent/models/agent.py +344 -0
  9. uipath-2.1.57/tests/agent/models/test_agent.py +416 -0
  10. {uipath-2.1.55 → uipath-2.1.57}/uv.lock +888 -888
  11. {uipath-2.1.55 → uipath-2.1.57}/.cursorrules +0 -0
  12. {uipath-2.1.55 → uipath-2.1.57}/.editorconfig +0 -0
  13. {uipath-2.1.55 → uipath-2.1.57}/.gitattributes +0 -0
  14. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/cd.yml +0 -0
  15. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/ci.yml +0 -0
  16. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/commitlint.yml +0 -0
  17. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/integration_tests.yml +0 -0
  18. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/lint.yml +0 -0
  19. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/publish-dev.yml +0 -0
  20. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/publish-docs.yml +0 -0
  21. {uipath-2.1.55 → uipath-2.1.57}/.github/workflows/slack.yml +0 -0
  22. {uipath-2.1.55 → uipath-2.1.57}/.gitignore +0 -0
  23. {uipath-2.1.55 → uipath-2.1.57}/.pre-commit-config.yaml +0 -0
  24. {uipath-2.1.55 → uipath-2.1.57}/.python-version +0 -0
  25. {uipath-2.1.55 → uipath-2.1.57}/.vscode/extensions.json +0 -0
  26. {uipath-2.1.55 → uipath-2.1.57}/.vscode/launch.json +0 -0
  27. {uipath-2.1.55 → uipath-2.1.57}/.vscode/settings.json +0 -0
  28. {uipath-2.1.55 → uipath-2.1.57}/CONTRIBUTING.md +0 -0
  29. {uipath-2.1.55 → uipath-2.1.57}/LICENSE +0 -0
  30. {uipath-2.1.55 → uipath-2.1.57}/README.md +0 -0
  31. {uipath-2.1.55 → uipath-2.1.57}/docs/CONTRIBUTING.md +0 -0
  32. {uipath-2.1.55 → uipath-2.1.57}/docs/FAQ.md +0 -0
  33. {uipath-2.1.55 → uipath-2.1.57}/docs/assets/env-preparation-failed-dark.png +0 -0
  34. {uipath-2.1.55 → uipath-2.1.57}/docs/assets/env-preparation-failed-light.png +0 -0
  35. {uipath-2.1.55 → uipath-2.1.57}/docs/assets/favicon.png +0 -0
  36. {uipath-2.1.55 → uipath-2.1.57}/docs/assets/logo-dark.svg +0 -0
  37. {uipath-2.1.55 → uipath-2.1.57}/docs/assets/logo-light.svg +0 -0
  38. {uipath-2.1.55 → uipath-2.1.57}/docs/cli/index.md +0 -0
  39. {uipath-2.1.55 → uipath-2.1.57}/docs/core/actions.md +0 -0
  40. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  41. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets/cloud_env_var_light.gif +0 -0
  42. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  43. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  44. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets/copy_path_dark.png +0 -0
  45. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets/copy_path_light.png +0 -0
  46. {uipath-2.1.55 → uipath-2.1.57}/docs/core/assets.md +0 -0
  47. {uipath-2.1.55 → uipath-2.1.57}/docs/core/attachments.md +0 -0
  48. {uipath-2.1.55 → uipath-2.1.57}/docs/core/buckets.md +0 -0
  49. {uipath-2.1.55 → uipath-2.1.57}/docs/core/connections.md +0 -0
  50. {uipath-2.1.55 → uipath-2.1.57}/docs/core/context_grounding.md +0 -0
  51. {uipath-2.1.55 → uipath-2.1.57}/docs/core/environment_variables.md +0 -0
  52. {uipath-2.1.55 → uipath-2.1.57}/docs/core/getting_started.md +0 -0
  53. {uipath-2.1.55 → uipath-2.1.57}/docs/core/jobs.md +0 -0
  54. {uipath-2.1.55 → uipath-2.1.57}/docs/core/llm_gateway.md +0 -0
  55. {uipath-2.1.55 → uipath-2.1.57}/docs/core/processes.md +0 -0
  56. {uipath-2.1.55 → uipath-2.1.57}/docs/core/queues.md +0 -0
  57. {uipath-2.1.55 → uipath-2.1.57}/docs/core/traced.md +0 -0
  58. {uipath-2.1.55 → uipath-2.1.57}/docs/hooks.py +0 -0
  59. {uipath-2.1.55 → uipath-2.1.57}/docs/index.md +0 -0
  60. {uipath-2.1.55 → uipath-2.1.57}/docs/javascripts/extra.js +0 -0
  61. {uipath-2.1.55 → uipath-2.1.57}/docs/overrides/main.html +0 -0
  62. {uipath-2.1.55 → uipath-2.1.57}/docs/overrides/partials/actions.html +0 -0
  63. {uipath-2.1.55 → uipath-2.1.57}/docs/overrides/partials/logo.html +0 -0
  64. {uipath-2.1.55 → uipath-2.1.57}/docs/release_policy.md +0 -0
  65. {uipath-2.1.55 → uipath-2.1.57}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  66. {uipath-2.1.55 → uipath-2.1.57}/docs/stylesheets/extra.css +0 -0
  67. {uipath-2.1.55 → uipath-2.1.57}/justfile +0 -0
  68. {uipath-2.1.55 → uipath-2.1.57}/mkdocs.yml +0 -0
  69. {uipath-2.1.55 → uipath-2.1.57}/py.typed +0 -0
  70. {uipath-2.1.55 → uipath-2.1.57}/samples/calculator/README.md +0 -0
  71. {uipath-2.1.55 → uipath-2.1.57}/samples/calculator/main.py +0 -0
  72. {uipath-2.1.55 → uipath-2.1.57}/samples/calculator/pyproject.toml +0 -0
  73. {uipath-2.1.55 → uipath-2.1.57}/samples/event-trigger/.python-version +0 -0
  74. {uipath-2.1.55 → uipath-2.1.57}/samples/event-trigger/README.md +0 -0
  75. {uipath-2.1.55 → uipath-2.1.57}/samples/event-trigger/main.py +0 -0
  76. {uipath-2.1.55 → uipath-2.1.57}/samples/event-trigger/pyproject.toml +0 -0
  77. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/.env.example +0 -0
  78. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/README.md +0 -0
  79. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/input.json +0 -0
  80. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  81. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  82. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/pyproject.toml +0 -0
  83. {uipath-2.1.55 → uipath-2.1.57}/samples/google-ADK-agent/uv.lock +0 -0
  84. {uipath-2.1.55 → uipath-2.1.57}/scripts/debug_test.py +0 -0
  85. {uipath-2.1.55 → uipath-2.1.57}/scripts/lint_httpx_client.py +0 -0
  86. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/__init__.py +0 -0
  87. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/README.md +0 -0
  88. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/__init__.py +0 -0
  89. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  90. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_auth_service.py +0 -0
  91. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
  92. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_models.py +0 -0
  93. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  94. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  95. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_url_utils.py +0 -0
  96. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/_utils.py +0 -0
  97. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/auth_config.json +0 -0
  98. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/index.html +0 -0
  99. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/localhost.crt +0 -0
  100. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_auth/localhost.key +0 -0
  101. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
  102. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
  103. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
  104. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_components/_history.py +0 -0
  105. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
  106. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
  107. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
  108. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
  109. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
  110. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
  111. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
  112. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
  113. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_evals/_evaluator_factory.py +0 -0
  114. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
  115. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_evals/_models/_evaluator_base_params.py +0 -0
  116. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_evals/_models/_output.py +0 -0
  117. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_evals/_runtime.py +0 -0
  118. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
  119. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  120. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  121. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_runtime/_logging.py +0 -0
  122. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  123. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
  124. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  125. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_templates/.rels.template +0 -0
  126. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  127. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_templates/main.py.template +0 -0
  128. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  129. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_common.py +0 -0
  130. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_console.py +0 -0
  131. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_constants.py +0 -0
  132. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_debug.py +0 -0
  133. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_eval_set.py +0 -0
  134. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_folders.py +0 -0
  135. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_input_args.py +0 -0
  136. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
  137. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_processes.py +0 -0
  138. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_project_files.py +0 -0
  139. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_studio_project.py +0 -0
  140. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_tracing.py +0 -0
  141. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
  142. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_auth.py +0 -0
  143. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_deploy.py +0 -0
  144. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_dev.py +0 -0
  145. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_init.py +0 -0
  146. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_invoke.py +0 -0
  147. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_new.py +0 -0
  148. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_pack.py +0 -0
  149. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_publish.py +0 -0
  150. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_pull.py +0 -0
  151. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/cli_push.py +0 -0
  152. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/middlewares.py +0 -0
  153. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_cli/spinner.py +0 -0
  154. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_config.py +0 -0
  155. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_execution_context.py +0 -0
  156. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_folder_context.py +0 -0
  157. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_resources/AGENTS.md +0 -0
  158. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/__init__.py +0 -0
  159. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/_base_service.py +0 -0
  160. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/actions_service.py +0 -0
  161. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/api_client.py +0 -0
  162. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/assets_service.py +0 -0
  163. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/attachments_service.py +0 -0
  164. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/buckets_service.py +0 -0
  165. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/connections_service.py +0 -0
  166. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/context_grounding_service.py +0 -0
  167. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/entities_service.py +0 -0
  168. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/folder_service.py +0 -0
  169. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/jobs_service.py +0 -0
  170. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/llm_gateway_service.py +0 -0
  171. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/processes_service.py +0 -0
  172. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_services/queues_service.py +0 -0
  173. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_uipath.py +0 -0
  174. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/__init__.py +0 -0
  175. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_endpoint.py +0 -0
  176. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_infer_bindings.py +0 -0
  177. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_logs.py +0 -0
  178. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_read_overwrites.py +0 -0
  179. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_request_override.py +0 -0
  180. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_request_spec.py +0 -0
  181. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_ssl_context.py +0 -0
  182. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_url.py +0 -0
  183. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/_user_agent.py +0 -0
  184. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/_utils/constants.py +0 -0
  185. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/__init__.py +0 -0
  186. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/async_stream.py +0 -0
  187. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/citation.py +0 -0
  188. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/content.py +0 -0
  189. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/conversation.py +0 -0
  190. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/event.py +0 -0
  191. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/exchange.py +0 -0
  192. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/message.py +0 -0
  193. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/meta.py +0 -0
  194. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/agent/conversation/tool.py +0 -0
  195. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/_helpers/__init__.py +0 -0
  196. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/_helpers/helpers.py +0 -0
  197. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/__init__.py +0 -0
  198. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/base_evaluator.py +0 -0
  199. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/deterministic_evaluator_base.py +0 -0
  200. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/exact_match_evaluator.py +0 -0
  201. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/json_similarity_evaluator.py +0 -0
  202. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/llm_as_judge_evaluator.py +0 -0
  203. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/evaluators/trajectory_evaluator.py +0 -0
  204. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/models/__init__.py +0 -0
  205. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/eval/models/models.py +0 -0
  206. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/__init__.py +0 -0
  207. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/action_schema.py +0 -0
  208. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/actions.py +0 -0
  209. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/assets.py +0 -0
  210. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/attachment.py +0 -0
  211. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/buckets.py +0 -0
  212. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/connections.py +0 -0
  213. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/context_grounding.py +0 -0
  214. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/context_grounding_index.py +0 -0
  215. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/entities.py +0 -0
  216. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/errors.py +0 -0
  217. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/exceptions.py +0 -0
  218. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/interrupt_models.py +0 -0
  219. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/job.py +0 -0
  220. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/llm_gateway.py +0 -0
  221. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/processes.py +0 -0
  222. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/models/queues.py +0 -0
  223. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/py.typed +0 -0
  224. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/telemetry/__init__.py +0 -0
  225. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/telemetry/_constants.py +0 -0
  226. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/telemetry/_track.py +0 -0
  227. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/tracing/__init__.py +0 -0
  228. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/tracing/_otel_exporters.py +0 -0
  229. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/tracing/_traced.py +0 -0
  230. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/tracing/_utils.py +0 -0
  231. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/utils/__init__.py +0 -0
  232. {uipath-2.1.55 → uipath-2.1.57}/src/uipath/utils/_endpoints_manager.py +0 -0
  233. {uipath-2.1.55 → uipath-2.1.57}/testcases/apicalls-testcase/main.py +0 -0
  234. {uipath-2.1.55 → uipath-2.1.57}/testcases/apicalls-testcase/pyproject.toml +0 -0
  235. {uipath-2.1.55 → uipath-2.1.57}/testcases/apicalls-testcase/run.sh +0 -0
  236. {uipath-2.1.55 → uipath-2.1.57}/testcases/apicalls-testcase/src/assert.py +0 -0
  237. {uipath-2.1.55 → uipath-2.1.57}/testcases/basic-testcase/main.py +0 -0
  238. {uipath-2.1.55 → uipath-2.1.57}/testcases/basic-testcase/pyproject.toml +0 -0
  239. {uipath-2.1.55 → uipath-2.1.57}/testcases/basic-testcase/run.sh +0 -0
  240. {uipath-2.1.55 → uipath-2.1.57}/testcases/basic-testcase/src/assert.py +0 -0
  241. {uipath-2.1.55 → uipath-2.1.57}/testcases/common/validate_output.sh +0 -0
  242. {uipath-2.1.55 → uipath-2.1.57}/testcases/langchain-cross/agent.mermaid +0 -0
  243. {uipath-2.1.55 → uipath-2.1.57}/testcases/langchain-cross/langgraph.json +0 -0
  244. {uipath-2.1.55 → uipath-2.1.57}/testcases/langchain-cross/pyproject.toml +0 -0
  245. {uipath-2.1.55 → uipath-2.1.57}/testcases/langchain-cross/run.sh +0 -0
  246. {uipath-2.1.55 → uipath-2.1.57}/testcases/langchain-cross/src/assert.py +0 -0
  247. {uipath-2.1.55 → uipath-2.1.57}/testcases/langchain-cross/src/main.py +0 -0
  248. {uipath-2.1.55 → uipath-2.1.57}/testcases/llamaindex-cross/agent.mermaid +0 -0
  249. {uipath-2.1.55 → uipath-2.1.57}/testcases/llamaindex-cross/llama_index.json +0 -0
  250. {uipath-2.1.55 → uipath-2.1.57}/testcases/llamaindex-cross/pyproject.toml +0 -0
  251. {uipath-2.1.55 → uipath-2.1.57}/testcases/llamaindex-cross/run.sh +0 -0
  252. {uipath-2.1.55 → uipath-2.1.57}/testcases/llamaindex-cross/src/assert.py +0 -0
  253. {uipath-2.1.55 → uipath-2.1.57}/testcases/llamaindex-cross/src/main.py +0 -0
  254. {uipath-2.1.55 → uipath-2.1.57}/tests/__init__.py +0 -0
  255. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/conftest.py +0 -0
  256. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
  257. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/mocks/bindings_script.py +0 -0
  258. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/mocks/pyproject.toml +0 -0
  259. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/mocks/simple_script.py +0 -0
  260. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/mocks/uipath-mock.json +0 -0
  261. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  262. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_auth.py +0 -0
  263. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_hitl.py +0 -0
  264. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_init.py +0 -0
  265. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_init_agents_md.py +0 -0
  266. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_input_args.py +0 -0
  267. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_invoke.py +0 -0
  268. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_new.py +0 -0
  269. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_pack.py +0 -0
  270. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
  271. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_portal_service_refresh_token.py +0 -0
  272. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_publish.py +0 -0
  273. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_pull.py +0 -0
  274. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_push.py +0 -0
  275. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_run.py +0 -0
  276. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/test_utils.py +0 -0
  277. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/utils/common.py +0 -0
  278. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/utils/project_details.py +0 -0
  279. {uipath-2.1.55 → uipath-2.1.57}/tests/cli/utils/uipath_json.py +0 -0
  280. {uipath-2.1.55 → uipath-2.1.57}/tests/conftest.py +0 -0
  281. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/conftest.py +0 -0
  282. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_actions_service.py +0 -0
  283. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_api_client.py +0 -0
  284. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_assets_service.py +0 -0
  285. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_attachments_service.py +0 -0
  286. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_base_service.py +0 -0
  287. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_buckets_service.py +0 -0
  288. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_connections_service.py +0 -0
  289. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_context_grounding_service.py +0 -0
  290. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_entities_service.py +0 -0
  291. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_folder_service.py +0 -0
  292. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_jobs_service.py +0 -0
  293. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_llm_integration.py +0 -0
  294. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
  295. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_llm_service.py +0 -0
  296. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_processes_service.py +0 -0
  297. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_queues_service.py +0 -0
  298. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  299. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/test_bindings_inference.py +0 -0
  300. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/test_config.py +0 -0
  301. {uipath-2.1.55 → uipath-2.1.57}/tests/sdk/test_overwrites.py +0 -0
  302. {uipath-2.1.55 → uipath-2.1.57}/tests/tracing/test_otel_exporters.py +0 -0
  303. {uipath-2.1.55 → uipath-2.1.57}/tests/tracing/test_span_utils.py +0 -0
  304. {uipath-2.1.55 → uipath-2.1.57}/tests/tracing/test_traced.py +0 -0
  305. {uipath-2.1.55 → uipath-2.1.57}/tests/tracing/test_tracing_manager.py +0 -0
@@ -25,7 +25,7 @@ jobs:
25
25
  - name: Setup Python
26
26
  uses: actions/setup-python@v5
27
27
  with:
28
- python-version-file: ".python-version"
28
+ python-version: ${{ matrix.python-version }}
29
29
 
30
30
  - name: Install dependencies
31
31
  run: uv sync --all-extras
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.1.55
3
+ Version: 2.1.57
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.55"
3
+ version = "2.1.57"
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"
@@ -24,7 +24,7 @@ from opentelemetry.trace import Tracer
24
24
  from pydantic import BaseModel, Field
25
25
 
26
26
  from uipath.agent.conversation import UiPathConversationEvent, UiPathConversationMessage
27
- from uipath.tracing import LlmOpsHttpExporter, TracingManager
27
+ from uipath.tracing import TracingManager
28
28
 
29
29
  from ._logging import LogsInterceptor
30
30
 
@@ -698,8 +698,6 @@ class UiPathRuntimeFactory(Generic[T, C]):
698
698
  self.tracer_provider: TracerProvider = TracerProvider()
699
699
  self.tracer_span_processors: List[SpanProcessor] = []
700
700
  trace.set_tracer_provider(self.tracer_provider)
701
- if os.getenv("UIPATH_JOB_KEY"):
702
- self.add_span_exporter(LlmOpsHttpExporter())
703
701
 
704
702
  def add_span_exporter(
705
703
  self,
@@ -14,6 +14,7 @@ from uipath._cli._runtime._contracts import (
14
14
  from uipath._cli._runtime._runtime import UiPathScriptRuntime
15
15
  from uipath._cli.middlewares import Middlewares
16
16
  from uipath.eval._helpers import auto_discover_entrypoint
17
+ from uipath.tracing import LlmOpsHttpExporter
17
18
 
18
19
  from .._utils.constants import ENV_JOB_ID
19
20
  from ..telemetry import track
@@ -108,6 +109,8 @@ def eval(
108
109
  UiPathRuntimeContext,
109
110
  context_generator=generate_runtime_context,
110
111
  )
112
+ if not no_report or eval_context.job_id:
113
+ runtime_factory.add_span_exporter(LlmOpsHttpExporter())
111
114
 
112
115
  async def execute():
113
116
  async with UiPathEvalRuntime.from_eval_context(
@@ -7,6 +7,7 @@ from typing import Optional
7
7
  import click
8
8
 
9
9
  from uipath._cli._utils._debug import setup_debugging
10
+ from uipath.tracing import LlmOpsHttpExporter
10
11
 
11
12
  from .._utils.constants import (
12
13
  ENV_JOB_ID,
@@ -102,6 +103,7 @@ def run(
102
103
  runtime_factory = UiPathRuntimeFactory(
103
104
  UiPathScriptRuntime, UiPathRuntimeContext
104
105
  )
106
+
105
107
  context = UiPathRuntimeContext.with_defaults(
106
108
  entrypoint=entrypoint,
107
109
  input=input,
@@ -110,6 +112,8 @@ def run(
110
112
  execution_output_file=output_file,
111
113
  debug=debug,
112
114
  )
115
+ if context.job_id:
116
+ runtime_factory.add_span_exporter(LlmOpsHttpExporter())
113
117
 
114
118
  asyncio.run(runtime_factory.execute(context))
115
119
 
@@ -0,0 +1,55 @@
1
+ import logging
2
+ from pathlib import PurePath
3
+
4
+ from httpx import Response
5
+ from pydantic import TypeAdapter
6
+
7
+ from uipath._cli._utils._studio_project import (
8
+ ProjectFile,
9
+ ProjectFolder,
10
+ StudioClient,
11
+ resolve_path,
12
+ )
13
+ from uipath.agent.models.agent import AgentDefinition
14
+
15
+ logger = logging.getLogger(__name__)
16
+
17
+
18
+ async def get_file(
19
+ folder: ProjectFolder, path: PurePath, studio_client: StudioClient
20
+ ) -> Response:
21
+ resolved = resolve_path(folder, path)
22
+ assert isinstance(resolved, ProjectFile), "Path file not found."
23
+ return await studio_client.download_file_async(resolved.id)
24
+
25
+
26
+ async def load_agent_definition(project_id: str):
27
+ studio_client = StudioClient(project_id=project_id)
28
+ project_structure = await studio_client.get_project_structure_async()
29
+
30
+ agent = (
31
+ await get_file(project_structure, PurePath("agent.json"), studio_client)
32
+ ).json()
33
+
34
+ resolved_path = resolve_path(project_structure, PurePath("resources"))
35
+ if isinstance(resolved_path, ProjectFolder):
36
+ resource_folders = resolved_path.folders
37
+ else:
38
+ logger.warning(
39
+ "Unable to read resource information from project. Defaulting to empty resources."
40
+ )
41
+ resource_folders = []
42
+
43
+ resources = []
44
+ for resource in resource_folders:
45
+ resources.append(
46
+ (await get_file(resource, PurePath("resource.json"), studio_client)).json()
47
+ )
48
+
49
+ agent_definition = {
50
+ "id": project_id,
51
+ "name": project_structure.name,
52
+ "resources": resources,
53
+ **agent,
54
+ }
55
+ return TypeAdapter(AgentDefinition).validate_python(agent_definition)
@@ -0,0 +1,344 @@
1
+ """Agent Models."""
2
+
3
+ from enum import Enum
4
+ from typing import Annotated, Any, Dict, List, Literal, Optional, Union
5
+
6
+ from pydantic import BaseModel, ConfigDict, Discriminator, Field, Tag
7
+
8
+ from uipath.models import Connection
9
+
10
+
11
+ class AgentResourceType(str, Enum):
12
+ """Enum for resource types."""
13
+
14
+ TOOL = "tool"
15
+ CONTEXT = "context"
16
+ ESCALATION = "escalation"
17
+
18
+
19
+ class BaseAgentResourceConfig(BaseModel):
20
+ """Base resource model with common properties."""
21
+
22
+ name: str
23
+ description: str
24
+
25
+ model_config = ConfigDict(
26
+ validate_by_name=True, validate_by_alias=True, extra="allow"
27
+ )
28
+
29
+
30
+ class AgentUnknownResourceConfig(BaseAgentResourceConfig):
31
+ """Fallback for unknown or future resource types."""
32
+
33
+ resource_type: str = Field(alias="$resourceType")
34
+
35
+ model_config = ConfigDict(extra="allow")
36
+
37
+
38
+ class BaseAgentToolResourceConfig(BaseAgentResourceConfig):
39
+ """Tool resource with tool-specific properties."""
40
+
41
+ resource_type: Literal[AgentResourceType.TOOL] = Field(alias="$resourceType")
42
+ input_schema: Dict[str, Any] = Field(
43
+ ..., alias="inputSchema", description="Input schema for the tool"
44
+ )
45
+
46
+ model_config = ConfigDict(
47
+ validate_by_name=True, validate_by_alias=True, extra="allow"
48
+ )
49
+
50
+
51
+ class AgentToolType(str, Enum):
52
+ """Agent tool type."""
53
+
54
+ AGENT = "agent"
55
+ INTEGRATION = "integration"
56
+
57
+
58
+ class AgentToolSettings(BaseModel):
59
+ """Settings for tool configuration."""
60
+
61
+ max_attempts: Optional[int] = Field(None, alias="maxAttempts")
62
+ retry_delay: Optional[int] = Field(None, alias="retryDelay")
63
+ timeout: Optional[int] = Field(None)
64
+
65
+ model_config = ConfigDict(
66
+ validate_by_name=True, validate_by_alias=True, extra="allow"
67
+ )
68
+
69
+
70
+ class AgentProcessToolProperties(BaseModel):
71
+ """Properties specific to tool configuration."""
72
+
73
+ folder_path: Optional[str] = Field(None, alias="folderPath")
74
+ process_name: Optional[str] = Field(None, alias="processName")
75
+
76
+ model_config = ConfigDict(
77
+ validate_by_name=True, validate_by_alias=True, extra="allow"
78
+ )
79
+
80
+
81
+ class AgentProcessToolResourceConfig(BaseAgentToolResourceConfig):
82
+ """Tool resource with tool-specific properties."""
83
+
84
+ type: Literal[AgentToolType.AGENT] = AgentToolType.AGENT
85
+ output_schema: Dict[str, Any] = Field(
86
+ ..., alias="outputSchema", description="Output schema for the tool"
87
+ )
88
+ properties: AgentProcessToolProperties = Field(
89
+ ..., description="Tool-specific properties"
90
+ )
91
+ settings: AgentToolSettings = Field(
92
+ default_factory=AgentToolSettings, description="Tool settings"
93
+ )
94
+
95
+ model_config = ConfigDict(
96
+ validate_by_name=True, validate_by_alias=True, extra="allow"
97
+ )
98
+
99
+
100
+ class AgentIntegrationToolProperties(BaseModel):
101
+ """Properties specific to tool configuration."""
102
+
103
+ tool_path: str = Field(..., alias="toolPath")
104
+ object_name: str = Field(..., alias="objectName")
105
+ tool_display_name: str = Field(..., alias="toolDisplayName")
106
+ tool_description: str = Field(..., alias="toolDescription")
107
+ method: str = Field(..., alias="method")
108
+ connection: Connection = Field(..., alias="connection")
109
+ body_structure: dict[str, Any] = Field(..., alias="bodyStructure")
110
+
111
+ model_config = ConfigDict(
112
+ validate_by_name=True, validate_by_alias=True, extra="allow"
113
+ )
114
+
115
+
116
+ class AgentIntegrationToolResourceConfig(BaseAgentToolResourceConfig):
117
+ """Tool resource with tool-specific properties."""
118
+
119
+ type: Literal[AgentToolType.INTEGRATION] = AgentToolType.INTEGRATION
120
+ properties: AgentIntegrationToolProperties
121
+
122
+ model_config = ConfigDict(
123
+ validate_by_name=True, validate_by_alias=True, extra="allow"
124
+ )
125
+
126
+
127
+ class AgentUnknownToolResourceConfig(BaseAgentToolResourceConfig):
128
+ """Fallback for unknown or future tool types."""
129
+
130
+ resource_type: Literal[AgentResourceType.TOOL] = AgentResourceType.TOOL
131
+ type: str = Field(alias="$resourceType")
132
+
133
+ model_config = ConfigDict(extra="allow")
134
+
135
+
136
+ class AgentContextSettings(BaseModel):
137
+ """Settings for context configuration."""
138
+
139
+ result_count: int = Field(alias="resultCount")
140
+ retrieval_mode: Literal["Semantic", "Structured"] = Field(alias="retrievalMode")
141
+ threshold: float = Field(default=0)
142
+
143
+ model_config = ConfigDict(
144
+ validate_by_name=True, validate_by_alias=True, extra="allow"
145
+ )
146
+
147
+
148
+ class AgentContextResourceConfig(BaseAgentResourceConfig):
149
+ """Context resource with context-specific properties."""
150
+
151
+ resource_type: Literal[AgentResourceType.CONTEXT] = Field(alias="$resourceType")
152
+ folder_path: str = Field(alias="folderPath")
153
+ index_name: str = Field(alias="indexName")
154
+ settings: AgentContextSettings = Field(..., description="Context settings")
155
+
156
+ model_config = ConfigDict(
157
+ validate_by_name=True, validate_by_alias=True, extra="allow"
158
+ )
159
+
160
+
161
+ class AgentEscalationChannelProperties(BaseModel):
162
+ """Agent escalation channel properties."""
163
+
164
+ app_name: str = Field(..., alias="appName")
165
+ app_version: int = Field(..., alias="appVersion")
166
+ folder_name: Optional[str] = Field(..., alias="folderName")
167
+ resource_key: str = Field(..., alias="resourceKey")
168
+ is_actionable_message_enabled: Optional[bool] = Field(
169
+ None, alias="isActionableMessageEnabled"
170
+ )
171
+ actionable_message_meta_data: Optional[Any] = Field(
172
+ None, alias="actionableMessageMetaData"
173
+ )
174
+
175
+ model_config = ConfigDict(
176
+ validate_by_name=True, validate_by_alias=True, extra="allow"
177
+ )
178
+
179
+
180
+ class AgentEscalationChannel(BaseModel):
181
+ """Agent escalation channel."""
182
+
183
+ id: str = Field(..., alias="id")
184
+ name: str = Field(..., alias="name")
185
+ type: str = Field(alias="type")
186
+ description: str = Field(..., alias="description")
187
+ input_schema: Dict[str, Any] = Field(
188
+ ..., alias="inputSchema", description="Input schema for the escalation channel"
189
+ )
190
+ output_schema: Dict[str, Any] = Field(
191
+ ...,
192
+ alias="outputSchema",
193
+ description="Output schema for the escalation channel",
194
+ )
195
+ properties: AgentEscalationChannelProperties = Field(..., alias="properties")
196
+
197
+ model_config = ConfigDict(
198
+ validate_by_name=True, validate_by_alias=True, extra="allow"
199
+ )
200
+
201
+
202
+ class AgentEscalationResourceConfig(BaseAgentResourceConfig):
203
+ """Escalation resource with escalation-specific properties."""
204
+
205
+ resource_type: Literal[AgentResourceType.ESCALATION] = Field(alias="$resourceType")
206
+ channels: List[AgentEscalationChannel] = Field(alias="channels")
207
+
208
+ # escalation_type: int = Field(..., alias="escalationType")
209
+ is_agent_memory_enabled: bool = Field(alias="isAgentMemoryEnabled")
210
+
211
+ model_config = ConfigDict(
212
+ validate_by_name=True, validate_by_alias=True, extra="allow"
213
+ )
214
+
215
+
216
+ def custom_discriminator(data: Any) -> str:
217
+ """Discriminator for resource types. This is required due to multi-key discrimination requirements for resources."""
218
+ if isinstance(data, dict):
219
+ resource_type = data.get("$resourceType")
220
+ if resource_type == AgentResourceType.CONTEXT:
221
+ return "AgentContextResourceConfig"
222
+ elif resource_type == AgentResourceType.ESCALATION:
223
+ return "AgentEscalationResourceConfig"
224
+ elif resource_type == AgentResourceType.TOOL:
225
+ tool_type = data.get("type")
226
+ if tool_type == AgentToolType.AGENT:
227
+ return "AgentProcessToolResourceConfig"
228
+ elif tool_type == AgentToolType.INTEGRATION:
229
+ return "AgentIntegrationToolResourceConfig"
230
+ else:
231
+ return "AgentUnknownToolResourceConfig"
232
+ else:
233
+ return "AgentUnknownResourceConfig"
234
+ raise ValueError("Invalid discriminator values")
235
+
236
+
237
+ AgentResourceConfig = Annotated[
238
+ Union[
239
+ Annotated[
240
+ AgentProcessToolResourceConfig, Tag("AgentProcessToolResourceConfig")
241
+ ],
242
+ Annotated[
243
+ AgentIntegrationToolResourceConfig,
244
+ Tag("AgentIntegrationToolResourceConfig"),
245
+ ],
246
+ Annotated[
247
+ AgentUnknownToolResourceConfig, Tag("AgentUnknownToolResourceConfig")
248
+ ],
249
+ Annotated[AgentContextResourceConfig, Tag("AgentContextResourceConfig")],
250
+ Annotated[AgentEscalationResourceConfig, Tag("AgentEscalationResourceConfig")],
251
+ Annotated[AgentUnknownResourceConfig, Tag("AgentUnknownResourceConfig")],
252
+ ],
253
+ Field(discriminator=Discriminator(custom_discriminator)),
254
+ ]
255
+
256
+
257
+ class BaseAgentDefinition(BaseModel):
258
+ """Main agent model."""
259
+
260
+ id: str = Field(..., description="Agent id or project name")
261
+ name: str = Field(..., description="Agent name or project name")
262
+ input_schema: Dict[str, Any] = Field(
263
+ ..., alias="inputSchema", description="JSON schema for input arguments"
264
+ )
265
+ output_schema: Dict[str, Any] = Field(
266
+ ..., alias="outputSchema", description="JSON schema for output arguments"
267
+ )
268
+ version: str = Field("1.0.0", description="Agent version")
269
+ resources: List[AgentResourceConfig] = Field(
270
+ ..., description="List of tools, context, and escalation resources"
271
+ )
272
+
273
+ model_config = ConfigDict(
274
+ validate_by_name=True, validate_by_alias=True, extra="allow"
275
+ )
276
+
277
+
278
+ class AgentType(str, Enum):
279
+ """Agent type."""
280
+
281
+ LOW_CODE = "lowCode"
282
+
283
+
284
+ class AgentMessageRole(str, Enum):
285
+ """Enum for message roles."""
286
+
287
+ SYSTEM = "system"
288
+ USER = "user"
289
+
290
+
291
+ class AgentMessage(BaseModel):
292
+ """Message model for agent conversations."""
293
+
294
+ role: AgentMessageRole
295
+ content: str
296
+
297
+ model_config = ConfigDict(
298
+ validate_by_name=True, validate_by_alias=True, extra="allow"
299
+ )
300
+
301
+
302
+ class AgentSettings(BaseModel):
303
+ """Settings for agent configuration."""
304
+
305
+ engine: str = Field(..., description="Engine type, e.g., 'basic-v1'")
306
+ model: str = Field(..., description="LLM model identifier")
307
+ max_tokens: int = Field(
308
+ ..., alias="maxTokens", description="Maximum number of tokens"
309
+ )
310
+ temperature: float = Field(..., description="Temperature for response generation")
311
+
312
+ model_config = ConfigDict(
313
+ validate_by_name=True, validate_by_alias=True, extra="allow"
314
+ )
315
+
316
+
317
+ class LowCodeAgentDefinition(BaseAgentDefinition):
318
+ """Low code agent definition."""
319
+
320
+ type: Literal[AgentType.LOW_CODE] = AgentType.LOW_CODE
321
+ messages: List[AgentMessage] = Field(
322
+ ..., description="List of system and user messages"
323
+ )
324
+ features: List[Any] = Field(
325
+ default_factory=list, description="Currently empty feature list"
326
+ )
327
+ settings: AgentSettings = Field(..., description="Agent settings configuration")
328
+
329
+
330
+ KnownAgentDefinition = Annotated[
331
+ Union[LowCodeAgentDefinition,],
332
+ Field(discriminator="type"),
333
+ ]
334
+
335
+
336
+ class UnknownAgentDefinition(BaseAgentDefinition):
337
+ """Fallback for unknown agent definitions."""
338
+
339
+ type: str
340
+
341
+ model_config = ConfigDict(extra="allow")
342
+
343
+
344
+ AgentDefinition = Union[KnownAgentDefinition, UnknownAgentDefinition]