uipath 2.1.106__tar.gz → 2.1.108__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.
- {uipath-2.1.106 → uipath-2.1.108}/PKG-INFO +1 -1
- {uipath-2.1.106 → uipath-2.1.108}/pyproject.toml +1 -1
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_contracts.py +25 -5
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/SDK_REFERENCE.md +1 -98
- uipath-2.1.108/src/uipath/_services/guardrails_service.py +76 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/llm_gateway_service.py +15 -2
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_uipath.py +10 -37
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/models/agent.py +147 -2
- uipath-2.1.108/src/uipath/models/guardrails.py +246 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/_utils.py +18 -4
- {uipath-2.1.106 → uipath-2.1.108}/tests/agent/models/test_agent.py +59 -10
- uipath-2.1.108/tests/sdk/services/test_guardrails_service.py +114 -0
- uipath-2.1.108/tests/sdk/test_uipath_caching.py +326 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_traced.py +78 -0
- {uipath-2.1.106 → uipath-2.1.108}/uv.lock +1 -1
- uipath-2.1.106/src/uipath/models/guardrails.py +0 -469
- {uipath-2.1.106 → uipath-2.1.108}/.claude/agents/command-tester.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.claude/commands/prepare-pr.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.cursorrules +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.editorconfig +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.gitattributes +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/labeler.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/auto-label.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/cd.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/ci.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/commitlint.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/integration_tests.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/lint.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/publish-dev.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/publish-docs.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/slack.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/test-uipath-langchain.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/test-uipath-llamaindex.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.github/workflows/test.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.gitignore +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.pre-commit-config.yaml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.python-version +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.vscode/extensions.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.vscode/launch.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/.vscode/settings.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/CONTRIBUTING.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/LICENSE +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/README.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/AutomationSuite.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/CONTRIBUTING.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/FAQ.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/assets/env-preparation-failed-dark.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/assets/env-preparation-failed-light.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/assets/favicon.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/assets/llms.txt +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/assets/logo-dark.svg +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/assets/logo-light.svg +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/cli/index.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/actions.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_dark.gif +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_light.gif +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_secret_dark.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/cloud_env_var_secret_light.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/copy_path_dark.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets/copy_path_light.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/assets.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/attachments.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/buckets.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/connections.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/context_grounding.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/documents.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/documents_models.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/environment_variables.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/getting_started.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/jobs.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/llm_gateway.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/processes.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/queues.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/core/traced.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/hooks.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/index.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/javascripts/extra.js +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/overrides/main.html +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/overrides/partials/actions.html +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/overrides/partials/logo.html +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/release_policy.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/sample_images/google-ADK-agent/agent-output.png +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/docs/stylesheets/extra.css +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/justfile +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/mkdocs.yml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/py.typed +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/.env.example +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/README.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/input.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/asset-modifier-agent/uv.lock +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/README.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/evals/eval-sets/default.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/evals/evaluators/equality.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/evals/evaluators/llm-as-a-judge.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/calculator/uipath.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/.python-version +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/README.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/event-trigger/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/.env.example +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/README.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/input.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/multi_tool_agent/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/multi_tool_agent/agent.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/samples/google-ADK-agent/uv.lock +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/scripts/debug_test.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/scripts/lint_httpx_client.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/scripts/update_agents_md.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/README.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_auth_server.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_auth_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_models.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_oidc_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_portal_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_url_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/auth_config.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/index.html +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/localhost.crt +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_auth/localhost.key +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_debug/_bridge.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_debug/_runtime.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_chat.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_details.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_history.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_json_input.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_components/_new.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_models/_execution.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_models/_messages.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_styles/terminal.tcss +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_utils/_chat.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_utils/_exporter.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_dev/_terminal/_utils/_logger.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_console_progress_reporter.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_evaluate.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_evaluator_factory.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_evaluation_set.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_evaluator_base_params.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_exceptions.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_mocks.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_output.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_models/_sw_reporting.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_progress_reporter.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_runtime.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/_span_collection.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/input_mocker.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/llm_mocker.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mocker.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mocker_factory.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mockito_mocker.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_evals/mocks/mocks.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_push/sw_file_handler.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_escalation.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_hitl.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_logging.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_runtime.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_runtime_factory.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_runtime/_script_executor.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/.psmdcp.template +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/.rels.template +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/[Content_Types].xml.template +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/main.py.template +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_templates/package.nuspec.template +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_common.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_console.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_constants.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_debug.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_eval_set.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_folders.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_input_args.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_parse_ast.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_processes.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_project_files.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_studio_project.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_tracing.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/_utils/_uv_helpers.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_auth.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_debug.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_deploy.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_dev.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_eval.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_init.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_invoke.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_new.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_pack.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_publish.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_pull.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_push.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/cli_run.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/middlewares.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/models/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/models/runtime_schema.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_cli/spinner.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_config.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_events/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_events/_event_bus.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_events/_events.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_execution_context.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_folder_context.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/AGENTS.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/CLAUDE.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/CLI_REFERENCE.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_resources/REQUIRED_STRUCTURE.md +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/_base_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/actions_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/api_client.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/assets_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/attachments_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/buckets_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/connections_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/context_grounding_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/documents_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/entities_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/external_application_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/folder_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/jobs_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/processes_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_services/queues_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_auth.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_endpoint.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_infer_bindings.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_logs.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_read_overwrites.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_request_override.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_request_spec.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_ssl_context.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_url.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/_user_agent.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/_utils/constants.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/async_stream.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/citation.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/content.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/conversation.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/event.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/exchange.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/message.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/meta.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/conversation/tool.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/models/evals.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/react/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/react/prompts.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/agent/react/tools.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/_helpers/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/_helpers/helpers.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/base_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/deterministic_evaluator_base.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/exact_match_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/json_similarity_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/llm_as_judge_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/evaluators/trajectory_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/mocks/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/mocks/mockable.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/models/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/eval/models/models.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/action_schema.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/actions.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/assets.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/attachment.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/auth.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/buckets.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/connections.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/context_grounding.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/context_grounding_index.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/documents.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/entities.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/errors.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/exceptions.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/interrupt_models.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/job.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/llm_gateway.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/processes.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/models/queues.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/py.typed +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/telemetry/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/telemetry/_constants.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/telemetry/_track.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/_otel_exporters.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/tracing/_traced.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/utils/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/utils/_endpoints_manager.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/src/uipath/utils/dynamic_schema.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/run.sh +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/apicalls-testcase/src/assert.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/run.sh +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/basic-testcase/src/assert.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/common/validate_output.sh +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/agent.mermaid +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/langgraph.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/run.sh +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/src/assert.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/langchain-cross/src/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/agent.mermaid +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/llama_index.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/run.sh +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/src/assert.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/testcases/llamaindex-cross/src/main.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/__init__.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/agent/models/test_evals.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/conftest.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/evals/eval-sets/default.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/evals/evaluators/equality.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/mocks/test_input_mocker.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/mocks/test_mocks.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/eval/test_evaluate.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/evaluators/test_json_similarity_evaluator.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/bindings_script.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/pyproject.toml +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/simple_script.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/uipath-mock.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/mocks/uipath-simple-script-mock.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/models/test_runtime_schema.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_auth.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_hitl.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_init.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_init_agents_md.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_input_args.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_invoke.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_new.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_oidc_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_pack.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_portal_service_ensure_valid_token.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_portal_service_refresh_token.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_publish.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_pull.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_push.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_run.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/test_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/common.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/project_details.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/test_dynamic_schema.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/cli/utils/uipath_json.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/conftest.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/conftest.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_actions_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_api_client.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_assets_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_attachments_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_base_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_buckets_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_connections_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_context_grounding_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_documents_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_entities_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_external_application_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_folder_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_jobs_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_llm_integration.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_llm_schema_cleanup.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_llm_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_processes_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_queues_service.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/test_uipath_llm_integration.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/tests_data/documents_service/create_validation_action_response.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/tests_data/documents_service/extraction_response.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/services/tests_data/documents_service/validated_result.json +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/test_bindings_inference.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/test_config.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/sdk/test_overwrites.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_otel_exporters.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/tests/tracing/test_span_utils.py +0 -0
- {uipath-2.1.106 → uipath-2.1.108}/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.
|
|
3
|
+
Version: 2.1.108
|
|
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.
|
|
3
|
+
version = "2.1.108"
|
|
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"
|
|
@@ -460,12 +460,12 @@ class UiPathRuntimeContext(BaseModel):
|
|
|
460
460
|
return instance
|
|
461
461
|
|
|
462
462
|
|
|
463
|
-
class
|
|
463
|
+
class UiPathBaseRuntimeError(Exception):
|
|
464
464
|
"""Base exception class for UiPath runtime errors with structured error information."""
|
|
465
465
|
|
|
466
466
|
def __init__(
|
|
467
467
|
self,
|
|
468
|
-
code:
|
|
468
|
+
code: str,
|
|
469
469
|
title: str,
|
|
470
470
|
detail: str,
|
|
471
471
|
category: UiPathErrorCategory = UiPathErrorCategory.UNKNOWN,
|
|
@@ -484,10 +484,8 @@ class UiPathRuntimeError(Exception):
|
|
|
484
484
|
if status is None:
|
|
485
485
|
status = self._extract_http_status()
|
|
486
486
|
|
|
487
|
-
code_value = code.value
|
|
488
|
-
|
|
489
487
|
self.error_info = UiPathErrorContract(
|
|
490
|
-
code=f"{prefix}.{
|
|
488
|
+
code=f"{prefix}.{code}",
|
|
491
489
|
title=title,
|
|
492
490
|
detail=detail,
|
|
493
491
|
category=category,
|
|
@@ -529,6 +527,28 @@ class UiPathRuntimeError(Exception):
|
|
|
529
527
|
return self.error_info.model_dump()
|
|
530
528
|
|
|
531
529
|
|
|
530
|
+
class UiPathRuntimeError(UiPathBaseRuntimeError):
|
|
531
|
+
"""Exception class for UiPath runtime errors."""
|
|
532
|
+
|
|
533
|
+
def __init__(
|
|
534
|
+
self,
|
|
535
|
+
code: UiPathErrorCode,
|
|
536
|
+
title: str,
|
|
537
|
+
detail: str,
|
|
538
|
+
category: UiPathErrorCategory = UiPathErrorCategory.UNKNOWN,
|
|
539
|
+
prefix: str = "Python",
|
|
540
|
+
include_traceback: bool = True,
|
|
541
|
+
):
|
|
542
|
+
super().__init__(
|
|
543
|
+
code=code.value,
|
|
544
|
+
title=title,
|
|
545
|
+
detail=detail,
|
|
546
|
+
category=category,
|
|
547
|
+
prefix=prefix,
|
|
548
|
+
include_traceback=include_traceback,
|
|
549
|
+
)
|
|
550
|
+
|
|
551
|
+
|
|
532
552
|
class UiPathRuntimeStreamNotSupportedError(NotImplementedError):
|
|
533
553
|
"""Raised when a runtime does not support streaming."""
|
|
534
554
|
|
|
@@ -70,93 +70,6 @@ sdk.assets.update_async(robot_asset: uipath.models.assets.UserAsset, folder_key:
|
|
|
70
70
|
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
### Attachments
|
|
74
|
-
|
|
75
|
-
Attachments service
|
|
76
|
-
|
|
77
|
-
```python
|
|
78
|
-
# Delete an attachment.
|
|
79
|
-
sdk.attachments.delete(key: uuid.UUID, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
|
|
80
|
-
|
|
81
|
-
# Delete an attachment asynchronously.
|
|
82
|
-
sdk.attachments.delete_async(key: uuid.UUID, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
|
|
83
|
-
|
|
84
|
-
# Download an attachment.
|
|
85
|
-
sdk.attachments.download(key: uuid.UUID, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> str
|
|
86
|
-
|
|
87
|
-
# Download an attachment asynchronously.
|
|
88
|
-
sdk.attachments.download_async(key: uuid.UUID, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> str
|
|
89
|
-
|
|
90
|
-
# Upload a file or content to UiPath as an attachment.
|
|
91
|
-
sdk.attachments.upload(name: str, content: Union[str, bytes, NoneType]=None, source_path: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uuid.UUID
|
|
92
|
-
|
|
93
|
-
# Upload a file or content to UiPath as an attachment asynchronously.
|
|
94
|
-
sdk.attachments.upload_async(name: str, content: Union[str, bytes, NoneType]=None, source_path: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uuid.UUID
|
|
95
|
-
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Buckets
|
|
99
|
-
|
|
100
|
-
Buckets service
|
|
101
|
-
|
|
102
|
-
```python
|
|
103
|
-
# Download a file from a bucket.
|
|
104
|
-
sdk.buckets.download(name: Optional[str]=None, key: Optional[str]=None, blob_file_path: str, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
|
|
105
|
-
|
|
106
|
-
# Download a file from a bucket asynchronously.
|
|
107
|
-
sdk.buckets.download_async(name: Optional[str]=None, key: Optional[str]=None, blob_file_path: str, destination_path: str, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
|
|
108
|
-
|
|
109
|
-
# Retrieve bucket information by its name.
|
|
110
|
-
sdk.buckets.retrieve(name: Optional[str]=None, key: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uipath.models.buckets.Bucket
|
|
111
|
-
|
|
112
|
-
# Asynchronously retrieve bucket information by its name.
|
|
113
|
-
sdk.buckets.retrieve_async(name: Optional[str]=None, key: Optional[str]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> uipath.models.buckets.Bucket
|
|
114
|
-
|
|
115
|
-
# Upload a file to a bucket.
|
|
116
|
-
sdk.buckets.upload(key: Optional[str]=None, name: Optional[str]=None, blob_file_path: str, content_type: Optional[str]=None, source_path: Optional[str]=None, content: Union[str, bytes, NoneType]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
|
|
117
|
-
|
|
118
|
-
# Upload a file to a bucket asynchronously.
|
|
119
|
-
sdk.buckets.upload_async(key: Optional[str]=None, name: Optional[str]=None, blob_file_path: str, content_type: Optional[str]=None, source_path: Optional[str]=None, content: Union[str, bytes, NoneType]=None, folder_key: Optional[str]=None, folder_path: Optional[str]=None) -> None
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Connections
|
|
124
|
-
|
|
125
|
-
Connections service
|
|
126
|
-
|
|
127
|
-
```python
|
|
128
|
-
# Lists all connections with optional filtering.
|
|
129
|
-
sdk.connections.list(name: Optional[str]=None, folder_path: Optional[str]=None, folder_key: Optional[str]=None, connector_key: Optional[str]=None, skip: Optional[int]=None, top: Optional[int]=None) -> typing.List[uipath.models.connections.Connection]
|
|
130
|
-
|
|
131
|
-
# Asynchronously lists all connections with optional filtering.
|
|
132
|
-
sdk.connections.list_async(name: Optional[str]=None, folder_path: Optional[str]=None, folder_key: Optional[str]=None, connector_key: Optional[str]=None, skip: Optional[int]=None, top: Optional[int]=None) -> typing.List[uipath.models.connections.Connection]
|
|
133
|
-
|
|
134
|
-
# Synchronously retrieve connection API metadata.
|
|
135
|
-
sdk.connections.metadata(element_instance_id: int, tool_path: str, schema_mode: bool=True) -> uipath.models.connections.ConnectionMetadata
|
|
136
|
-
|
|
137
|
-
# Asynchronously retrieve connection API metadata.
|
|
138
|
-
sdk.connections.metadata_async(element_instance_id: int, tool_path: str, schema_mode: bool=True) -> uipath.models.connections.ConnectionMetadata
|
|
139
|
-
|
|
140
|
-
# Retrieve connection details by its key.
|
|
141
|
-
sdk.connections.retrieve(key: str) -> uipath.models.connections.Connection
|
|
142
|
-
|
|
143
|
-
# Asynchronously retrieve connection details by its key.
|
|
144
|
-
sdk.connections.retrieve_async(key: str) -> uipath.models.connections.Connection
|
|
145
|
-
|
|
146
|
-
# Retrieve event payload from UiPath Integration Service.
|
|
147
|
-
sdk.connections.retrieve_event_payload(event_args: uipath.models.connections.EventArguments) -> typing.Dict[str, typing.Any]
|
|
148
|
-
|
|
149
|
-
# Retrieve event payload from UiPath Integration Service.
|
|
150
|
-
sdk.connections.retrieve_event_payload_async(event_args: uipath.models.connections.EventArguments) -> typing.Dict[str, typing.Any]
|
|
151
|
-
|
|
152
|
-
# Retrieve an authentication token for a connection.
|
|
153
|
-
sdk.connections.retrieve_token(key: str, token_type: <enum 'ConnectionTokenType="direct") -> uipath.models.connections.ConnectionToken
|
|
154
|
-
|
|
155
|
-
# Asynchronously retrieve an authentication token for a connection.
|
|
156
|
-
sdk.connections.retrieve_token_async(key: str, token_type: <enum 'ConnectionTokenType="direct") -> uipath.models.connections.ConnectionToken
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
|
|
160
73
|
### Context Grounding
|
|
161
74
|
|
|
162
75
|
Context Grounding service
|
|
@@ -274,16 +187,6 @@ sdk.entities.update_records_async(entity_key: str, records: List[Any], schema: O
|
|
|
274
187
|
|
|
275
188
|
```
|
|
276
189
|
|
|
277
|
-
### Folders
|
|
278
|
-
|
|
279
|
-
Folders service
|
|
280
|
-
|
|
281
|
-
```python
|
|
282
|
-
# Retrieve the folder key by folder path with pagination support.
|
|
283
|
-
sdk.folders.retrieve_key(folder_path: str) -> typing.Optional[str]
|
|
284
|
-
|
|
285
|
-
```
|
|
286
|
-
|
|
287
190
|
### Jobs
|
|
288
191
|
|
|
289
192
|
Jobs service
|
|
@@ -339,7 +242,7 @@ Llm service
|
|
|
339
242
|
|
|
340
243
|
```python
|
|
341
244
|
# Generate chat completions using UiPath's normalized LLM Gateway API.
|
|
342
|
-
sdk.llm.chat_completions(messages: List[Dict[str, str]], model: str="gpt-4o-mini-2024-07-18", max_tokens: int=4096, temperature: float=0, n: int=1, frequency_penalty: float=0, presence_penalty: float=0, top_p: Optional[float]=1, top_k: Optional[int]=None, tools: Optional[List[uipath.models.llm_gateway.ToolDefinition]]=None, tool_choice: Union[uipath.models.llm_gateway.AutoToolChoice, uipath.models.llm_gateway.RequiredToolChoice, uipath.models.llm_gateway.SpecificToolChoice, Literal['auto', 'none'], NoneType]=None, response_format: Union[Dict[str, Any], type[pydantic.main.BaseModel], NoneType]=None, api_version: str="2024-08-01-preview")
|
|
245
|
+
sdk.llm.chat_completions(messages: Union[List[Dict[str, str]], List[tuple[str, str]]], model: str="gpt-4o-mini-2024-07-18", max_tokens: int=4096, temperature: float=0, n: int=1, frequency_penalty: float=0, presence_penalty: float=0, top_p: Optional[float]=1, top_k: Optional[int]=None, tools: Optional[List[uipath.models.llm_gateway.ToolDefinition]]=None, tool_choice: Union[uipath.models.llm_gateway.AutoToolChoice, uipath.models.llm_gateway.RequiredToolChoice, uipath.models.llm_gateway.SpecificToolChoice, Literal['auto', 'none'], NoneType]=None, response_format: Union[Dict[str, Any], type[pydantic.main.BaseModel], NoneType]=None, api_version: str="2024-08-01-preview")
|
|
343
246
|
|
|
344
247
|
```
|
|
345
248
|
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from typing import Any, Dict, Optional, Union
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
4
|
+
|
|
5
|
+
from .._config import Config
|
|
6
|
+
from .._execution_context import ExecutionContext
|
|
7
|
+
from .._folder_context import FolderContext
|
|
8
|
+
from .._utils import Endpoint, RequestSpec, header_folder
|
|
9
|
+
from ..models.guardrails import BuiltInValidatorGuardrail, Guardrail
|
|
10
|
+
from ..tracing import traced
|
|
11
|
+
from ._base_service import BaseService
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class BuiltInGuardrailValidationResult(BaseModel):
|
|
15
|
+
"""Result from built-in guardrail validation."""
|
|
16
|
+
|
|
17
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
18
|
+
|
|
19
|
+
validation_passed: bool = Field(alias="validation_passed")
|
|
20
|
+
reason: str = Field(alias="reason")
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class GuardrailViolationError(Exception):
|
|
24
|
+
"""Exception raised when guardrail validation fails."""
|
|
25
|
+
|
|
26
|
+
def __init__(self, detected_issue: Any):
|
|
27
|
+
self.detected_issue = detected_issue
|
|
28
|
+
super().__init__(f"Guardrail violation detected: {detected_issue}")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class GuardrailsService(FolderContext, BaseService):
|
|
32
|
+
"""Service for validating text against UiPath Guardrails."""
|
|
33
|
+
|
|
34
|
+
def __init__(self, config: Config, execution_context: ExecutionContext) -> None:
|
|
35
|
+
super().__init__(config=config, execution_context=execution_context)
|
|
36
|
+
|
|
37
|
+
@traced("evaluate_guardrail", run_type="uipath")
|
|
38
|
+
def evaluate_guardrail(
|
|
39
|
+
self,
|
|
40
|
+
input_data: Union[str, Dict[str, Any]],
|
|
41
|
+
guardrail: Guardrail,
|
|
42
|
+
*,
|
|
43
|
+
folder_key: Optional[str] = None,
|
|
44
|
+
folder_path: Optional[str] = None,
|
|
45
|
+
) -> BuiltInGuardrailValidationResult:
|
|
46
|
+
"""Call the API to validate input_data with the given guardrail.
|
|
47
|
+
|
|
48
|
+
Only supports built-in guardrails for now.
|
|
49
|
+
"""
|
|
50
|
+
if isinstance(guardrail, BuiltInValidatorGuardrail):
|
|
51
|
+
parameters = [
|
|
52
|
+
param.model_dump(by_alias=True)
|
|
53
|
+
for param in guardrail.validator_parameters
|
|
54
|
+
]
|
|
55
|
+
payload = {
|
|
56
|
+
"validator": guardrail.validator_type,
|
|
57
|
+
"input": input_data if isinstance(input_data, str) else str(input_data),
|
|
58
|
+
"parameters": parameters,
|
|
59
|
+
}
|
|
60
|
+
spec = RequestSpec(
|
|
61
|
+
method="POST",
|
|
62
|
+
endpoint=Endpoint("/agentsruntime_/api/execution/guardrails/validate"),
|
|
63
|
+
json=payload,
|
|
64
|
+
headers={**header_folder(folder_key, folder_path)},
|
|
65
|
+
)
|
|
66
|
+
response = self.request(
|
|
67
|
+
spec.method,
|
|
68
|
+
url=spec.endpoint,
|
|
69
|
+
json=spec.json,
|
|
70
|
+
headers=spec.headers,
|
|
71
|
+
)
|
|
72
|
+
return BuiltInGuardrailValidationResult.model_validate(response.json())
|
|
73
|
+
else:
|
|
74
|
+
raise NotImplementedError(
|
|
75
|
+
"Custom guardrail validation is not yet supported by the API."
|
|
76
|
+
)
|
|
@@ -344,7 +344,7 @@ class UiPathLlmChatService(BaseService):
|
|
|
344
344
|
@traced(name="llm_chat_completions", run_type="uipath")
|
|
345
345
|
async def chat_completions(
|
|
346
346
|
self,
|
|
347
|
-
messages: List[Dict[str, str]],
|
|
347
|
+
messages: Union[List[Dict[str, str]], List[tuple[str, str]]],
|
|
348
348
|
model: str = ChatModels.gpt_4o_mini_2024_07_18,
|
|
349
349
|
max_tokens: int = 4096,
|
|
350
350
|
temperature: float = 0,
|
|
@@ -475,13 +475,26 @@ class UiPathLlmChatService(BaseService):
|
|
|
475
475
|
This service uses UiPath's normalized API format which provides consistent
|
|
476
476
|
behavior across different underlying model providers and enhanced enterprise features.
|
|
477
477
|
"""
|
|
478
|
+
converted_messages = []
|
|
479
|
+
|
|
480
|
+
for message in messages:
|
|
481
|
+
if isinstance(message, tuple) and len(message) == 2:
|
|
482
|
+
role, content = message
|
|
483
|
+
converted_messages.append({"role": role, "content": content})
|
|
484
|
+
elif isinstance(message, dict):
|
|
485
|
+
converted_messages.append(message)
|
|
486
|
+
else:
|
|
487
|
+
raise ValueError(
|
|
488
|
+
f"Invalid message format: {message}. Expected tuple (role, content) or dict with 'role' and 'content' keys."
|
|
489
|
+
)
|
|
490
|
+
|
|
478
491
|
endpoint = EndpointManager.get_normalized_endpoint().format(
|
|
479
492
|
model=model, api_version=api_version
|
|
480
493
|
)
|
|
481
494
|
endpoint = Endpoint("/" + endpoint)
|
|
482
495
|
|
|
483
496
|
request_body = {
|
|
484
|
-
"messages":
|
|
497
|
+
"messages": converted_messages,
|
|
485
498
|
"max_tokens": max_tokens,
|
|
486
499
|
"temperature": temperature,
|
|
487
500
|
"n": n,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from functools import cached_property
|
|
1
2
|
from typing import Optional
|
|
2
3
|
|
|
3
4
|
from pydantic import ValidationError
|
|
@@ -51,10 +52,6 @@ class UiPath:
|
|
|
51
52
|
raise BaseUrlMissingError() from e
|
|
52
53
|
elif error["loc"][0] == "secret":
|
|
53
54
|
raise SecretMissingError() from e
|
|
54
|
-
self._folders_service: Optional[FolderService] = None
|
|
55
|
-
self._buckets_service: Optional[BucketsService] = None
|
|
56
|
-
self._attachments_service: Optional[AttachmentsService] = None
|
|
57
|
-
self._connections_service: Optional[ConnectionsService] = None
|
|
58
55
|
setup_logging(should_debug=debug)
|
|
59
56
|
self._execution_context = ExecutionContext()
|
|
60
57
|
|
|
@@ -66,13 +63,9 @@ class UiPath:
|
|
|
66
63
|
def assets(self) -> AssetsService:
|
|
67
64
|
return AssetsService(self._config, self._execution_context)
|
|
68
65
|
|
|
69
|
-
@
|
|
66
|
+
@cached_property
|
|
70
67
|
def attachments(self) -> AttachmentsService:
|
|
71
|
-
|
|
72
|
-
self._attachments_service = AttachmentsService(
|
|
73
|
-
self._config, self._execution_context
|
|
74
|
-
)
|
|
75
|
-
return self._attachments_service
|
|
68
|
+
return AttachmentsService(self._config, self._execution_context)
|
|
76
69
|
|
|
77
70
|
@property
|
|
78
71
|
def processes(self) -> ProcessesService:
|
|
@@ -82,39 +75,21 @@ class UiPath:
|
|
|
82
75
|
def actions(self) -> ActionsService:
|
|
83
76
|
return ActionsService(self._config, self._execution_context)
|
|
84
77
|
|
|
85
|
-
@
|
|
78
|
+
@cached_property
|
|
86
79
|
def buckets(self) -> BucketsService:
|
|
87
|
-
if not self._buckets_service:
|
|
88
|
-
self._buckets_service = BucketsService(
|
|
89
|
-
self._config, self._execution_context
|
|
90
|
-
)
|
|
91
80
|
return BucketsService(self._config, self._execution_context)
|
|
92
81
|
|
|
93
|
-
@
|
|
82
|
+
@cached_property
|
|
94
83
|
def connections(self) -> ConnectionsService:
|
|
95
|
-
|
|
96
|
-
if not self._folders_service:
|
|
97
|
-
self._folders_service = FolderService(
|
|
98
|
-
self._config, self._execution_context
|
|
99
|
-
)
|
|
100
|
-
self._connections_service = ConnectionsService(
|
|
101
|
-
self._config, self._execution_context, self._folders_service
|
|
102
|
-
)
|
|
103
|
-
return self._connections_service
|
|
84
|
+
return ConnectionsService(self._config, self._execution_context, self.folders)
|
|
104
85
|
|
|
105
86
|
@property
|
|
106
87
|
def context_grounding(self) -> ContextGroundingService:
|
|
107
|
-
if not self._folders_service:
|
|
108
|
-
self._folders_service = FolderService(self._config, self._execution_context)
|
|
109
|
-
if not self._buckets_service:
|
|
110
|
-
self._buckets_service = BucketsService(
|
|
111
|
-
self._config, self._execution_context
|
|
112
|
-
)
|
|
113
88
|
return ContextGroundingService(
|
|
114
89
|
self._config,
|
|
115
90
|
self._execution_context,
|
|
116
|
-
self.
|
|
117
|
-
self.
|
|
91
|
+
self.folders,
|
|
92
|
+
self.buckets,
|
|
118
93
|
)
|
|
119
94
|
|
|
120
95
|
@property
|
|
@@ -129,11 +104,9 @@ class UiPath:
|
|
|
129
104
|
def jobs(self) -> JobsService:
|
|
130
105
|
return JobsService(self._config, self._execution_context)
|
|
131
106
|
|
|
132
|
-
@
|
|
107
|
+
@cached_property
|
|
133
108
|
def folders(self) -> FolderService:
|
|
134
|
-
|
|
135
|
-
self._folders_service = FolderService(self._config, self._execution_context)
|
|
136
|
-
return self._folders_service
|
|
109
|
+
return FolderService(self._config, self._execution_context)
|
|
137
110
|
|
|
138
111
|
@property
|
|
139
112
|
def llm_openai(self) -> UiPathOpenAIService:
|
|
@@ -6,7 +6,11 @@ from typing import Annotated, Any, Dict, List, Literal, Optional, Union
|
|
|
6
6
|
from pydantic import BaseModel, ConfigDict, Discriminator, Field, Tag, field_validator
|
|
7
7
|
|
|
8
8
|
from uipath.models import Connection
|
|
9
|
-
from uipath.models.guardrails import
|
|
9
|
+
from uipath.models.guardrails import (
|
|
10
|
+
BuiltInValidatorGuardrail,
|
|
11
|
+
CustomGuardrail,
|
|
12
|
+
FieldReference,
|
|
13
|
+
)
|
|
10
14
|
|
|
11
15
|
|
|
12
16
|
class AgentResourceType(str, Enum):
|
|
@@ -132,6 +136,37 @@ class AgentProcessToolResourceConfig(BaseAgentToolResourceConfig):
|
|
|
132
136
|
)
|
|
133
137
|
|
|
134
138
|
|
|
139
|
+
class AgentEscalationRecipientType(str, Enum):
|
|
140
|
+
"""Enum for escalation recipient types."""
|
|
141
|
+
|
|
142
|
+
USER_ID = "UserId"
|
|
143
|
+
GROUP_ID = "GroupId"
|
|
144
|
+
USER_EMAIL = "UserEmail"
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class AgentEscalationRecipient(BaseModel):
|
|
148
|
+
"""Recipient for escalation."""
|
|
149
|
+
|
|
150
|
+
type: Union[AgentEscalationRecipientType, str] = Field(..., alias="type")
|
|
151
|
+
value: str = Field(..., alias="value")
|
|
152
|
+
display_name: Optional[str] = Field(default=None, alias="displayName")
|
|
153
|
+
|
|
154
|
+
@field_validator("type", mode="before")
|
|
155
|
+
@classmethod
|
|
156
|
+
def normalize_type(cls, v: Any) -> str:
|
|
157
|
+
"""Normalize recipient type from int (1=UserId, 2=GroupId, 3=UserEmail) or string. Unknown integers are converted to string."""
|
|
158
|
+
if isinstance(v, int):
|
|
159
|
+
mapping = {
|
|
160
|
+
1: AgentEscalationRecipientType.USER_ID,
|
|
161
|
+
2: AgentEscalationRecipientType.GROUP_ID,
|
|
162
|
+
3: AgentEscalationRecipientType.USER_EMAIL,
|
|
163
|
+
}
|
|
164
|
+
return mapping.get(v, str(v))
|
|
165
|
+
return v
|
|
166
|
+
|
|
167
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
168
|
+
|
|
169
|
+
|
|
135
170
|
class AgentIntegrationToolParameter(BaseModel):
|
|
136
171
|
"""Agent integration tool parameter."""
|
|
137
172
|
|
|
@@ -479,6 +514,116 @@ class AgentSettings(BaseModel):
|
|
|
479
514
|
)
|
|
480
515
|
|
|
481
516
|
|
|
517
|
+
class AgentGuardrailActionType(str, Enum):
|
|
518
|
+
"""Action type enumeration."""
|
|
519
|
+
|
|
520
|
+
BLOCK = "block"
|
|
521
|
+
ESCALATE = "escalate"
|
|
522
|
+
FILTER = "filter"
|
|
523
|
+
LOG = "log"
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
class AgentGuardrailBlockAction(BaseModel):
|
|
527
|
+
"""Block action model."""
|
|
528
|
+
|
|
529
|
+
action_type: Literal["block"] = Field(alias="$actionType")
|
|
530
|
+
reason: str
|
|
531
|
+
|
|
532
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
class AgentGuardrailFilterAction(BaseModel):
|
|
536
|
+
"""Filter action model."""
|
|
537
|
+
|
|
538
|
+
action_type: Literal["filter"] = Field(alias="$actionType")
|
|
539
|
+
fields: List[FieldReference]
|
|
540
|
+
|
|
541
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
class AgentGuardrailSeverityLevel(str, Enum):
|
|
545
|
+
"""Severity level enumeration."""
|
|
546
|
+
|
|
547
|
+
ERROR = "Error"
|
|
548
|
+
INFO = "Info"
|
|
549
|
+
WARNING = "Warning"
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
class AgentGuardrailLogAction(BaseModel):
|
|
553
|
+
"""Log action model."""
|
|
554
|
+
|
|
555
|
+
action_type: Literal["log"] = Field(alias="$actionType")
|
|
556
|
+
message: str = Field(..., alias="message")
|
|
557
|
+
severity_level: AgentGuardrailSeverityLevel = Field(alias="severityLevel")
|
|
558
|
+
|
|
559
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
class AgentGuardrailEscalateActionApp(BaseModel):
|
|
563
|
+
"""Escalate action app model."""
|
|
564
|
+
|
|
565
|
+
id: Optional[str] = None
|
|
566
|
+
version: int
|
|
567
|
+
name: str
|
|
568
|
+
folder_id: Optional[str] = Field(None, alias="folderId")
|
|
569
|
+
folder_name: str = Field(alias="folderName")
|
|
570
|
+
app_process_key: Optional[str] = Field(None, alias="appProcessKey")
|
|
571
|
+
runtime: Optional[str] = None
|
|
572
|
+
|
|
573
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
574
|
+
|
|
575
|
+
|
|
576
|
+
class AgentGuardrailEscalateAction(BaseModel):
|
|
577
|
+
"""Escalate action model."""
|
|
578
|
+
|
|
579
|
+
action_type: Literal["escalate"] = Field(alias="$actionType")
|
|
580
|
+
app: AgentGuardrailEscalateActionApp
|
|
581
|
+
recipient: AgentEscalationRecipient
|
|
582
|
+
|
|
583
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
584
|
+
|
|
585
|
+
|
|
586
|
+
GuardrailAction = Annotated[
|
|
587
|
+
Union[
|
|
588
|
+
AgentGuardrailBlockAction,
|
|
589
|
+
AgentGuardrailFilterAction,
|
|
590
|
+
AgentGuardrailLogAction,
|
|
591
|
+
AgentGuardrailEscalateAction,
|
|
592
|
+
],
|
|
593
|
+
Field(discriminator="action_type"),
|
|
594
|
+
]
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
class AgentCustomGuardrail(CustomGuardrail):
|
|
598
|
+
"""Agent custom guardrail with action capabilities."""
|
|
599
|
+
|
|
600
|
+
action: GuardrailAction = Field(
|
|
601
|
+
..., description="Action to take when guardrail is triggered"
|
|
602
|
+
)
|
|
603
|
+
|
|
604
|
+
model_config = ConfigDict(
|
|
605
|
+
validate_by_name=True, validate_by_alias=True, extra="allow"
|
|
606
|
+
)
|
|
607
|
+
|
|
608
|
+
|
|
609
|
+
class AgentBuiltInValidatorGuardrail(BuiltInValidatorGuardrail):
|
|
610
|
+
"""Agent built-in validator guardrail with action capabilities."""
|
|
611
|
+
|
|
612
|
+
action: GuardrailAction = Field(
|
|
613
|
+
..., description="Action to take when guardrail is triggered"
|
|
614
|
+
)
|
|
615
|
+
|
|
616
|
+
model_config = ConfigDict(
|
|
617
|
+
validate_by_name=True, validate_by_alias=True, extra="allow"
|
|
618
|
+
)
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
AgentGuardrail = Annotated[
|
|
622
|
+
Union[AgentCustomGuardrail, AgentBuiltInValidatorGuardrail],
|
|
623
|
+
Field(discriminator="guardrail_type"),
|
|
624
|
+
]
|
|
625
|
+
|
|
626
|
+
|
|
482
627
|
class BaseAgentDefinition(BaseModel):
|
|
483
628
|
"""Agent definition model."""
|
|
484
629
|
|
|
@@ -488,7 +633,7 @@ class BaseAgentDefinition(BaseModel):
|
|
|
488
633
|
output_schema: Dict[str, Any] = Field(
|
|
489
634
|
..., alias="outputSchema", description="JSON schema for output arguments"
|
|
490
635
|
)
|
|
491
|
-
guardrails: Optional[List[
|
|
636
|
+
guardrails: Optional[List[AgentGuardrail]] = Field(
|
|
492
637
|
None, description="List of agent guardrails"
|
|
493
638
|
)
|
|
494
639
|
|