uipath 2.1.89__tar.gz → 2.1.91__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.

Potentially problematic release.


This version of uipath might be problematic. Click here for more details.

Files changed (372) hide show
  1. {uipath-2.1.89 → uipath-2.1.91}/PKG-INFO +1 -1
  2. {uipath-2.1.89 → uipath-2.1.91}/pyproject.toml +1 -1
  3. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/uipath.json +2 -2
  4. {uipath-2.1.89 → uipath-2.1.91}/scripts/update_agents_md.py +9 -177
  5. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_runtime.py +4 -4
  6. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/llm_mocker.py +8 -3
  7. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/mocks.py +8 -1
  8. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_push/sw_file_handler.py +3 -3
  9. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_parse_ast.py +58 -32
  10. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_project_files.py +8 -10
  11. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_init.py +58 -40
  12. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_pack.py +13 -11
  13. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_push.py +4 -4
  14. uipath-2.1.91/src/uipath/_cli/models/runtime_schema.py +71 -0
  15. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_resources/AGENTS.md +2 -20
  16. uipath-2.1.91/src/uipath/_resources/REQUIRED_STRUCTURE.md +64 -0
  17. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_resources/SDK_REFERENCE.md +1 -1
  18. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/models/agent.py +227 -55
  19. uipath-2.1.91/src/uipath/agent/models/evals.py +56 -0
  20. uipath-2.1.91/src/uipath/py.typed +0 -0
  21. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/telemetry/_track.py +1 -0
  22. uipath-2.1.91/tests/agent/models/test_agent.py +425 -0
  23. uipath-2.1.89/tests/agent/models/test_agent.py → uipath-2.1.91/tests/agent/models/test_evals.py +18 -64
  24. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/eval/mocks/test_mocks.py +8 -8
  25. uipath-2.1.91/tests/cli/models/test_runtime_schema.py +96 -0
  26. uipath-2.1.91/tests/cli/test_init_agents_md.py +210 -0
  27. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_pack.py +2 -2
  28. {uipath-2.1.89 → uipath-2.1.91}/uv.lock +1 -1
  29. uipath-2.1.89/src/uipath/_resources/REQUIRED_STRUCTURE.md +0 -93
  30. uipath-2.1.89/tests/cli/test_init_agents_md.py +0 -156
  31. {uipath-2.1.89 → uipath-2.1.91}/.claude/agents/command-tester.md +0 -0
  32. {uipath-2.1.89 → uipath-2.1.91}/.claude/commands/prepare-pr.md +0 -0
  33. {uipath-2.1.89 → uipath-2.1.91}/.cursorrules +0 -0
  34. {uipath-2.1.89 → uipath-2.1.91}/.editorconfig +0 -0
  35. {uipath-2.1.89 → uipath-2.1.91}/.gitattributes +0 -0
  36. {uipath-2.1.89 → uipath-2.1.91}/.github/labeler.yml +0 -0
  37. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/auto-label.yml +0 -0
  38. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/cd.yml +0 -0
  39. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/ci.yml +0 -0
  40. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/commitlint.yml +0 -0
  41. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/integration_tests.yml +0 -0
  42. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/lint.yml +0 -0
  43. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/publish-dev.yml +0 -0
  44. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/publish-docs.yml +0 -0
  45. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/slack.yml +0 -0
  46. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/test-uipath-langchain.yml +0 -0
  47. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/test-uipath-llamaindex.yml +0 -0
  48. {uipath-2.1.89 → uipath-2.1.91}/.github/workflows/test.yml +0 -0
  49. {uipath-2.1.89 → uipath-2.1.91}/.gitignore +0 -0
  50. {uipath-2.1.89 → uipath-2.1.91}/.pre-commit-config.yaml +0 -0
  51. {uipath-2.1.89 → uipath-2.1.91}/.python-version +0 -0
  52. {uipath-2.1.89 → uipath-2.1.91}/.vscode/extensions.json +0 -0
  53. {uipath-2.1.89 → uipath-2.1.91}/.vscode/launch.json +0 -0
  54. {uipath-2.1.89 → uipath-2.1.91}/.vscode/settings.json +0 -0
  55. {uipath-2.1.89 → uipath-2.1.91}/CONTRIBUTING.md +0 -0
  56. {uipath-2.1.89 → uipath-2.1.91}/LICENSE +0 -0
  57. {uipath-2.1.89 → uipath-2.1.91}/README.md +0 -0
  58. {uipath-2.1.89 → uipath-2.1.91}/docs/CONTRIBUTING.md +0 -0
  59. {uipath-2.1.89 → uipath-2.1.91}/docs/FAQ.md +0 -0
  60. {uipath-2.1.89 → uipath-2.1.91}/docs/assets/env-preparation-failed-dark.png +0 -0
  61. {uipath-2.1.89 → uipath-2.1.91}/docs/assets/env-preparation-failed-light.png +0 -0
  62. {uipath-2.1.89 → uipath-2.1.91}/docs/assets/favicon.png +0 -0
  63. {uipath-2.1.89 → uipath-2.1.91}/docs/assets/llms.txt +0 -0
  64. {uipath-2.1.89 → uipath-2.1.91}/docs/assets/logo-dark.svg +0 -0
  65. {uipath-2.1.89 → uipath-2.1.91}/docs/assets/logo-light.svg +0 -0
  66. {uipath-2.1.89 → uipath-2.1.91}/docs/cli/index.md +0 -0
  67. {uipath-2.1.89 → uipath-2.1.91}/docs/core/actions.md +0 -0
  68. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets/cloud_env_var_dark.gif +0 -0
  69. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets/cloud_env_var_light.gif +0 -0
  70. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
  71. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
  72. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets/copy_path_dark.png +0 -0
  73. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets/copy_path_light.png +0 -0
  74. {uipath-2.1.89 → uipath-2.1.91}/docs/core/assets.md +0 -0
  75. {uipath-2.1.89 → uipath-2.1.91}/docs/core/attachments.md +0 -0
  76. {uipath-2.1.89 → uipath-2.1.91}/docs/core/buckets.md +0 -0
  77. {uipath-2.1.89 → uipath-2.1.91}/docs/core/connections.md +0 -0
  78. {uipath-2.1.89 → uipath-2.1.91}/docs/core/context_grounding.md +0 -0
  79. {uipath-2.1.89 → uipath-2.1.91}/docs/core/documents.md +0 -0
  80. {uipath-2.1.89 → uipath-2.1.91}/docs/core/documents_models.md +0 -0
  81. {uipath-2.1.89 → uipath-2.1.91}/docs/core/environment_variables.md +0 -0
  82. {uipath-2.1.89 → uipath-2.1.91}/docs/core/getting_started.md +0 -0
  83. {uipath-2.1.89 → uipath-2.1.91}/docs/core/jobs.md +0 -0
  84. {uipath-2.1.89 → uipath-2.1.91}/docs/core/llm_gateway.md +0 -0
  85. {uipath-2.1.89 → uipath-2.1.91}/docs/core/processes.md +0 -0
  86. {uipath-2.1.89 → uipath-2.1.91}/docs/core/queues.md +0 -0
  87. {uipath-2.1.89 → uipath-2.1.91}/docs/core/traced.md +0 -0
  88. {uipath-2.1.89 → uipath-2.1.91}/docs/hooks.py +0 -0
  89. {uipath-2.1.89 → uipath-2.1.91}/docs/index.md +0 -0
  90. {uipath-2.1.89 → uipath-2.1.91}/docs/javascripts/extra.js +0 -0
  91. {uipath-2.1.89 → uipath-2.1.91}/docs/overrides/main.html +0 -0
  92. {uipath-2.1.89 → uipath-2.1.91}/docs/overrides/partials/actions.html +0 -0
  93. {uipath-2.1.89 → uipath-2.1.91}/docs/overrides/partials/logo.html +0 -0
  94. {uipath-2.1.89 → uipath-2.1.91}/docs/release_policy.md +0 -0
  95. {uipath-2.1.89 → uipath-2.1.91}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
  96. {uipath-2.1.89 → uipath-2.1.91}/docs/stylesheets/extra.css +0 -0
  97. {uipath-2.1.89 → uipath-2.1.91}/justfile +0 -0
  98. {uipath-2.1.89 → uipath-2.1.91}/mkdocs.yml +0 -0
  99. {uipath-2.1.89 → uipath-2.1.91}/py.typed +0 -0
  100. {uipath-2.1.89 → uipath-2.1.91}/samples/asset-modifier-agent/.env.example +0 -0
  101. {uipath-2.1.89 → uipath-2.1.91}/samples/asset-modifier-agent/README.md +0 -0
  102. {uipath-2.1.89 → uipath-2.1.91}/samples/asset-modifier-agent/input.json +0 -0
  103. {uipath-2.1.89 → uipath-2.1.91}/samples/asset-modifier-agent/main.py +0 -0
  104. {uipath-2.1.89 → uipath-2.1.91}/samples/asset-modifier-agent/pyproject.toml +0 -0
  105. {uipath-2.1.89 → uipath-2.1.91}/samples/asset-modifier-agent/uv.lock +0 -0
  106. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/README.md +0 -0
  107. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/evals/eval-sets/default.json +0 -0
  108. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/evals/evaluators/equality.json +0 -0
  109. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/evals/evaluators/llm-as-a-judge.json +0 -0
  110. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/main.py +0 -0
  111. {uipath-2.1.89 → uipath-2.1.91}/samples/calculator/pyproject.toml +0 -0
  112. {uipath-2.1.89 → uipath-2.1.91}/samples/event-trigger/.python-version +0 -0
  113. {uipath-2.1.89 → uipath-2.1.91}/samples/event-trigger/README.md +0 -0
  114. {uipath-2.1.89 → uipath-2.1.91}/samples/event-trigger/main.py +0 -0
  115. {uipath-2.1.89 → uipath-2.1.91}/samples/event-trigger/pyproject.toml +0 -0
  116. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/.env.example +0 -0
  117. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/README.md +0 -0
  118. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/input.json +0 -0
  119. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
  120. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
  121. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/pyproject.toml +0 -0
  122. {uipath-2.1.89 → uipath-2.1.91}/samples/google-ADK-agent/uv.lock +0 -0
  123. {uipath-2.1.89 → uipath-2.1.91}/scripts/debug_test.py +0 -0
  124. {uipath-2.1.89 → uipath-2.1.91}/scripts/lint_httpx_client.py +0 -0
  125. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/__init__.py +0 -0
  126. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/README.md +0 -0
  127. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/__init__.py +0 -0
  128. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_auth_server.py +0 -0
  129. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_auth_service.py +0 -0
  130. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_models.py +0 -0
  131. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
  132. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_portal_service.py +0 -0
  133. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_url_utils.py +0 -0
  134. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/_utils.py +0 -0
  135. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/auth_config.json +0 -0
  136. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/index.html +0 -0
  137. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/localhost.crt +0 -0
  138. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_auth/localhost.key +0 -0
  139. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
  140. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
  141. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
  142. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_components/_history.py +0 -0
  143. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
  144. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
  145. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
  146. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
  147. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
  148. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
  149. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
  150. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
  151. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_console_progress_reporter.py +0 -0
  152. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_evaluator_factory.py +0 -0
  153. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
  154. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_evaluator.py +0 -0
  155. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_evaluator_base_params.py +0 -0
  156. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_exceptions.py +0 -0
  157. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_mocks.py +0 -0
  158. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_output.py +0 -0
  159. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_models/_sw_reporting.py +0 -0
  160. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_progress_reporter.py +0 -0
  161. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/_span_collection.py +0 -0
  162. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/__init__.py +0 -0
  163. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/input_mocker.py +0 -0
  164. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/mocker.py +0 -0
  165. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/mocker_factory.py +0 -0
  166. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_evals/mocks/mockito_mocker.py +0 -0
  167. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_runtime/_contracts.py +0 -0
  168. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_runtime/_escalation.py +0 -0
  169. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_runtime/_hitl.py +0 -0
  170. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_runtime/_logging.py +0 -0
  171. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_runtime/_runtime.py +0 -0
  172. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
  173. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
  174. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_templates/.rels.template +0 -0
  175. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
  176. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_templates/main.py.template +0 -0
  177. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
  178. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_common.py +0 -0
  179. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_console.py +0 -0
  180. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_constants.py +0 -0
  181. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_debug.py +0 -0
  182. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_eval_set.py +0 -0
  183. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_folders.py +0 -0
  184. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_input_args.py +0 -0
  185. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_processes.py +0 -0
  186. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_studio_project.py +0 -0
  187. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_tracing.py +0 -0
  188. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
  189. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_auth.py +0 -0
  190. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_deploy.py +0 -0
  191. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_dev.py +0 -0
  192. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_eval.py +0 -0
  193. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_invoke.py +0 -0
  194. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_new.py +0 -0
  195. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_publish.py +0 -0
  196. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_pull.py +0 -0
  197. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/cli_run.py +0 -0
  198. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/middlewares.py +0 -0
  199. {uipath-2.1.89/src/uipath/_events → uipath-2.1.91/src/uipath/_cli/models}/__init__.py +0 -0
  200. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_cli/spinner.py +0 -0
  201. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_config.py +0 -0
  202. /uipath-2.1.89/src/uipath/py.typed → /uipath-2.1.91/src/uipath/_events/__init__.py +0 -0
  203. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_events/_event_bus.py +0 -0
  204. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_events/_events.py +0 -0
  205. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_execution_context.py +0 -0
  206. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_folder_context.py +0 -0
  207. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_resources/CLAUDE.md +0 -0
  208. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_resources/CLI_REFERENCE.md +0 -0
  209. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/__init__.py +0 -0
  210. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/_base_service.py +0 -0
  211. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/actions_service.py +0 -0
  212. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/api_client.py +0 -0
  213. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/assets_service.py +0 -0
  214. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/attachments_service.py +0 -0
  215. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/buckets_service.py +0 -0
  216. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/connections_service.py +0 -0
  217. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/context_grounding_service.py +0 -0
  218. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/documents_service.py +0 -0
  219. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/entities_service.py +0 -0
  220. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/external_application_service.py +0 -0
  221. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/folder_service.py +0 -0
  222. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/jobs_service.py +0 -0
  223. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/llm_gateway_service.py +0 -0
  224. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/processes_service.py +0 -0
  225. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_services/queues_service.py +0 -0
  226. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_uipath.py +0 -0
  227. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/__init__.py +0 -0
  228. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_auth.py +0 -0
  229. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_endpoint.py +0 -0
  230. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_infer_bindings.py +0 -0
  231. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_logs.py +0 -0
  232. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_read_overwrites.py +0 -0
  233. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_request_override.py +0 -0
  234. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_request_spec.py +0 -0
  235. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_ssl_context.py +0 -0
  236. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_url.py +0 -0
  237. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/_user_agent.py +0 -0
  238. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/_utils/constants.py +0 -0
  239. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/_utils.py +0 -0
  240. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/__init__.py +0 -0
  241. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/async_stream.py +0 -0
  242. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/citation.py +0 -0
  243. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/content.py +0 -0
  244. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/conversation.py +0 -0
  245. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/event.py +0 -0
  246. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/exchange.py +0 -0
  247. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/message.py +0 -0
  248. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/meta.py +0 -0
  249. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/conversation/tool.py +0 -0
  250. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/loop/__init__.py +0 -0
  251. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/loop/prompts.py +0 -0
  252. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/agent/loop/tools.py +0 -0
  253. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/_helpers/__init__.py +0 -0
  254. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/_helpers/helpers.py +0 -0
  255. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/__init__.py +0 -0
  256. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/base_evaluator.py +0 -0
  257. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/deterministic_evaluator_base.py +0 -0
  258. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/exact_match_evaluator.py +0 -0
  259. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/json_similarity_evaluator.py +0 -0
  260. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/llm_as_judge_evaluator.py +0 -0
  261. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/evaluators/trajectory_evaluator.py +0 -0
  262. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/mocks/__init__.py +0 -0
  263. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/mocks/mockable.py +0 -0
  264. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/models/__init__.py +0 -0
  265. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/eval/models/models.py +0 -0
  266. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/__init__.py +0 -0
  267. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/action_schema.py +0 -0
  268. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/actions.py +0 -0
  269. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/assets.py +0 -0
  270. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/attachment.py +0 -0
  271. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/auth.py +0 -0
  272. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/buckets.py +0 -0
  273. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/connections.py +0 -0
  274. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/context_grounding.py +0 -0
  275. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/context_grounding_index.py +0 -0
  276. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/documents.py +0 -0
  277. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/entities.py +0 -0
  278. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/errors.py +0 -0
  279. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/exceptions.py +0 -0
  280. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/interrupt_models.py +0 -0
  281. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/job.py +0 -0
  282. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/llm_gateway.py +0 -0
  283. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/processes.py +0 -0
  284. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/models/queues.py +0 -0
  285. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/telemetry/__init__.py +0 -0
  286. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/telemetry/_constants.py +0 -0
  287. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/tracing/__init__.py +0 -0
  288. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/tracing/_otel_exporters.py +0 -0
  289. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/tracing/_traced.py +0 -0
  290. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/tracing/_utils.py +0 -0
  291. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/utils/__init__.py +0 -0
  292. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/utils/_endpoints_manager.py +0 -0
  293. {uipath-2.1.89 → uipath-2.1.91}/src/uipath/utils/dynamic_schema.py +0 -0
  294. {uipath-2.1.89 → uipath-2.1.91}/testcases/apicalls-testcase/main.py +0 -0
  295. {uipath-2.1.89 → uipath-2.1.91}/testcases/apicalls-testcase/pyproject.toml +0 -0
  296. {uipath-2.1.89 → uipath-2.1.91}/testcases/apicalls-testcase/run.sh +0 -0
  297. {uipath-2.1.89 → uipath-2.1.91}/testcases/apicalls-testcase/src/assert.py +0 -0
  298. {uipath-2.1.89 → uipath-2.1.91}/testcases/basic-testcase/main.py +0 -0
  299. {uipath-2.1.89 → uipath-2.1.91}/testcases/basic-testcase/pyproject.toml +0 -0
  300. {uipath-2.1.89 → uipath-2.1.91}/testcases/basic-testcase/run.sh +0 -0
  301. {uipath-2.1.89 → uipath-2.1.91}/testcases/basic-testcase/src/assert.py +0 -0
  302. {uipath-2.1.89 → uipath-2.1.91}/testcases/common/validate_output.sh +0 -0
  303. {uipath-2.1.89 → uipath-2.1.91}/testcases/langchain-cross/agent.mermaid +0 -0
  304. {uipath-2.1.89 → uipath-2.1.91}/testcases/langchain-cross/langgraph.json +0 -0
  305. {uipath-2.1.89 → uipath-2.1.91}/testcases/langchain-cross/pyproject.toml +0 -0
  306. {uipath-2.1.89 → uipath-2.1.91}/testcases/langchain-cross/run.sh +0 -0
  307. {uipath-2.1.89 → uipath-2.1.91}/testcases/langchain-cross/src/assert.py +0 -0
  308. {uipath-2.1.89 → uipath-2.1.91}/testcases/langchain-cross/src/main.py +0 -0
  309. {uipath-2.1.89 → uipath-2.1.91}/testcases/llamaindex-cross/agent.mermaid +0 -0
  310. {uipath-2.1.89 → uipath-2.1.91}/testcases/llamaindex-cross/llama_index.json +0 -0
  311. {uipath-2.1.89 → uipath-2.1.91}/testcases/llamaindex-cross/pyproject.toml +0 -0
  312. {uipath-2.1.89 → uipath-2.1.91}/testcases/llamaindex-cross/run.sh +0 -0
  313. {uipath-2.1.89 → uipath-2.1.91}/testcases/llamaindex-cross/src/assert.py +0 -0
  314. {uipath-2.1.89 → uipath-2.1.91}/testcases/llamaindex-cross/src/main.py +0 -0
  315. {uipath-2.1.89 → uipath-2.1.91}/tests/__init__.py +0 -0
  316. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/conftest.py +0 -0
  317. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/eval/mocks/test_input_mocker.py +0 -0
  318. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
  319. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/mocks/bindings_script.py +0 -0
  320. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/mocks/pyproject.toml +0 -0
  321. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/mocks/simple_script.py +0 -0
  322. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/mocks/uipath-mock.json +0 -0
  323. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
  324. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_auth.py +0 -0
  325. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_hitl.py +0 -0
  326. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_init.py +0 -0
  327. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_input_args.py +0 -0
  328. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_invoke.py +0 -0
  329. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_new.py +0 -0
  330. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_oidc_utils.py +0 -0
  331. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
  332. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_portal_service_refresh_token.py +0 -0
  333. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_publish.py +0 -0
  334. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_pull.py +0 -0
  335. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_push.py +0 -0
  336. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_run.py +0 -0
  337. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/test_utils.py +0 -0
  338. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/utils/common.py +0 -0
  339. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/utils/project_details.py +0 -0
  340. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/utils/test_dynamic_schema.py +0 -0
  341. {uipath-2.1.89 → uipath-2.1.91}/tests/cli/utils/uipath_json.py +0 -0
  342. {uipath-2.1.89 → uipath-2.1.91}/tests/conftest.py +0 -0
  343. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/conftest.py +0 -0
  344. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_actions_service.py +0 -0
  345. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_api_client.py +0 -0
  346. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_assets_service.py +0 -0
  347. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_attachments_service.py +0 -0
  348. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_base_service.py +0 -0
  349. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_buckets_service.py +0 -0
  350. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_connections_service.py +0 -0
  351. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_context_grounding_service.py +0 -0
  352. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_documents_service.py +0 -0
  353. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_entities_service.py +0 -0
  354. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_external_application_service.py +0 -0
  355. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_folder_service.py +0 -0
  356. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_jobs_service.py +0 -0
  357. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_llm_integration.py +0 -0
  358. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
  359. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_llm_service.py +0 -0
  360. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_processes_service.py +0 -0
  361. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_queues_service.py +0 -0
  362. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
  363. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/tests_data/documents_service/create_validation_action_response.json +0 -0
  364. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/tests_data/documents_service/extraction_response.json +0 -0
  365. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/services/tests_data/documents_service/validated_result.json +0 -0
  366. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/test_bindings_inference.py +0 -0
  367. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/test_config.py +0 -0
  368. {uipath-2.1.89 → uipath-2.1.91}/tests/sdk/test_overwrites.py +0 -0
  369. {uipath-2.1.89 → uipath-2.1.91}/tests/tracing/test_otel_exporters.py +0 -0
  370. {uipath-2.1.89 → uipath-2.1.91}/tests/tracing/test_span_utils.py +0 -0
  371. {uipath-2.1.89 → uipath-2.1.91}/tests/tracing/test_traced.py +0 -0
  372. {uipath-2.1.89 → uipath-2.1.91}/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.89
3
+ Version: 2.1.91
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.89"
3
+ version = "2.1.91"
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"
@@ -2,7 +2,7 @@
2
2
  "entryPoints": [
3
3
  {
4
4
  "filePath": "main.py",
5
- "uniqueId": "cb9d5d2b-1f16-420f-baeb-cf3d80269248",
5
+ "uniqueId": "f62a1945-cb6f-48b2-b575-9d802e3f90c1",
6
6
  "type": "agent",
7
7
  "input": {
8
8
  "type": "object",
@@ -47,4 +47,4 @@
47
47
  "version": "2.0",
48
48
  "resources": []
49
49
  }
50
- }
50
+ }
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env python3
2
- """Script to update AGENTS.md with complete library documentation.
2
+ """Script to update AGENTS.md reference files with complete library documentation.
3
3
 
4
4
  This script extracts information from the uipath SDK and CLI commands and updates
5
- the AGENTS.md file with comprehensive documentation including
6
- - SDK version
7
- - Quick API Reference (SDK services and methods)
5
+ the AGENTS.md reference files with comprehensive documentation including
6
+ - API Reference (SDK services and methods)
8
7
  - CLI Commands Reference
9
8
  """
10
9
 
@@ -147,101 +146,8 @@ def get_service_methods(service_class: type) -> list[tuple[str, Any]]:
147
146
  return methods
148
147
 
149
148
 
150
- def generate_required_structure() -> str:
151
- """Generate Required Agent Structure documentation.
152
-
153
- Returns:
154
- Markdown string with required agent structure
155
- """
156
- output = StringIO()
157
- output.write("\n## Required Agent Structure\n\n")
158
- output.write(
159
- "**IMPORTANT**: All UiPath coded agents MUST follow this standard structure unless explicitly specified otherwise by the user.\n\n"
160
- )
161
-
162
- output.write("### Required Components\n\n")
163
- output.write(
164
- "Every agent implementation MUST include these three Pydantic models:\n\n"
165
- )
166
- output.write("```python\n")
167
- output.write("from pydantic import BaseModel\n\n")
168
- output.write("class Input(BaseModel):\n")
169
- output.write(' """Define input fields that the agent accepts"""\n')
170
- output.write(" # Add your input fields here\n")
171
- output.write(" pass\n\n")
172
- output.write("class State(BaseModel):\n")
173
- output.write(
174
- ' """Define the agent\'s internal state that flows between nodes"""\n'
175
- )
176
- output.write(" # Add your state fields here\n")
177
- output.write(" pass\n\n")
178
- output.write("class Output(BaseModel):\n")
179
- output.write(' """Define output fields that the agent returns"""\n')
180
- output.write(" # Add your output fields here\n")
181
- output.write(" pass\n")
182
- output.write("```\n\n")
183
-
184
- output.write("### Required LLM Initialization\n\n")
185
- output.write(
186
- "Unless the user explicitly requests a different LLM provider, always use `UiPathChat`:\n\n"
187
- )
188
- output.write("```python\n")
189
- output.write("from uipath_langchain.chat import UiPathChat\n\n")
190
- output.write('llm = UiPathChat(model="gpt-4o-2024-08-06", temperature=0.7)\n')
191
- output.write("```\n\n")
192
- output.write("**Alternative LLMs** (only use if explicitly requested):\n")
193
- output.write("- `ChatOpenAI` from `langchain_openai`\n")
194
- output.write("- `ChatAnthropic` from `langchain_anthropic`\n")
195
- output.write("- Other LangChain-compatible LLMs\n\n")
196
-
197
- output.write("### Standard Agent Template\n\n")
198
- output.write("Every agent should follow this basic structure:\n\n")
199
- output.write("```python\n")
200
- output.write("from langchain_core.messages import SystemMessage, HumanMessage\n")
201
- output.write("from langgraph.graph import START, StateGraph, END\n")
202
- output.write("from uipath_langchain.chat import UiPathChat\n")
203
- output.write("from pydantic import BaseModel\n\n")
204
- output.write("# 1. Define Input, State, and Output models\n")
205
- output.write("class Input(BaseModel):\n")
206
- output.write(" field: str\n\n")
207
- output.write("class State(BaseModel):\n")
208
- output.write(" field: str\n")
209
- output.write(' result: str = ""\n\n')
210
- output.write("class Output(BaseModel):\n")
211
- output.write(" result: str\n\n")
212
- output.write("# 2. Initialize UiPathChat LLM\n")
213
- output.write('llm = UiPathChat(model="gpt-4o-2024-08-06", temperature=0.7)\n\n')
214
- output.write("# 3. Define agent nodes (async functions)\n")
215
- output.write("async def process_node(state: State) -> State:\n")
216
- output.write(" response = await llm.ainvoke([HumanMessage(state.field)])\n")
217
- output.write(" return State(field=state.field, result=response.content)\n\n")
218
- output.write("async def output_node(state: State) -> Output:\n")
219
- output.write(" return Output(result=state.result)\n\n")
220
- output.write("# 4. Build the graph\n")
221
- output.write("builder = StateGraph(State, input=Input, output=Output)\n")
222
- output.write('builder.add_node("process", process_node)\n')
223
- output.write('builder.add_node("output", output_node)\n')
224
- output.write('builder.add_edge(START, "process")\n')
225
- output.write('builder.add_edge("process", "output")\n')
226
- output.write('builder.add_edge("output", END)\n\n')
227
- output.write("# 5. Compile the graph\n")
228
- output.write("graph = builder.compile()\n")
229
- output.write("```\n\n")
230
-
231
- output.write("**Key Rules**:\n")
232
- output.write("1. Always use async/await for all node functions\n")
233
- output.write("2. All nodes (except output) must accept and return `State`\n")
234
- output.write("3. The final output node must return `Output`\n")
235
- output.write(
236
- "4. Use `StateGraph(State, input=Input, output=Output)` for initialization\n"
237
- )
238
- output.write("5. Always compile with `graph = builder.compile()`\n\n")
239
-
240
- return output.getvalue()
241
-
242
-
243
149
  def generate_quick_api_docs() -> str:
244
- """Generate Quick API Reference documentation for SDK.
150
+ """Generate API Reference documentation for SDK.
245
151
 
246
152
  Returns:
247
153
  Markdown string with SDK API documentation
@@ -249,7 +155,7 @@ def generate_quick_api_docs() -> str:
249
155
  from uipath import UiPath
250
156
 
251
157
  output = StringIO()
252
- output.write("\n## Quick API Reference\n\n")
158
+ output.write("\n## API Reference\n\n")
253
159
  output.write(
254
160
  "This section provides a comprehensive reference for all UiPath SDK services and methods. "
255
161
  "Each service is documented with complete method signatures, including parameter types and return types.\n\n"
@@ -567,103 +473,29 @@ def generate_cli_docs() -> str:
567
473
  return output.getvalue()
568
474
 
569
475
 
570
- def update_agents_md() -> None:
571
- """Update the AGENTS.md file and generate separate reference files."""
476
+ def generate_agents_md_reference_files() -> None:
477
+ """Generate separate reference files."""
572
478
  resources_dir = Path(__file__).parent.parent / "src" / "uipath" / "_resources"
573
- agents_md_path = resources_dir / "AGENTS.md"
574
479
 
575
- if not agents_md_path.exists():
576
- print(f"Error: AGENTS.md not found at {agents_md_path}", file=sys.stderr)
577
- sys.exit(1)
578
-
579
- with open(agents_md_path, "r", encoding="utf-8") as f:
580
- content = f.read()
581
-
582
- required_structure_marker = "## Required Agent Structure"
583
- api_marker = "## Quick API Reference"
584
- cli_marker = "## CLI Commands Reference"
585
- reference_marker = "## Documentation Structure"
586
-
587
- if reference_marker in content:
588
- header = content.split(reference_marker)[0].rstrip()
589
- elif required_structure_marker in content:
590
- header = content.split(required_structure_marker)[0].rstrip()
591
- elif api_marker in content:
592
- header = content.split(api_marker)[0].rstrip()
593
- elif cli_marker in content:
594
- header = content.split(cli_marker)[0].rstrip()
595
- else:
596
- header = content.rstrip()
597
-
598
- required_structure_path = resources_dir / "REQUIRED_STRUCTURE.md"
599
480
  sdk_reference_path = resources_dir / "SDK_REFERENCE.md"
600
481
  cli_reference_path = resources_dir / "CLI_REFERENCE.md"
601
482
 
602
- required_structure = generate_required_structure()
603
483
  api_docs = generate_quick_api_docs()
604
484
  cli_docs = generate_cli_docs()
605
485
 
606
- with open(required_structure_path, "w", encoding="utf-8") as f:
607
- f.write(required_structure.lstrip("\n"))
608
-
609
486
  with open(sdk_reference_path, "w", encoding="utf-8") as f:
610
487
  f.write(api_docs.lstrip("\n"))
611
488
 
612
489
  with open(cli_reference_path, "w", encoding="utf-8") as f:
613
490
  f.write(cli_docs.lstrip("\n"))
614
491
 
615
- updated_content = f"""{header}
616
-
617
- ## Documentation Structure
618
-
619
- This documentation is split into multiple files for efficient context loading. Load only the files you need:
620
-
621
- ### Core Documentation Files
622
-
623
- 1. **@.agent/REQUIRED_STRUCTURE.md** - Agent structure patterns and templates
624
- - **When to load:** Creating a new agent or understanding required patterns
625
- - **Contains:** Required Pydantic models (Input, State, Output), LLM initialization patterns, standard agent template
626
- - **Size:** ~90 lines
627
-
628
- 2. **@.agent/SDK_REFERENCE.md** - Complete SDK API reference
629
- - **When to load:** Calling UiPath SDK methods, working with services (actions, assets, jobs, etc.)
630
- - **Contains:** All SDK services and methods with full signatures and type annotations
631
- - **Size:** ~400 lines
632
-
633
- 3. **@.agent/CLI_REFERENCE.md** - CLI commands documentation
634
- - **When to load:** Working with `uipath init`, `uipath run`, or `uipath eval` commands
635
- - **Contains:** Command syntax, options, usage examples, and workflows
636
- - **Size:** ~200 lines
637
-
638
- ### Usage Guidelines
639
-
640
- **For LLMs:**
641
- - Read this file (AGENTS.md) first to understand the documentation structure
642
- - Load .agent/REQUIRED_STRUCTURE.md when building new agents or need structure reference
643
- - Load .agent/SDK_REFERENCE.md only when you need to call specific SDK methods
644
- - Load .agent/CLI_REFERENCE.md only when working with CLI commands
645
-
646
- **Benefits:**
647
- - Reduced token usage by loading only relevant context
648
- - Faster response times
649
- - More focused context for specific tasks
650
- """
651
-
652
- with open(agents_md_path, "w", encoding="utf-8") as f:
653
- f.write(updated_content)
654
-
655
- print(f"Successfully updated {agents_md_path}")
656
- print(f"Generated {required_structure_path}")
657
- print(f"Generated {sdk_reference_path}")
658
- print(f"Generated {cli_reference_path}")
659
-
660
492
 
661
493
  def main():
662
494
  """Main function."""
663
495
  try:
664
- update_agents_md()
496
+ generate_agents_md_reference_files()
665
497
  except Exception as e:
666
- print(f"Error updating AGENTS.md: {e}", file=sys.stderr)
498
+ print(f"Error updating AGENTS.md reference files: {e}", file=sys.stderr)
667
499
  sys.exit(1)
668
500
 
669
501
 
@@ -326,7 +326,8 @@ class UiPathEvalRuntime(UiPathBaseRuntime, Generic[T, C]):
326
326
  if eval_item.input_mocking_strategy:
327
327
  eval_item = await self._generate_input_for_eval(eval_item)
328
328
 
329
- set_execution_context(eval_item, self.span_collector)
329
+ execution_id = str(uuid.uuid4())
330
+ set_execution_context(eval_item, self.span_collector, execution_id)
330
331
 
331
332
  await event_bus.publish(
332
333
  EvaluationEvents.CREATE_EVAL_RUN,
@@ -341,7 +342,7 @@ class UiPathEvalRuntime(UiPathBaseRuntime, Generic[T, C]):
341
342
  )
342
343
 
343
344
  try:
344
- agent_execution_output = await self.execute_runtime(eval_item)
345
+ agent_execution_output = await self.execute_runtime(eval_item, execution_id)
345
346
  evaluation_item_results: list[EvalItemResult] = []
346
347
 
347
348
  for evaluator in evaluators:
@@ -448,9 +449,8 @@ class UiPathEvalRuntime(UiPathBaseRuntime, Generic[T, C]):
448
449
  return spans, logs
449
450
 
450
451
  async def execute_runtime(
451
- self, eval_item: EvaluationItem
452
+ self, eval_item: EvaluationItem, execution_id: str
452
453
  ) -> UiPathEvalRunExecutionOutput:
453
- execution_id = str(uuid.uuid4())
454
454
  runtime_context: C = self.factory.new_context(
455
455
  execution_id=execution_id,
456
456
  input_json=eval_item.inputs,
@@ -96,7 +96,11 @@ class LLMMocker(Mocker):
96
96
  from uipath import UiPath
97
97
  from uipath._services.llm_gateway_service import _cleanup_schema
98
98
 
99
- from .mocks import evaluation_context, span_collector_context
99
+ from .mocks import (
100
+ evaluation_context,
101
+ execution_id_context,
102
+ span_collector_context,
103
+ )
100
104
 
101
105
  llm = UiPath().llm
102
106
  return_type: Any = func.__annotations__.get("return", None)
@@ -126,8 +130,9 @@ class LLMMocker(Mocker):
126
130
  test_run_history = "(empty)"
127
131
  eval_item = evaluation_context.get()
128
132
  span_collector = span_collector_context.get()
129
- if eval_item and span_collector:
130
- spans = span_collector.get_spans(eval_item.id)
133
+ execution_id = execution_id_context.get()
134
+ if eval_item and span_collector and execution_id:
135
+ spans = span_collector.get_spans(execution_id)
131
136
  test_run_history = _SpanUtils.spans_to_llm_context(spans)
132
137
 
133
138
  prompt_input: dict[str, Any] = {
@@ -21,11 +21,16 @@ span_collector_context: ContextVar[Optional[ExecutionSpanCollector]] = ContextVa
21
21
  "span_collector", default=None
22
22
  )
23
23
 
24
+ # Execution ID for the current evaluation item
25
+ execution_id_context: ContextVar[Optional[str]] = ContextVar(
26
+ "execution_id", default=None
27
+ )
28
+
24
29
  logger = logging.getLogger(__name__)
25
30
 
26
31
 
27
32
  def set_execution_context(
28
- eval_item: EvaluationItem, span_collector: ExecutionSpanCollector
33
+ eval_item: EvaluationItem, span_collector: ExecutionSpanCollector, execution_id: str
29
34
  ) -> None:
30
35
  """Set the execution context for an evaluation run for mocking and trace access."""
31
36
  evaluation_context.set(eval_item)
@@ -40,6 +45,7 @@ def set_execution_context(
40
45
  mocker_context.set(None)
41
46
 
42
47
  span_collector_context.set(span_collector)
48
+ execution_id_context.set(execution_id)
43
49
 
44
50
 
45
51
  def clear_execution_context() -> None:
@@ -47,6 +53,7 @@ def clear_execution_context() -> None:
47
53
  evaluation_context.set(None)
48
54
  mocker_context.set(None)
49
55
  span_collector_context.set(None)
56
+ execution_id_context.set(None)
50
57
 
51
58
 
52
59
  async def get_mocked_response(
@@ -453,7 +453,7 @@ class SwFileHandler:
453
453
  )
454
454
  logger.info("Uploading 'agent.json'")
455
455
 
456
- async def upload_source_files(self, config_data: dict[str, Any]) -> None:
456
+ async def upload_source_files(self, settings: Optional[dict[str, Any]]) -> None:
457
457
  """Main method to upload source files to the UiPath project.
458
458
 
459
459
  - Gets project structure
@@ -462,7 +462,7 @@ class SwFileHandler:
462
462
  - Deletes removed files
463
463
 
464
464
  Args:
465
- config_data: Project configuration data
465
+ settings: File handling settings
466
466
 
467
467
  Returns:
468
468
  Dict[str, ProjectFileExtended]: Root level files for agent.json handling
@@ -493,7 +493,7 @@ class SwFileHandler:
493
493
 
494
494
  # Get files to upload and process them
495
495
  files = files_to_include(
496
- config_data,
496
+ settings,
497
497
  self.directory,
498
498
  self.include_uv_lock,
499
499
  directories_to_ignore=["evals"],
@@ -13,6 +13,7 @@ from ..._services import (
13
13
  ProcessesService,
14
14
  )
15
15
  from ..._utils import get_inferred_bindings_names
16
+ from ..models.runtime_schema import BindingResource, BindingResourceValue, Bindings
16
17
  from ._constants import BINDINGS_VERSION
17
18
 
18
19
 
@@ -428,7 +429,7 @@ def parse_sdk_usage(
428
429
  return results
429
430
 
430
431
 
431
- def convert_to_bindings_format(sdk_usage_data):
432
+ def convert_to_bindings_format(sdk_usage_data) -> Bindings:
432
433
  """Convert the output of parse_sdk_usage to a structure similar to bindings_v2.json.
433
434
 
434
435
  Args:
@@ -437,7 +438,7 @@ def convert_to_bindings_format(sdk_usage_data):
437
438
  Returns:
438
439
  Dictionary in bindings_v2.json format
439
440
  """
440
- bindings = {"version": "2.0", "resources": []}
441
+ bindings = Bindings(version="2.0", resources=[])
441
442
 
442
443
  for resource_type, components in sdk_usage_data.items():
443
444
  for component in components:
@@ -448,24 +449,24 @@ def convert_to_bindings_format(sdk_usage_data):
448
449
  )
449
450
  is_connection_id_expression = connection_id.startswith("EXPR$")
450
451
  connection_id = connection_id.replace("EXPR$", "")
451
- resource_entry = {
452
- "resource": "connection",
453
- "key": connection_id,
454
- "value": {
455
- "ConnectionId": {
456
- "defaultValue": connection_id,
457
- "isExpression": is_connection_id_expression,
458
- "displayName": "Connection",
459
- }
452
+ resource_entry = BindingResource(
453
+ resource="connection",
454
+ key=connection_id,
455
+ value={
456
+ "ConnectionId": BindingResourceValue(
457
+ default_value=connection_id,
458
+ is_expression=is_connection_id_expression,
459
+ display_name="Connection",
460
+ ),
460
461
  },
461
- "metadata": {
462
+ metadata={
462
463
  "BindingsVersion": BINDINGS_VERSION,
463
464
  "Connector": connector_name,
464
465
  "UseConnectionService": "True",
465
466
  },
466
- }
467
+ )
467
468
 
468
- bindings["resources"].append(resource_entry)
469
+ bindings.resources.append(resource_entry)
469
470
  continue
470
471
 
471
472
  resource_name = component.get("name", "")
@@ -481,36 +482,61 @@ def convert_to_bindings_format(sdk_usage_data):
481
482
  key = name
482
483
  if folder_path:
483
484
  key = f"{folder_path}.{name}"
484
- resource_entry = {
485
- "resource": service_name_resource_mapping[resource_type],
486
- "key": key,
487
- "value": {
488
- "name": {
489
- "defaultValue": name,
490
- "isExpression": is_expression,
491
- "displayName": "Name",
492
- }
485
+ resource_entry = BindingResource(
486
+ resource=service_name_resource_mapping[resource_type],
487
+ key=key,
488
+ value={
489
+ "name": BindingResourceValue(
490
+ default_value=name,
491
+ is_expression=is_expression,
492
+ display_name="Name",
493
+ ),
493
494
  },
494
- "metadata": {
495
+ metadata={
495
496
  "ActivityName": method_name,
496
497
  "BindingsVersion": BINDINGS_VERSION,
497
498
  "DisplayLabel": "FullName",
498
499
  },
499
- }
500
+ )
500
501
 
501
502
  if folder_path:
502
- resource_entry["value"]["folderPath"] = {
503
- "defaultValue": folder_path,
504
- "isExpression": is_folder_path_expression,
505
- "displayName": "Folder Path",
506
- }
503
+ resource_entry.value["folderPath"] = BindingResourceValue(
504
+ default_value=folder_path,
505
+ is_expression=is_folder_path_expression,
506
+ display_name="Folder Path",
507
+ )
507
508
 
508
- bindings["resources"].append(resource_entry)
509
+ bindings.resources.append(resource_entry)
509
510
 
510
511
  return bindings
511
512
 
512
513
 
513
- def generate_bindings_json(file_path: str) -> str:
514
+ def generate_bindings_json(file_path: str) -> dict[str, Any]:
515
+ """Generate bindings JSON from a Python file.
516
+
517
+ Args:
518
+ file_path: Path to the Python file to analyze
519
+
520
+ Returns:
521
+ JSON string representation of the bindings
522
+ """
523
+ try:
524
+ with open(file_path, "r") as f:
525
+ source_code = f.read()
526
+
527
+ # Get the base directory for resolving imports
528
+ base_dir = os.path.dirname(os.path.abspath(file_path))
529
+
530
+ sdk_usage = parse_sdk_usage(source_code, base_dir)
531
+ bindings = convert_to_bindings_format(sdk_usage)
532
+
533
+ return bindings.model_dump(by_alias=True)
534
+
535
+ except Exception as e:
536
+ raise Exception(f"Error generating bindings JSON: {e}") from e
537
+
538
+
539
+ def generate_bindings(file_path: str) -> Bindings:
514
540
  """Generate bindings JSON from a Python file.
515
541
 
516
542
  Args:
@@ -7,9 +7,10 @@ import re
7
7
  from pathlib import Path
8
8
  from typing import Any, Dict, Optional, Protocol, Tuple
9
9
 
10
- from pydantic import BaseModel
10
+ from pydantic import BaseModel, TypeAdapter
11
11
 
12
12
  from .._utils._console import ConsoleLogger
13
+ from ..models.runtime_schema import RuntimeSchema
13
14
  from ._constants import is_binary_file
14
15
  from ._studio_project import (
15
16
  ProjectFile,
@@ -93,21 +94,19 @@ def get_project_config(directory: str) -> dict[str, str]:
93
94
  console.error("pyproject.toml not found.")
94
95
 
95
96
  with open(config_path, "r") as config_file:
96
- config_data = json.load(config_file)
97
-
98
- validate_config_structure(config_data)
97
+ config_data = TypeAdapter(RuntimeSchema).validate_python(json.load(config_file))
99
98
 
100
99
  toml_data = read_toml_project(toml_path)
101
100
 
102
101
  return {
103
102
  "project_name": toml_data["name"],
104
103
  "description": toml_data["description"],
105
- "entryPoints": config_data["entryPoints"],
104
+ "entryPoints": [ep.model_dump(by_alias=True) for ep in config_data.entrypoints],
106
105
  "version": toml_data["version"],
107
106
  "authors": toml_data["authors"],
108
107
  "dependencies": toml_data.get("dependencies", {}),
109
108
  "requires-python": toml_data.get("requires-python", None),
110
- "settings": config_data.get("settings", {}),
109
+ "settings": config_data.settings or {},
111
110
  }
112
111
 
113
112
 
@@ -347,7 +346,7 @@ def read_toml_project(file_path: str) -> dict:
347
346
 
348
347
 
349
348
  def files_to_include(
350
- config_data: Optional[dict[Any, Any]],
349
+ settings: Optional[dict[str, Any]],
351
350
  directory: str,
352
351
  include_uv_lock: bool = True,
353
352
  directories_to_ignore: list[str] | None = None,
@@ -358,7 +357,7 @@ def files_to_include(
358
357
  and explicit inclusion rules. Skips virtual environments and hidden directories.
359
358
 
360
359
  Args:
361
- config_data: Configuration containing file inclusion rules
360
+ settings: File handling settings
362
361
  directory: Root directory to search for files
363
362
  include_uv_lock: Whether to include uv.lock file
364
363
  directories_to_ignore: List of directories to ignore
@@ -374,8 +373,7 @@ def files_to_include(
374
373
  directories_to_ignore = []
375
374
  if include_uv_lock:
376
375
  files_included += ["uv.lock"]
377
- if "settings" in config_data:
378
- settings = config_data["settings"]
376
+ if settings is not None:
379
377
  if "fileExtensionsIncluded" in settings:
380
378
  file_extensions_included.extend(settings["fileExtensionsIncluded"])
381
379
  if "filesIncluded" in settings: