uipath 2.1.71__tar.gz → 2.1.73__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.
- uipath-2.1.73/.github/labeler.yml +7 -0
- uipath-2.1.73/.github/workflows/auto-label.yml +19 -0
- uipath-2.1.73/.github/workflows/test-uipath-langchain.yml +184 -0
- uipath-2.1.73/.github/workflows/test-uipath-llamaindex.yml +153 -0
- {uipath-2.1.71 → uipath-2.1.73}/PKG-INFO +4 -1
- {uipath-2.1.71 → uipath-2.1.73}/pyproject.toml +7 -2
- uipath-2.1.73/samples/calculator/evals/eval-sets/default.json +67 -0
- uipath-2.1.73/samples/calculator/evals/evaluators/equality.json +11 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/calculator/main.py +25 -5
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_components/_history.py +25 -5
- uipath-2.1.73/src/uipath/_cli/_evals/_evaluator_factory.py +106 -0
- uipath-2.1.73/src/uipath/_cli/_evals/_models/_evaluation_set.py +167 -0
- uipath-2.1.73/src/uipath/_cli/_evals/_models/_evaluator.py +106 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_evals/_runtime.py +2 -0
- uipath-2.1.73/src/uipath/_cli/_evals/mocks/__init__.py +1 -0
- uipath-2.1.73/src/uipath/_cli/_evals/mocks/llm_mocker.py +153 -0
- uipath-2.1.73/src/uipath/_cli/_evals/mocks/mocker.py +29 -0
- uipath-2.1.73/src/uipath/_cli/_evals/mocks/mocker_factory.py +25 -0
- uipath-2.1.73/src/uipath/_cli/_evals/mocks/mockito_mocker.py +62 -0
- uipath-2.1.73/src/uipath/_cli/_evals/mocks/mocks.py +136 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_runtime/_contracts.py +1 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_runtime/_logging.py +112 -31
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_pull.py +1 -1
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/llm_gateway_service.py +24 -27
- uipath-2.1.73/src/uipath/agent/_utils.py +124 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/models/agent.py +11 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/agent/models/test_agent.py +152 -0
- uipath-2.1.73/tests/cli/eval/mocks/test_mocks.py +272 -0
- {uipath-2.1.71 → uipath-2.1.73}/uv.lock +948 -888
- uipath-2.1.71/src/uipath/_cli/_evals/_evaluator_factory.py +0 -144
- uipath-2.1.71/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -58
- uipath-2.1.71/src/uipath/agent/_utils.py +0 -55
- {uipath-2.1.71 → uipath-2.1.73}/.cursorrules +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.editorconfig +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.gitattributes +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/cd.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/ci.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/integration_tests.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/lint.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/slack.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.github/workflows/test.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.gitignore +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.pre-commit-config.yaml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.python-version +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.vscode/extensions.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.vscode/launch.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/.vscode/settings.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/CONTRIBUTING.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/LICENSE +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/README.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/FAQ.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/assets/favicon.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/assets/logo-light.svg +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/cli/index.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/actions.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/assets.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/attachments.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/buckets.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/connections.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/context_grounding.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/documents.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/documents_models.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/environment_variables.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/getting_started.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/jobs.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/llm_gateway.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/processes.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/queues.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/core/traced.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/hooks.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/index.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/javascripts/extra.js +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/overrides/main.html +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/release_policy.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/docs/stylesheets/extra.css +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/justfile +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/mkdocs.yml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/py.typed +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/calculator/README.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/calculator/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/event-trigger/.python-version +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/event-trigger/README.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/event-trigger/main.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/event-trigger/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/.env.example +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/README.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/input.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/samples/google-ADK-agent/uv.lock +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/scripts/debug_test.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/scripts/lint_httpx_client.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/README.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_auth_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_client_credentials.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_url_utils.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_evals/_models/_evaluator_base_params.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_evals/_models/_output.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_evals/_models/_sw_reporting.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_evals/_models/_trajectory_span.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_evals/_progress_reporter.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_debug.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_eval_set.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_project_files.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_studio_project.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_dev.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_eval.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_push.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_config.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_events/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_events/_event_bus.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_events/_events.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_execution_context.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_folder_context.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_resources/AGENTS.md +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/documents_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/entities_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_uipath.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_ssl_context.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/async_stream.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/citation.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/content.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/conversation.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/event.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/exchange.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/message.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/meta.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/agent/conversation/tool.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/_helpers/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/_helpers/helpers.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/base_evaluator.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/deterministic_evaluator_base.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/exact_match_evaluator.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/json_similarity_evaluator.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/llm_as_judge_evaluator.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/evaluators/trajectory_evaluator.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/models/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/eval/models/models.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/actions.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/assets.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/attachment.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/buckets.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/connections.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/documents.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/entities.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/errors.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/job.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/processes.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/models/queues.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/py.typed +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/tracing/_utils.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/utils/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/src/uipath/utils/_endpoints_manager.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/apicalls-testcase/main.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/apicalls-testcase/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/apicalls-testcase/run.sh +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/apicalls-testcase/src/assert.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/basic-testcase/main.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/basic-testcase/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/basic-testcase/run.sh +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/basic-testcase/src/assert.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/common/validate_output.sh +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/langchain-cross/agent.mermaid +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/langchain-cross/langgraph.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/langchain-cross/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/langchain-cross/run.sh +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/langchain-cross/src/assert.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/langchain-cross/src/main.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/llamaindex-cross/agent.mermaid +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/llamaindex-cross/llama_index.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/llamaindex-cross/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/llamaindex-cross/run.sh +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/llamaindex-cross/src/assert.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/testcases/llamaindex-cross/src/main.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/__init__.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/conftest.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_auth.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_hitl.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_init.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_init_agents_md.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_input_args.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_invoke.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_new.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_pack.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_portal_service_refresh_token.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_publish.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_pull.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_push.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_run.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/test_utils.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/utils/common.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/conftest.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_documents_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_entities_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/tests_data/documents_service/create_validation_action_response.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/tests_data/documents_service/extraction_response.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/services/tests_data/documents_service/validated_result.json +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/test_config.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/tracing/test_traced.py +0 -0
- {uipath-2.1.71 → uipath-2.1.73}/tests/tracing/test_tracing_manager.py +0 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
name: Auto Label PRs
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
types: [opened, synchronize, reopened]
|
6
|
+
|
7
|
+
permissions:
|
8
|
+
contents: read
|
9
|
+
pull-requests: write
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
label:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- name: Label PR
|
16
|
+
uses: actions/labeler@v5
|
17
|
+
with:
|
18
|
+
configuration-path: '.github/labeler.yml'
|
19
|
+
sync-labels: true
|
@@ -0,0 +1,184 @@
|
|
1
|
+
name: Test UiPath Langchain
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
types: [ opened, synchronize, reopened, labeled ]
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
test-uipath-langchain:
|
9
|
+
runs-on: ${{ matrix.os }}
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
python-version: [ "3.10", "3.11", "3.12", "3.13" ]
|
13
|
+
os: [ ubuntu-latest, windows-latest ]
|
14
|
+
|
15
|
+
permissions:
|
16
|
+
contents: read
|
17
|
+
|
18
|
+
# Only run if PR has the test:uipath-langchain label
|
19
|
+
if: contains(github.event.pull_request.labels.*.name, 'test:uipath-langchain')
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- name: Checkout uipath-python
|
23
|
+
uses: actions/checkout@v4
|
24
|
+
with:
|
25
|
+
path: 'uipath-python'
|
26
|
+
|
27
|
+
- name: Setup uv
|
28
|
+
uses: astral-sh/setup-uv@v5
|
29
|
+
|
30
|
+
- name: Setup Python
|
31
|
+
uses: actions/setup-python@v5
|
32
|
+
with:
|
33
|
+
python-version: ${{ matrix.python-version }}
|
34
|
+
|
35
|
+
- name: Build uipath-python package
|
36
|
+
run: |
|
37
|
+
cd uipath-python
|
38
|
+
uv build
|
39
|
+
|
40
|
+
- name: Checkout uipath-langchain-python
|
41
|
+
uses: actions/checkout@v4
|
42
|
+
with:
|
43
|
+
repository: 'UiPath/uipath-langchain-python'
|
44
|
+
path: 'uipath-langchain-python'
|
45
|
+
|
46
|
+
- name: Update uipath-python version
|
47
|
+
shell: bash
|
48
|
+
run: |
|
49
|
+
cd uipath-langchain-python
|
50
|
+
uv add ../uipath-python/dist/*.whl --dev
|
51
|
+
|
52
|
+
- name: Run uipath-langchain tests
|
53
|
+
run: |
|
54
|
+
cd uipath-langchain-python
|
55
|
+
uv sync
|
56
|
+
uv run pytest
|
57
|
+
|
58
|
+
discover-testcases:
|
59
|
+
runs-on: ubuntu-latest
|
60
|
+
permissions:
|
61
|
+
contents: read
|
62
|
+
needs: [test-uipath-langchain]
|
63
|
+
outputs:
|
64
|
+
testcases: ${{ steps.discover.outputs.testcases }}
|
65
|
+
steps:
|
66
|
+
- name: Checkout uipath-langchain-python
|
67
|
+
uses: actions/checkout@v4
|
68
|
+
with:
|
69
|
+
repository: 'UiPath/uipath-langchain-python'
|
70
|
+
path: 'uipath-langchain-python'
|
71
|
+
|
72
|
+
- name: Discover testcases
|
73
|
+
id: discover
|
74
|
+
run: |
|
75
|
+
cd uipath-langchain-python
|
76
|
+
|
77
|
+
# Find all testcase folders (excluding common folders like README, etc.)
|
78
|
+
testcase_dirs=$(find testcases -maxdepth 1 -type d -name "*-*" | sed 's|testcases/||' | sort)
|
79
|
+
|
80
|
+
echo "Found testcase directories:"
|
81
|
+
echo "$testcase_dirs"
|
82
|
+
|
83
|
+
# Convert to JSON array for matrix
|
84
|
+
testcases_json=$(echo "$testcase_dirs" | jq -R -s -c 'split("\n")[:-1]')
|
85
|
+
echo "testcases=$testcases_json" >> $GITHUB_OUTPUT
|
86
|
+
|
87
|
+
run-uipath-langchain-integration-tests:
|
88
|
+
runs-on: ubuntu-latest
|
89
|
+
needs: [discover-testcases]
|
90
|
+
permissions:
|
91
|
+
contents: read
|
92
|
+
strategy:
|
93
|
+
matrix:
|
94
|
+
testcase: ${{ fromJson(needs.discover-testcases.outputs.testcases) }}
|
95
|
+
environment: [alpha, cloud]
|
96
|
+
use_azure_chat: [true, false]
|
97
|
+
steps:
|
98
|
+
|
99
|
+
- name: Checkout uipath-python
|
100
|
+
uses: actions/checkout@v4
|
101
|
+
with:
|
102
|
+
path: 'uipath-python'
|
103
|
+
|
104
|
+
- name: Setup uv
|
105
|
+
uses: astral-sh/setup-uv@v5
|
106
|
+
|
107
|
+
- name: Build uipath-python package
|
108
|
+
run: |
|
109
|
+
cd uipath-python
|
110
|
+
uv build
|
111
|
+
|
112
|
+
- name: Checkout uipath-langchain-python
|
113
|
+
uses: actions/checkout@v4
|
114
|
+
with:
|
115
|
+
repository: 'UiPath/uipath-langchain-python'
|
116
|
+
path: 'uipath-langchain-python'
|
117
|
+
|
118
|
+
- name: Copy wheel to uipath-langchain
|
119
|
+
run: |
|
120
|
+
mkdir -p uipath-langchain-python/wheels
|
121
|
+
cp uipath-python/dist/*.whl uipath-langchain-python/wheels/
|
122
|
+
|
123
|
+
- name: Update uipath-python version
|
124
|
+
shell: bash
|
125
|
+
run: |
|
126
|
+
cd uipath-langchain-python
|
127
|
+
WHL=$(ls wheels/*.whl | head -n1)
|
128
|
+
WHL_NAME=$(basename "$WHL")
|
129
|
+
echo "Using wheel: $WHL_NAME"
|
130
|
+
sed -i "s|uipath>=.*|uipath @ file:///app/wheels/$WHL_NAME\",|" pyproject.toml
|
131
|
+
|
132
|
+
if ! grep -q '\[tool.hatch.metadata\]' pyproject.toml; then
|
133
|
+
echo -e '\n[tool.hatch.metadata]\nallow-direct-references = true' >> pyproject.toml
|
134
|
+
fi
|
135
|
+
|
136
|
+
- name: Set up Docker Buildx
|
137
|
+
uses: docker/setup-buildx-action@v3
|
138
|
+
|
139
|
+
- name: Build Docker image
|
140
|
+
run: |
|
141
|
+
cd uipath-langchain-python
|
142
|
+
echo "Building Docker image at $(date)"
|
143
|
+
docker build -f testcases/Dockerfile \
|
144
|
+
-t uipath-langchain-testbase:latest .
|
145
|
+
echo "Docker image built at $(date)"
|
146
|
+
|
147
|
+
- name: Run integration test
|
148
|
+
env:
|
149
|
+
ALPHA_TEST_CLIENT_ID: ${{ secrets.ALPHA_TEST_CLIENT_ID }}
|
150
|
+
ALPHA_TEST_CLIENT_SECRET: ${{ secrets.ALPHA_TEST_CLIENT_SECRET }}
|
151
|
+
ALPHA_BASE_URL: ${{ secrets.ALPHA_BASE_URL }}
|
152
|
+
CLOUD_TEST_CLIENT_ID: ${{ secrets.CLOUD_TEST_CLIENT_ID }}
|
153
|
+
CLOUD_TEST_CLIENT_SECRET: ${{ secrets.CLOUD_TEST_CLIENT_SECRET }}
|
154
|
+
CLOUD_BASE_URL: ${{ secrets.CLOUD_BASE_URL }}
|
155
|
+
run: |
|
156
|
+
cd uipath-langchain-python
|
157
|
+
|
158
|
+
testcase="${{ matrix.testcase }}"
|
159
|
+
environment="${{ matrix.environment }}"
|
160
|
+
use_azure_chat="${{ matrix.use_azure_chat }}"
|
161
|
+
|
162
|
+
echo "Running testcase: $testcase"
|
163
|
+
echo "Environment: $environment"
|
164
|
+
echo "LLM: $( [ $use_azure_chat == "true" ] && echo "UiPathAzureChatOpenAI" || echo "UiPathChat" )"
|
165
|
+
echo "USE_AZURE_CHAT: $use_azure_chat"
|
166
|
+
|
167
|
+
if [ "$environment" == "alpha" ]; then
|
168
|
+
CLIENT_ID=$ALPHA_TEST_CLIENT_ID
|
169
|
+
CLIENT_SECRET=$ALPHA_TEST_CLIENT_SECRET
|
170
|
+
BASE_URL=$ALPHA_BASE_URL
|
171
|
+
else
|
172
|
+
CLIENT_ID=$CLOUD_TEST_CLIENT_ID
|
173
|
+
CLIENT_SECRET=$CLOUD_TEST_CLIENT_SECRET
|
174
|
+
BASE_URL=$CLOUD_BASE_URL
|
175
|
+
fi
|
176
|
+
|
177
|
+
docker run --rm \
|
178
|
+
-e CLIENT_ID="$CLIENT_ID" \
|
179
|
+
-e CLIENT_SECRET="$CLIENT_SECRET" \
|
180
|
+
-e BASE_URL="$BASE_URL" \
|
181
|
+
-e USE_AZURE_CHAT="$use_azure_chat" \
|
182
|
+
uipath-langchain-testbase:latest \
|
183
|
+
bash "/app/testcases/$testcase/run.sh"
|
184
|
+
|
@@ -0,0 +1,153 @@
|
|
1
|
+
name: Test UiPath LlamaIndex
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
types: [ opened, synchronize, reopened, labeled ]
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
test-uipath-llamaindex:
|
9
|
+
runs-on: ${{ matrix.os }}
|
10
|
+
strategy:
|
11
|
+
matrix:
|
12
|
+
python-version: [ "3.10", "3.11", "3.12", "3.13" ]
|
13
|
+
os: [ ubuntu-latest, windows-latest ]
|
14
|
+
|
15
|
+
permissions:
|
16
|
+
contents: read
|
17
|
+
|
18
|
+
# Only run if PR has the test:uipath-llamaindex label
|
19
|
+
if: contains(github.event.pull_request.labels.*.name, 'test:uipath-llamaindex')
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- name: Checkout uipath-python
|
23
|
+
uses: actions/checkout@v4
|
24
|
+
with:
|
25
|
+
path: 'uipath-python'
|
26
|
+
|
27
|
+
- name: Setup uv
|
28
|
+
uses: astral-sh/setup-uv@v5
|
29
|
+
|
30
|
+
- name: Setup Python
|
31
|
+
uses: actions/setup-python@v5
|
32
|
+
with:
|
33
|
+
python-version: ${{ matrix.python-version }}
|
34
|
+
|
35
|
+
- name: Build uipath-python package
|
36
|
+
run: |
|
37
|
+
cd uipath-python
|
38
|
+
uv build
|
39
|
+
|
40
|
+
- name: Checkout uipath-llamaindex-python
|
41
|
+
uses: actions/checkout@v4
|
42
|
+
with:
|
43
|
+
repository: 'UiPath/uipath-llamaindex-python'
|
44
|
+
path: 'uipath-llamaindex-python'
|
45
|
+
|
46
|
+
- name: Update uipath-python version
|
47
|
+
shell: bash
|
48
|
+
run: |
|
49
|
+
cd uipath-llamaindex-python
|
50
|
+
uv add ../uipath-python/dist/*.whl --dev
|
51
|
+
|
52
|
+
- name: Run uipath-llamaindex tests
|
53
|
+
run: |
|
54
|
+
cd uipath-llamaindex-python
|
55
|
+
uv sync
|
56
|
+
uv run pytest
|
57
|
+
|
58
|
+
discover-testcases:
|
59
|
+
runs-on: ubuntu-latest
|
60
|
+
permissions:
|
61
|
+
contents: read
|
62
|
+
needs: test-uipath-llamaindex
|
63
|
+
outputs:
|
64
|
+
testcases: ${{ steps.discover.outputs.testcases }}
|
65
|
+
steps:
|
66
|
+
- name: Checkout uipath-llamaindex-python
|
67
|
+
uses: actions/checkout@v4
|
68
|
+
with:
|
69
|
+
repository: 'UiPath/uipath-llamaindex-python'
|
70
|
+
path: 'uipath-llamaindex-python'
|
71
|
+
|
72
|
+
- name: Discover testcases
|
73
|
+
id: discover
|
74
|
+
run: |
|
75
|
+
cd uipath-llamaindex-python
|
76
|
+
|
77
|
+
# Find all testcase folders (excluding common folders like README, etc.)
|
78
|
+
testcase_dirs=$(find testcases -maxdepth 1 -type d -name "*-*" | sed 's|testcases/||' | sort)
|
79
|
+
|
80
|
+
echo "Found testcase directories:"
|
81
|
+
echo "$testcase_dirs"
|
82
|
+
|
83
|
+
# Convert to JSON array for matrix
|
84
|
+
testcases_json=$(echo "$testcase_dirs" | jq -R -s -c 'split("\n")[:-1]')
|
85
|
+
echo "testcases=$testcases_json" >> $GITHUB_OUTPUT
|
86
|
+
|
87
|
+
run-uipath-llamaindex-integration-tests:
|
88
|
+
runs-on: ubuntu-latest
|
89
|
+
needs: [discover-testcases]
|
90
|
+
permissions:
|
91
|
+
contents: read
|
92
|
+
strategy:
|
93
|
+
matrix:
|
94
|
+
testcase: ${{ fromJson(needs.discover-testcases.outputs.testcases) }}
|
95
|
+
steps:
|
96
|
+
|
97
|
+
- name: Checkout uipath-python
|
98
|
+
uses: actions/checkout@v4
|
99
|
+
with:
|
100
|
+
path: 'uipath-python'
|
101
|
+
|
102
|
+
- name: Setup uv
|
103
|
+
uses: astral-sh/setup-uv@v5
|
104
|
+
|
105
|
+
- name: Build uipath-python package
|
106
|
+
run: |
|
107
|
+
cd uipath-python
|
108
|
+
uv build
|
109
|
+
|
110
|
+
- name: Checkout uipath-llamaindex-python
|
111
|
+
uses: actions/checkout@v4
|
112
|
+
with:
|
113
|
+
repository: 'UiPath/uipath-llamaindex-python'
|
114
|
+
path: 'uipath-llamaindex-python'
|
115
|
+
|
116
|
+
- name: Copy wheel file to uipath-llamaindex-python
|
117
|
+
run: |
|
118
|
+
mkdir -p uipath-llamaindex-python/wheels
|
119
|
+
cp uipath-python/dist/*.whl uipath-llamaindex-python/wheels/
|
120
|
+
|
121
|
+
- name: Update uipath-python version
|
122
|
+
shell: bash
|
123
|
+
run: |
|
124
|
+
cd uipath-llamaindex-python
|
125
|
+
WHL=$(ls wheels/*.whl | head -n1)
|
126
|
+
WHL_NAME=$(basename "$WHL")
|
127
|
+
echo "Using wheel: $WHL_NAME"
|
128
|
+
sed -i "s|uipath>=.*|uipath @ file:///app/wheels/$WHL_NAME\",|" pyproject.toml
|
129
|
+
|
130
|
+
if ! grep -q '\[tool.hatch.metadata\]' pyproject.toml; then
|
131
|
+
echo -e '\n[tool.hatch.metadata]\nallow-direct-references = true' >> pyproject.toml
|
132
|
+
fi
|
133
|
+
|
134
|
+
- name: Set up Docker Buildx
|
135
|
+
uses: docker/setup-buildx-action@v3
|
136
|
+
|
137
|
+
- name: Build Docker image and run integration test
|
138
|
+
env:
|
139
|
+
ALPHA_TEST_CLIENT_ID: ${{ secrets.ALPHA_TEST_CLIENT_ID }}
|
140
|
+
ALPHA_TEST_CLIENT_SECRET: ${{ secrets.ALPHA_TEST_CLIENT_SECRET }}
|
141
|
+
ALPHA_BASE_URL: ${{ secrets.ALPHA_BASE_URL }}
|
142
|
+
run: |
|
143
|
+
cd uipath-llamaindex-python
|
144
|
+
|
145
|
+
testcase="${{ matrix.testcase }}"
|
146
|
+
echo "Running testcase: $testcase"
|
147
|
+
|
148
|
+
docker build -f testcases/$testcase/Dockerfile \
|
149
|
+
-t $testcase:test \
|
150
|
+
--build-arg CLIENT_ID="$ALPHA_TEST_CLIENT_ID" \
|
151
|
+
--build-arg CLIENT_SECRET="$ALPHA_TEST_CLIENT_SECRET" \
|
152
|
+
--build-arg BASE_URL="$ALPHA_BASE_URL" \
|
153
|
+
.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: uipath
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.73
|
4
4
|
Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-python
|
@@ -17,9 +17,12 @@ Requires-Python: >=3.10
|
|
17
17
|
Requires-Dist: azure-monitor-opentelemetry>=1.6.8
|
18
18
|
Requires-Dist: click>=8.1.8
|
19
19
|
Requires-Dist: httpx>=0.28.1
|
20
|
+
Requires-Dist: hydra-core>=1.3.2
|
21
|
+
Requires-Dist: mockito>=1.5.4
|
20
22
|
Requires-Dist: opentelemetry-instrumentation>=0.52b1
|
21
23
|
Requires-Dist: opentelemetry-sdk>=1.31.1
|
22
24
|
Requires-Dist: pathlib>=1.0.1
|
25
|
+
Requires-Dist: pydantic-function-models>=0.1.10
|
23
26
|
Requires-Dist: pydantic>=2.11.1
|
24
27
|
Requires-Dist: pyperclip>=1.9.0
|
25
28
|
Requires-Dist: python-dotenv>=1.0.1
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "uipath"
|
3
|
-
version = "2.1.
|
3
|
+
version = "2.1.73"
|
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"
|
@@ -19,6 +19,9 @@ dependencies = [
|
|
19
19
|
"truststore>=0.10.1",
|
20
20
|
"textual>=5.3.0",
|
21
21
|
"pyperclip>=1.9.0",
|
22
|
+
"mockito>=1.5.4",
|
23
|
+
"hydra-core>=1.3.2",
|
24
|
+
"pydantic-function-models>=0.1.10",
|
22
25
|
]
|
23
26
|
classifiers = [
|
24
27
|
"Development Status :: 3 - Alpha",
|
@@ -72,7 +75,9 @@ dev = [
|
|
72
75
|
|
73
76
|
[tool.hatch.build.targets.wheel]
|
74
77
|
packages = ["src/uipath"]
|
75
|
-
include = [
|
78
|
+
include = [
|
79
|
+
"src/uipath/_resources"
|
80
|
+
]
|
76
81
|
|
77
82
|
[tool.ruff]
|
78
83
|
line-length = 88
|
@@ -0,0 +1,67 @@
|
|
1
|
+
{
|
2
|
+
"fileName": "default.json",
|
3
|
+
"id": "default-eval-set-id",
|
4
|
+
"name": "Basic Calculator Evaluation Set",
|
5
|
+
"batchSize": 10,
|
6
|
+
"evaluatorRefs": [
|
7
|
+
"equality"
|
8
|
+
],
|
9
|
+
"evaluations": [
|
10
|
+
{
|
11
|
+
"id": "test-addition",
|
12
|
+
"name": "Test Addition",
|
13
|
+
"inputs": {"a": 1, "b": 1, "operator": "+"},
|
14
|
+
"expectedOutput": {"result": 2},
|
15
|
+
"expectedAgentBehavior": "",
|
16
|
+
"evalSetId": "default-eval-set-id",
|
17
|
+
"createdAt": "2025-09-04T18:54:58.378Z",
|
18
|
+
"updatedAt": "2025-09-04T18:55:55.416Z"
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"id": "test-random-addition-using-mockito",
|
22
|
+
"name": "Test Random Addition Using Mockito",
|
23
|
+
"inputs": {"a": 1, "b": 1, "operator": "random"},
|
24
|
+
"expectedOutput": {"result": 2},
|
25
|
+
"expectedAgentBehavior": "",
|
26
|
+
"mockingStrategy": {
|
27
|
+
"type": "mockito",
|
28
|
+
"behaviors": [
|
29
|
+
{
|
30
|
+
"function": "get_random_operator",
|
31
|
+
"arguments": {
|
32
|
+
"args": [],
|
33
|
+
"kwargs": {}
|
34
|
+
},
|
35
|
+
"then": [
|
36
|
+
{
|
37
|
+
"type": "return",
|
38
|
+
"value": {"result": "+"}
|
39
|
+
}
|
40
|
+
]
|
41
|
+
}
|
42
|
+
]
|
43
|
+
},
|
44
|
+
"evalSetId": "default-eval-set-id",
|
45
|
+
"createdAt": "2025-09-04T18:54:58.378Z",
|
46
|
+
"updatedAt": "2025-09-04T18:55:55.416Z"
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"id": "test-random-addition-using-llm",
|
50
|
+
"name": "Test Random Addition Using LLM",
|
51
|
+
"inputs": {"a": 1, "b": 1, "operator": "random"},
|
52
|
+
"expectedOutput": {"result": 2},
|
53
|
+
"expectedAgentBehavior": "",
|
54
|
+
"mockingStrategy": {
|
55
|
+
"type": "llm",
|
56
|
+
"prompt": "The random operator is '+'.",
|
57
|
+
"toolsToSimulate": [{"name": "get_random_operator"}]
|
58
|
+
},
|
59
|
+
"evalSetId": "default-eval-set-id",
|
60
|
+
"createdAt": "2025-09-04T18:54:58.378Z",
|
61
|
+
"updatedAt": "2025-09-04T18:55:55.416Z"
|
62
|
+
}
|
63
|
+
],
|
64
|
+
"modelSettings": [],
|
65
|
+
"createdAt": "2025-09-04T18:54:58.379Z",
|
66
|
+
"updatedAt": "2025-09-04T18:55:55.416Z"
|
67
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"fileName": "equality.json",
|
3
|
+
"id": "equality",
|
4
|
+
"name": "Equality Evaluator",
|
5
|
+
"description": "An evaluator that judges the agent based on expected output.",
|
6
|
+
"category": 0,
|
7
|
+
"type": 1,
|
8
|
+
"targetOutputKey": "*",
|
9
|
+
"createdAt": "2025-06-26T17:45:39.651Z",
|
10
|
+
"updatedAt": "2025-06-26T17:45:39.651Z"
|
11
|
+
}
|
@@ -1,9 +1,13 @@
|
|
1
|
+
import random
|
2
|
+
|
1
3
|
from pydantic.dataclasses import dataclass
|
2
4
|
from enum import Enum
|
3
5
|
|
4
6
|
from uipath.tracing import traced
|
5
7
|
import logging
|
6
8
|
|
9
|
+
from uipath._cli._evals.mocks.mocks import mockable
|
10
|
+
|
7
11
|
logger = logging.getLogger(__name__)
|
8
12
|
|
9
13
|
class Operator(Enum):
|
@@ -11,6 +15,7 @@ class Operator(Enum):
|
|
11
15
|
SUBTRACT = "-"
|
12
16
|
MULTIPLY = "*"
|
13
17
|
DIVIDE = "/"
|
18
|
+
RANDOM = "random"
|
14
19
|
|
15
20
|
@dataclass
|
16
21
|
class CalculatorInput:
|
@@ -22,13 +27,28 @@ class CalculatorInput:
|
|
22
27
|
class CalculatorOutput:
|
23
28
|
result: float
|
24
29
|
|
25
|
-
|
30
|
+
@dataclass
|
31
|
+
class Wrapper:
|
32
|
+
# Testing nested objects
|
33
|
+
result: Operator
|
34
|
+
|
35
|
+
@traced()
|
36
|
+
@mockable()
|
37
|
+
def get_random_operator() -> Wrapper:
|
38
|
+
"""Get a random operator."""
|
39
|
+
return Wrapper(result=random.choice([Operator.ADD, Operator.SUBTRACT, Operator.MULTIPLY, Operator.DIVIDE]))
|
40
|
+
|
41
|
+
|
26
42
|
@traced()
|
27
|
-
def main(input: CalculatorInput) -> CalculatorOutput:
|
28
|
-
|
29
|
-
|
43
|
+
async def main(input: CalculatorInput) -> CalculatorOutput:
|
44
|
+
if input.operator == Operator.RANDOM:
|
45
|
+
operator = get_random_operator().result
|
46
|
+
else:
|
47
|
+
operator = input.operator
|
48
|
+
match operator:
|
30
49
|
case Operator.ADD: result = input.a + input.b
|
31
50
|
case Operator.SUBTRACT: result = input.a - input.b
|
32
51
|
case Operator.MULTIPLY: result = input.a * input.b
|
33
|
-
case Operator.DIVIDE: result = input.a / input.b if input.b != 0 else 0
|
52
|
+
case Operator.DIVIDE: result = input.a / input.b if input.b != 0.0 else 0.0
|
53
|
+
case _: raise ValueError("Unknown operator")
|
34
54
|
return CalculatorOutput(result=result)
|
@@ -73,13 +73,33 @@ class RunHistoryPanel(Container):
|
|
73
73
|
self.refresh_list()
|
74
74
|
|
75
75
|
def _refresh_running_items(self) -> None:
|
76
|
+
"""Refresh display names for running items only."""
|
76
77
|
if not any(run.status == "running" for run in self.runs):
|
77
|
-
return None
|
78
|
+
return None
|
78
79
|
|
79
|
-
|
80
|
+
try:
|
81
|
+
run_list = self.query_one("#run-list", ListView)
|
82
|
+
except Exception:
|
83
|
+
return None
|
84
|
+
|
85
|
+
# Take a snapshot of items to avoid mid-iteration changes
|
86
|
+
items_snapshot = list(run_list.children)
|
87
|
+
|
88
|
+
for item in items_snapshot:
|
89
|
+
if not hasattr(item, "run_id"):
|
90
|
+
continue
|
91
|
+
|
92
|
+
run = self.get_run_by_id(item.run_id)
|
93
|
+
if not run or run.status != "running":
|
94
|
+
continue
|
95
|
+
|
96
|
+
# Check if item still exists in the list (wasn't removed)
|
97
|
+
if item not in run_list.children:
|
98
|
+
continue
|
80
99
|
|
81
|
-
|
82
|
-
run = self.get_run_by_id(item.run_id) # type: ignore[attr-defined]
|
83
|
-
if run and run.status == "running":
|
100
|
+
try:
|
84
101
|
static = item.query_one(Static)
|
85
102
|
static.update(run.display_name)
|
103
|
+
except Exception:
|
104
|
+
# Item structure changed or was removed
|
105
|
+
continue
|