uipath-langchain 0.0.127__tar.gz → 0.0.128__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-langchain might be problematic. Click here for more details.
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/PKG-INFO +2 -2
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/pyproject.toml +2 -2
- uipath_langchain-0.0.128/src/uipath_langchain/_cli/_runtime/_context.py +168 -0
- uipath_langchain-0.0.128/src/uipath_langchain/_cli/cli_eval.py +63 -0
- uipath_langchain-0.0.128/src/uipath_langchain/_cli/cli_run.py +67 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/middlewares.py +2 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/uv.lock +5 -5
- uipath_langchain-0.0.127/src/uipath_langchain/_cli/_runtime/_context.py +0 -21
- uipath_langchain-0.0.127/src/uipath_langchain/_cli/cli_run.py +0 -93
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.cursorrules +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.editorconfig +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.gitattributes +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/cd.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/ci.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/commitlint.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/integration_tests.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/lint-custom-version.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/lint.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/publish-dev.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/publish-docs.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/publish-prior-stable-version.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/slack.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/test-custom-version.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/test.yml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.gitignore +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.pre-commit-config.yaml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.python-version +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.vscode/extensions.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.vscode/settings.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/CONTRIBUTING.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/LICENSE +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/chat_models.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/context_grounding.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/human_in_the_loop.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start_images/cloud_env_var_dark.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start_images/cloud_env_var_light.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start_images/invoke_output_dark.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start_images/invoke_output_light.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/click-storage-bucket.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-index-1.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-index-2.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-process.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-quiz-generator.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-storage-bucket-1.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-storage-bucket-2.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/folder-path.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/job-info.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/output.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/process-page.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/researcher-1.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/researcher-2.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/run-process-1.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/run-process-2.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/storage-bucket-content.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/multi-agent-distributed/coder-agent-package-overview.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/multi-agent-distributed/coder-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/multi-agent-distributed/planner-agent-package-overview.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/multi-agent-distributed/planner-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/multi-agent-distributed/researcher-agent-package-overview.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/multi-agent-distributed/researcher-agent-process-configuration.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/activate-apps.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/activate-deployment.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/copy-folder-path.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/deploy-solution-package-wizard.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/deploy-solution-package.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/monitor-agent.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/navigate-to-solution-folder.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/resume-condition.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/run-agent.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/solution-destination-folder.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/start-job.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/ticket-classification/upload-solution-package.png +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/input.example/quiz-generator-debug-input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/input.example/researcher-debug-input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/quiz-generator-RAG-agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/researcher-RAG-agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/src/agents/quiz-generator-RAG-agent.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/src/agents/researcher-RAG-agent.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/RAG-quiz-generator/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/chat-agent/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/company-research-agent/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/.env.template +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/.python-version +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/.vscode/launch.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/src/email_organizer/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/src/email_organizer/main.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/src/email_organizer/outlook_client.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/email-organizer-agent/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/database.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/main.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/models.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/schemas.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/templates/index.html +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/hitl-inbox-server/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/coder.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/planner.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/researcher.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/coder.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/planner.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/researcher.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-planner-researcher-coder-distributed/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/multi-agent-supervisor-researcher-coder/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/retrieval-chain/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/retrieval-chain/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/retrieval-chain/main.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/retrieval-chain/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/retrieval-chain/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/retrieval-chain/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-local-mcp/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/main.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/simple-remote-mcp/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/escalation_app_solution/generic-escalation-app-solution-1.0.0.zip +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/main.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/samples/ticket-classification/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_runtime/_conversation.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_runtime/_exception.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_runtime/_input.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_runtime/_output.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_runtime/_runtime.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_templates/langgraph.json.template +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_templates/main.py.template +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/_utils/_graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/cli_dev.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/cli_init.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_cli/cli_new.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_utils/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_utils/_request_mixin.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_utils/_settings.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/_utils/_sleep_policy.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/builder/agent_config.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/chat/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/chat/models.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/embeddings/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/embeddings/embeddings.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/retrievers/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/retrievers/context_grounding_retriever.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/tracers/AsyncUiPathTracer.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/tracers/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/tracers/_events.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/tracers/_instrument_traceable.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/tracers/_utils.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/vectorstores/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/src/uipath_langchain/vectorstores/context_grounding_vectorstore.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/Dockerfile +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/run.sh +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/src/assert.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/src/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/company-research-agent/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/run.sh +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/src/assert.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/src/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/multi-agent-supervisor-researcher-coder/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/run.sh +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/src/assert.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/simple-local-mcp/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/.env.example +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/README.md +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/agent.mermaid +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/input.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/pyproject.toml +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/run.sh +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/src/assert.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/src/main.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/testcases/ticket-classification/uv.lock +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/builder/test_config.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/cli/conftest.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/cli/mocks/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/cli/mocks/simple_agent.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/cli/mocks/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/cli/test_run.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/conftest.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/mocks/action_trigger_hitl.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/mocks/api_trigger_hitl.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/mocks/job_trigger_hitl.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/mocks/langgraph.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/mocks/uipath-default-escalation.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/mocks/uipath.json +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/test_action_trigger.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/test_hitl_api_trigger.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/test_hitl_default_escalation.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/hitl/test_hitl_job_trigger.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/test_dummy.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/tracers/__init__.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/tracers/test_async_uipath_tracer.py +0 -0
- {uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/tests/tracers/test_instrument_traceable.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath-langchain
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.128
|
|
4
4
|
Summary: UiPath Langchain
|
|
5
5
|
Project-URL: Homepage, https://uipath.com
|
|
6
6
|
Project-URL: Repository, https://github.com/UiPath/uipath-langchain-python
|
|
@@ -25,7 +25,7 @@ Requires-Dist: openai>=1.65.5
|
|
|
25
25
|
Requires-Dist: openinference-instrumentation-langchain>=0.1.50
|
|
26
26
|
Requires-Dist: pydantic-settings>=2.6.0
|
|
27
27
|
Requires-Dist: python-dotenv>=1.0.1
|
|
28
|
-
Requires-Dist: uipath<2.2.0,>=2.1.
|
|
28
|
+
Requires-Dist: uipath<2.2.0,>=2.1.44
|
|
29
29
|
Provides-Extra: langchain
|
|
30
30
|
Description-Content-Type: text/markdown
|
|
31
31
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "uipath-langchain"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.128"
|
|
4
4
|
description = "UiPath Langchain"
|
|
5
5
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
6
6
|
requires-python = ">=3.10"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"uipath>=2.1.
|
|
8
|
+
"uipath>=2.1.44, <2.2.0",
|
|
9
9
|
"langgraph>=0.5.0, <0.7.0",
|
|
10
10
|
"langchain-core>=0.3.34",
|
|
11
11
|
"langgraph-checkpoint-sqlite>=2.0.3",
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
from typing import Any, Optional, Union
|
|
2
|
+
from uuid import uuid4
|
|
3
|
+
|
|
4
|
+
from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver
|
|
5
|
+
from langgraph.graph import StateGraph
|
|
6
|
+
from uipath._cli._runtime._contracts import UiPathRuntimeContext, UiPathTraceContext
|
|
7
|
+
|
|
8
|
+
from .._utils._graph import LangGraphConfig
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class LangGraphRuntimeContext(UiPathRuntimeContext):
|
|
12
|
+
"""Context information passed throughout the runtime execution."""
|
|
13
|
+
|
|
14
|
+
langgraph_config: Optional[LangGraphConfig] = None
|
|
15
|
+
state_graph: Optional[StateGraph[Any, Any]] = None
|
|
16
|
+
output: Optional[Any] = None
|
|
17
|
+
state: Optional[Any] = (
|
|
18
|
+
None # TypedDict issue, the actual type is: Optional[langgraph.types.StateSnapshot]
|
|
19
|
+
)
|
|
20
|
+
memory: Optional[AsyncSqliteSaver] = None
|
|
21
|
+
langsmith_tracing_enabled: Union[str, bool, None] = False
|
|
22
|
+
resume_triggers_table: str = "__uipath_resume_triggers"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class LangGraphRuntimeContextBuilder:
|
|
26
|
+
"""Builder class for LangGraphRuntimeContext following the builder pattern."""
|
|
27
|
+
|
|
28
|
+
def __init__(self):
|
|
29
|
+
self._kwargs = {}
|
|
30
|
+
|
|
31
|
+
def with_defaults(
|
|
32
|
+
self, config_path: Optional[str] = None, **kwargs
|
|
33
|
+
) -> "LangGraphRuntimeContextBuilder":
|
|
34
|
+
"""Apply default configuration similar to LangGraphRuntimeContext.from_config().
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
config_path: Path to the configuration file (defaults to UIPATH_CONFIG_PATH env var or "uipath.json")
|
|
38
|
+
**kwargs: Additional keyword arguments to pass to with_defaults
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
Self for method chaining
|
|
42
|
+
"""
|
|
43
|
+
from os import environ as env
|
|
44
|
+
|
|
45
|
+
resolved_config_path = config_path or env.get(
|
|
46
|
+
"UIPATH_CONFIG_PATH", "uipath.json"
|
|
47
|
+
)
|
|
48
|
+
self._kwargs["config_path"] = resolved_config_path
|
|
49
|
+
|
|
50
|
+
bool_map = {"true": True, "false": False}
|
|
51
|
+
tracing = env.get("UIPATH_TRACING_ENABLED", True)
|
|
52
|
+
if isinstance(tracing, str) and tracing.lower() in bool_map:
|
|
53
|
+
tracing = bool_map[tracing.lower()]
|
|
54
|
+
|
|
55
|
+
self._kwargs.update(
|
|
56
|
+
{
|
|
57
|
+
"job_id": env.get("UIPATH_JOB_KEY"),
|
|
58
|
+
"execution_id": env.get("UIPATH_JOB_KEY"),
|
|
59
|
+
"trace_id": env.get("UIPATH_TRACE_ID"),
|
|
60
|
+
"tracing_enabled": tracing,
|
|
61
|
+
"logs_min_level": env.get("LOG_LEVEL", "INFO"),
|
|
62
|
+
"langsmith_tracing_enabled": env.get("LANGSMITH_TRACING", False),
|
|
63
|
+
**kwargs, # Allow overriding defaults with provided kwargs
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
self._kwargs["trace_context"] = UiPathTraceContext(
|
|
68
|
+
trace_id=env.get("UIPATH_TRACE_ID"),
|
|
69
|
+
parent_span_id=env.get("UIPATH_PARENT_SPAN_ID"),
|
|
70
|
+
root_span_id=env.get("UIPATH_ROOT_SPAN_ID"),
|
|
71
|
+
enabled=tracing,
|
|
72
|
+
job_id=env.get("UIPATH_JOB_KEY"),
|
|
73
|
+
org_id=env.get("UIPATH_ORGANIZATION_ID"),
|
|
74
|
+
tenant_id=env.get("UIPATH_TENANT_ID"),
|
|
75
|
+
process_key=env.get("UIPATH_PROCESS_UUID"),
|
|
76
|
+
folder_key=env.get("UIPATH_FOLDER_KEY"),
|
|
77
|
+
reference_id=env.get("UIPATH_JOB_KEY") or str(uuid4()),
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
return self
|
|
81
|
+
|
|
82
|
+
def with_entrypoint(
|
|
83
|
+
self, entrypoint: Optional[str]
|
|
84
|
+
) -> "LangGraphRuntimeContextBuilder":
|
|
85
|
+
"""Set the entrypoint for the runtime context.
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
entrypoint: The entrypoint to execute
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
Self for method chaining
|
|
92
|
+
"""
|
|
93
|
+
if entrypoint is not None:
|
|
94
|
+
self._kwargs["entrypoint"] = entrypoint
|
|
95
|
+
return self
|
|
96
|
+
|
|
97
|
+
def with_input(
|
|
98
|
+
self, input_data: Optional[str] = None, input_file: Optional[str] = None
|
|
99
|
+
) -> "LangGraphRuntimeContextBuilder":
|
|
100
|
+
"""Set the input data for the runtime context.
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
input_data: The input data as a string
|
|
104
|
+
input_file: Path to the input file
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
Self for method chaining
|
|
108
|
+
"""
|
|
109
|
+
if input_data is not None:
|
|
110
|
+
self._kwargs["input"] = input_data
|
|
111
|
+
if input_file is not None:
|
|
112
|
+
self._kwargs["input_file"] = input_file
|
|
113
|
+
return self
|
|
114
|
+
|
|
115
|
+
def with_resume(self, enable: bool = True) -> "LangGraphRuntimeContextBuilder":
|
|
116
|
+
"""Enable or disable resume mode for the runtime context.
|
|
117
|
+
|
|
118
|
+
Args:
|
|
119
|
+
enable: Whether to enable resume mode (defaults to True)
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
Self for method chaining
|
|
123
|
+
"""
|
|
124
|
+
self._kwargs["resume"] = enable
|
|
125
|
+
return self
|
|
126
|
+
|
|
127
|
+
def with_langgraph_config(
|
|
128
|
+
self, config: LangGraphConfig
|
|
129
|
+
) -> "LangGraphRuntimeContextBuilder":
|
|
130
|
+
"""Set the LangGraph configuration.
|
|
131
|
+
|
|
132
|
+
Args:
|
|
133
|
+
config: The LangGraph configuration
|
|
134
|
+
|
|
135
|
+
Returns:
|
|
136
|
+
Self for method chaining
|
|
137
|
+
"""
|
|
138
|
+
self._kwargs["langgraph_config"] = config
|
|
139
|
+
return self
|
|
140
|
+
|
|
141
|
+
def mark_eval_run(self, enable: bool = True) -> "LangGraphRuntimeContextBuilder":
|
|
142
|
+
"""Mark this as an evaluation run.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
enable: Whether this is an eval run (defaults to True)
|
|
146
|
+
|
|
147
|
+
Returns:
|
|
148
|
+
Self for method chaining
|
|
149
|
+
"""
|
|
150
|
+
self._kwargs["is_eval_run"] = enable
|
|
151
|
+
return self
|
|
152
|
+
|
|
153
|
+
def build(self) -> "LangGraphRuntimeContext":
|
|
154
|
+
"""Build and return the LangGraphRuntimeContext instance.
|
|
155
|
+
|
|
156
|
+
Returns:
|
|
157
|
+
A configured LangGraphRuntimeContext instance
|
|
158
|
+
"""
|
|
159
|
+
config_path = self._kwargs.pop("config_path", None)
|
|
160
|
+
if config_path:
|
|
161
|
+
# Create context from config first, then update with any additional kwargs
|
|
162
|
+
context = LangGraphRuntimeContext.from_config(config_path)
|
|
163
|
+
for key, value in self._kwargs.items():
|
|
164
|
+
if hasattr(context, key):
|
|
165
|
+
setattr(context, key, value)
|
|
166
|
+
return context
|
|
167
|
+
else:
|
|
168
|
+
return LangGraphRuntimeContext(**self._kwargs)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from os import environ as env
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from uipath._cli._evals._runtime import UiPathEvalContext, UiPathEvalRuntime
|
|
6
|
+
from uipath._cli._runtime._contracts import (
|
|
7
|
+
UiPathRuntimeContextBuilder,
|
|
8
|
+
UiPathRuntimeFactory,
|
|
9
|
+
)
|
|
10
|
+
from uipath._cli.middlewares import MiddlewareResult
|
|
11
|
+
|
|
12
|
+
from uipath_langchain._cli._runtime._context import (
|
|
13
|
+
LangGraphRuntimeContext,
|
|
14
|
+
LangGraphRuntimeContextBuilder,
|
|
15
|
+
)
|
|
16
|
+
from uipath_langchain._cli._runtime._runtime import LangGraphRuntime
|
|
17
|
+
from uipath_langchain._cli._utils._graph import LangGraphConfig
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def langgraph_eval_middleware(
|
|
21
|
+
entrypoint: Optional[str], eval_set: Optional[str], eval_ids: List[str], **kwargs
|
|
22
|
+
) -> MiddlewareResult:
|
|
23
|
+
def generate_eval_context(
|
|
24
|
+
runtime_context: LangGraphRuntimeContext,
|
|
25
|
+
) -> UiPathEvalContext[LangGraphRuntimeContext]:
|
|
26
|
+
base_context = UiPathRuntimeContextBuilder().with_defaults().build()
|
|
27
|
+
return UiPathEvalContext(
|
|
28
|
+
runtime_context=runtime_context,
|
|
29
|
+
**kwargs,
|
|
30
|
+
**base_context.model_dump(),
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
try:
|
|
34
|
+
runtime_factory = UiPathRuntimeFactory(
|
|
35
|
+
LangGraphRuntime, LangGraphRuntimeContext
|
|
36
|
+
)
|
|
37
|
+
# Add default env variables
|
|
38
|
+
env["UIPATH_REQUESTING_PRODUCT"] = "uipath-python-sdk"
|
|
39
|
+
env["UIPATH_REQUESTING_FEATURE"] = "langgraph-agent"
|
|
40
|
+
|
|
41
|
+
context = (
|
|
42
|
+
LangGraphRuntimeContextBuilder()
|
|
43
|
+
.with_defaults(**kwargs)
|
|
44
|
+
.with_langgraph_config(LangGraphConfig())
|
|
45
|
+
.with_entrypoint(entrypoint)
|
|
46
|
+
.mark_eval_run()
|
|
47
|
+
).build()
|
|
48
|
+
|
|
49
|
+
async def execute():
|
|
50
|
+
async with UiPathEvalRuntime[
|
|
51
|
+
LangGraphRuntime, LangGraphRuntimeContext
|
|
52
|
+
].from_eval_context(
|
|
53
|
+
factory=runtime_factory, context=generate_eval_context(context)
|
|
54
|
+
) as eval_runtime:
|
|
55
|
+
await eval_runtime.execute()
|
|
56
|
+
|
|
57
|
+
asyncio.run(execute())
|
|
58
|
+
return MiddlewareResult(should_continue=False)
|
|
59
|
+
|
|
60
|
+
except Exception as e:
|
|
61
|
+
return MiddlewareResult(
|
|
62
|
+
should_continue=False, error_message=f"Error running evaluation: {str(e)}"
|
|
63
|
+
)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import os
|
|
3
|
+
from os import environ as env
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
from dotenv import load_dotenv
|
|
7
|
+
from uipath._cli.middlewares import MiddlewareResult
|
|
8
|
+
|
|
9
|
+
from ._runtime._context import LangGraphRuntimeContextBuilder
|
|
10
|
+
from ._runtime._exception import LangGraphRuntimeError
|
|
11
|
+
from ._runtime._runtime import LangGraphRuntime
|
|
12
|
+
from ._utils._graph import LangGraphConfig
|
|
13
|
+
|
|
14
|
+
load_dotenv()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def langgraph_run_middleware(
|
|
18
|
+
entrypoint: Optional[str], input: Optional[str], resume: bool, **kwargs
|
|
19
|
+
) -> MiddlewareResult:
|
|
20
|
+
"""Middleware to handle langgraph execution"""
|
|
21
|
+
config = LangGraphConfig()
|
|
22
|
+
if not config.exists:
|
|
23
|
+
return MiddlewareResult(
|
|
24
|
+
should_continue=True
|
|
25
|
+
) # Continue with normal flow if no langgraph.json
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
# Add default env variables
|
|
29
|
+
env["UIPATH_REQUESTING_PRODUCT"] = "uipath-python-sdk"
|
|
30
|
+
env["UIPATH_REQUESTING_FEATURE"] = "langgraph-agent"
|
|
31
|
+
|
|
32
|
+
context = (
|
|
33
|
+
LangGraphRuntimeContextBuilder()
|
|
34
|
+
.with_defaults(**kwargs)
|
|
35
|
+
.with_langgraph_config(config)
|
|
36
|
+
.with_entrypoint(entrypoint)
|
|
37
|
+
.with_input(input_data=input, input_file=kwargs.get("input_file"))
|
|
38
|
+
.with_resume(resume)
|
|
39
|
+
).build()
|
|
40
|
+
|
|
41
|
+
async def execute():
|
|
42
|
+
async with LangGraphRuntime.from_context(context) as runtime:
|
|
43
|
+
if context.resume is False and context.job_id is None:
|
|
44
|
+
# Delete the previous graph state file at debug time
|
|
45
|
+
if os.path.exists(runtime.state_file_path):
|
|
46
|
+
os.remove(runtime.state_file_path)
|
|
47
|
+
await runtime.execute()
|
|
48
|
+
|
|
49
|
+
asyncio.run(execute())
|
|
50
|
+
|
|
51
|
+
return MiddlewareResult(
|
|
52
|
+
should_continue=False,
|
|
53
|
+
error_message=None,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
except LangGraphRuntimeError as e:
|
|
57
|
+
return MiddlewareResult(
|
|
58
|
+
should_continue=False,
|
|
59
|
+
error_message=e.error_info.detail,
|
|
60
|
+
should_include_stacktrace=True,
|
|
61
|
+
)
|
|
62
|
+
except Exception as e:
|
|
63
|
+
return MiddlewareResult(
|
|
64
|
+
should_continue=False,
|
|
65
|
+
error_message=f"Error: {str(e)}",
|
|
66
|
+
should_include_stacktrace=True,
|
|
67
|
+
)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from uipath._cli.middlewares import Middlewares
|
|
2
2
|
|
|
3
3
|
from ._cli.cli_dev import langgraph_dev_middleware
|
|
4
|
+
from ._cli.cli_eval import langgraph_eval_middleware
|
|
4
5
|
from ._cli.cli_init import langgraph_init_middleware
|
|
5
6
|
from ._cli.cli_new import langgraph_new_middleware
|
|
6
7
|
from ._cli.cli_run import langgraph_run_middleware
|
|
@@ -12,3 +13,4 @@ def register_middleware():
|
|
|
12
13
|
Middlewares.register("run", langgraph_run_middleware)
|
|
13
14
|
Middlewares.register("new", langgraph_new_middleware)
|
|
14
15
|
Middlewares.register("dev", langgraph_dev_middleware)
|
|
16
|
+
Middlewares.register("eval", langgraph_eval_middleware)
|
|
@@ -2746,7 +2746,7 @@ wheels = [
|
|
|
2746
2746
|
|
|
2747
2747
|
[[package]]
|
|
2748
2748
|
name = "uipath"
|
|
2749
|
-
version = "2.1.
|
|
2749
|
+
version = "2.1.44"
|
|
2750
2750
|
source = { registry = "https://pypi.org/simple" }
|
|
2751
2751
|
dependencies = [
|
|
2752
2752
|
{ name = "azure-monitor-opentelemetry" },
|
|
@@ -2764,14 +2764,14 @@ dependencies = [
|
|
|
2764
2764
|
{ name = "tomli" },
|
|
2765
2765
|
{ name = "truststore" },
|
|
2766
2766
|
]
|
|
2767
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
2767
|
+
sdist = { url = "https://files.pythonhosted.org/packages/09/62/c0d9d884c7b2b01eb78e9445874745eae0422673d9b89335ce890960eda5/uipath-2.1.44.tar.gz", hash = "sha256:4b544c467158d57f6f7b7ac001fa34b959e685830065bb717544b05b32ee237f", size = 1988099, upload-time = "2025-09-15T06:59:47.92Z" }
|
|
2768
2768
|
wheels = [
|
|
2769
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
2769
|
+
{ url = "https://files.pythonhosted.org/packages/51/fd/3ae9edea73f5a8223771924b90dbc390c43b70cebed101b27a05caad11fe/uipath-2.1.44-py3-none-any.whl", hash = "sha256:6988df9cac8a2b6bec505c7b816e5c1d80a990f36fe2e853997e8837e7572bfc", size = 215418, upload-time = "2025-09-15T06:59:46.071Z" },
|
|
2770
2770
|
]
|
|
2771
2771
|
|
|
2772
2772
|
[[package]]
|
|
2773
2773
|
name = "uipath-langchain"
|
|
2774
|
-
version = "0.0.
|
|
2774
|
+
version = "0.0.128"
|
|
2775
2775
|
source = { editable = "." }
|
|
2776
2776
|
dependencies = [
|
|
2777
2777
|
{ name = "httpx" },
|
|
@@ -2815,7 +2815,7 @@ requires-dist = [
|
|
|
2815
2815
|
{ name = "openinference-instrumentation-langchain", specifier = ">=0.1.50" },
|
|
2816
2816
|
{ name = "pydantic-settings", specifier = ">=2.6.0" },
|
|
2817
2817
|
{ name = "python-dotenv", specifier = ">=1.0.1" },
|
|
2818
|
-
{ name = "uipath", specifier = ">=2.1.
|
|
2818
|
+
{ name = "uipath", specifier = ">=2.1.44,<2.2.0" },
|
|
2819
2819
|
{ name = "uipath-langchain", marker = "extra == 'langchain'", specifier = ">=0.0.2" },
|
|
2820
2820
|
]
|
|
2821
2821
|
provides-extras = ["langchain"]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
from typing import Any, Optional, Union
|
|
2
|
-
|
|
3
|
-
from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver
|
|
4
|
-
from langgraph.graph import StateGraph
|
|
5
|
-
from uipath._cli._runtime._contracts import UiPathRuntimeContext
|
|
6
|
-
|
|
7
|
-
from .._utils._graph import LangGraphConfig
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class LangGraphRuntimeContext(UiPathRuntimeContext):
|
|
11
|
-
"""Context information passed throughout the runtime execution."""
|
|
12
|
-
|
|
13
|
-
langgraph_config: Optional[LangGraphConfig] = None
|
|
14
|
-
state_graph: Optional[StateGraph[Any, Any]] = None
|
|
15
|
-
output: Optional[Any] = None
|
|
16
|
-
state: Optional[Any] = (
|
|
17
|
-
None # TypedDict issue, the actual type is: Optional[langgraph.types.StateSnapshot]
|
|
18
|
-
)
|
|
19
|
-
memory: Optional[AsyncSqliteSaver] = None
|
|
20
|
-
langsmith_tracing_enabled: Union[str, bool, None] = False
|
|
21
|
-
resume_triggers_table: str = "__uipath_resume_triggers"
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import os
|
|
3
|
-
from os import environ as env
|
|
4
|
-
from typing import Optional
|
|
5
|
-
|
|
6
|
-
from dotenv import load_dotenv
|
|
7
|
-
from uipath._cli._runtime._contracts import UiPathTraceContext
|
|
8
|
-
from uipath._cli.middlewares import MiddlewareResult
|
|
9
|
-
|
|
10
|
-
from ._runtime._context import LangGraphRuntimeContext
|
|
11
|
-
from ._runtime._exception import LangGraphRuntimeError
|
|
12
|
-
from ._runtime._runtime import LangGraphRuntime
|
|
13
|
-
from ._utils._graph import LangGraphConfig
|
|
14
|
-
|
|
15
|
-
load_dotenv()
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def langgraph_run_middleware(
|
|
19
|
-
entrypoint: Optional[str], input: Optional[str], resume: bool, **kwargs
|
|
20
|
-
) -> MiddlewareResult:
|
|
21
|
-
"""Middleware to handle langgraph execution"""
|
|
22
|
-
config = LangGraphConfig()
|
|
23
|
-
if not config.exists:
|
|
24
|
-
return MiddlewareResult(
|
|
25
|
-
should_continue=True
|
|
26
|
-
) # Continue with normal flow if no langgraph.json
|
|
27
|
-
|
|
28
|
-
try:
|
|
29
|
-
bool_map = {"true": True, "false": False}
|
|
30
|
-
tracing = env.get("UIPATH_TRACING_ENABLED", True)
|
|
31
|
-
if isinstance(tracing, str) and tracing.lower() in bool_map:
|
|
32
|
-
tracing = bool_map[tracing.lower()]
|
|
33
|
-
|
|
34
|
-
async def execute():
|
|
35
|
-
context: LangGraphRuntimeContext = LangGraphRuntimeContext.from_config(
|
|
36
|
-
env.get("UIPATH_CONFIG_PATH", "uipath.json"), **kwargs
|
|
37
|
-
)
|
|
38
|
-
context.entrypoint = entrypoint
|
|
39
|
-
context.input = input
|
|
40
|
-
context.resume = resume
|
|
41
|
-
context.langgraph_config = config
|
|
42
|
-
context.debug = kwargs.get("debug", False)
|
|
43
|
-
context.logs_min_level = env.get("LOG_LEVEL", "INFO")
|
|
44
|
-
context.job_id = env.get("UIPATH_JOB_KEY", None)
|
|
45
|
-
context.execution_id = env.get("UIPATH_JOB_KEY", None)
|
|
46
|
-
context.trace_id = env.get("UIPATH_TRACE_ID")
|
|
47
|
-
context.is_eval_run = kwargs.get("is_eval_run", False)
|
|
48
|
-
context.tracing_enabled = tracing
|
|
49
|
-
context.input_file = kwargs.get("input_file", None)
|
|
50
|
-
context.execution_output_file = kwargs.get("execution_output_file", None)
|
|
51
|
-
context.trace_context = UiPathTraceContext(
|
|
52
|
-
enabled=tracing,
|
|
53
|
-
trace_id=env.get("UIPATH_TRACE_ID"),
|
|
54
|
-
parent_span_id=env.get("UIPATH_PARENT_SPAN_ID"),
|
|
55
|
-
root_span_id=env.get("UIPATH_ROOT_SPAN_ID"),
|
|
56
|
-
job_id=env.get("UIPATH_JOB_KEY"),
|
|
57
|
-
org_id=env.get("UIPATH_ORGANIZATION_ID"),
|
|
58
|
-
tenant_id=env.get("UIPATH_TENANT_ID"),
|
|
59
|
-
process_key=env.get("UIPATH_PROCESS_UUID"),
|
|
60
|
-
folder_key=env.get("UIPATH_FOLDER_KEY"),
|
|
61
|
-
)
|
|
62
|
-
context.langsmith_tracing_enabled = env.get("LANGSMITH_TRACING", False)
|
|
63
|
-
|
|
64
|
-
# Add default env variables
|
|
65
|
-
env["UIPATH_REQUESTING_PRODUCT"] = "uipath-python-sdk"
|
|
66
|
-
env["UIPATH_REQUESTING_FEATURE"] = "langgraph-agent"
|
|
67
|
-
|
|
68
|
-
async with LangGraphRuntime.from_context(context) as runtime:
|
|
69
|
-
if context.resume is False and context.job_id is None:
|
|
70
|
-
# Delete the previous graph state file at debug time
|
|
71
|
-
if os.path.exists(runtime.state_file_path):
|
|
72
|
-
os.remove(runtime.state_file_path)
|
|
73
|
-
await runtime.execute()
|
|
74
|
-
|
|
75
|
-
asyncio.run(execute())
|
|
76
|
-
|
|
77
|
-
return MiddlewareResult(
|
|
78
|
-
should_continue=False,
|
|
79
|
-
error_message=None,
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
except LangGraphRuntimeError as e:
|
|
83
|
-
return MiddlewareResult(
|
|
84
|
-
should_continue=False,
|
|
85
|
-
error_message=e.error_info.detail,
|
|
86
|
-
should_include_stacktrace=True,
|
|
87
|
-
)
|
|
88
|
-
except Exception as e:
|
|
89
|
-
return MiddlewareResult(
|
|
90
|
-
should_continue=False,
|
|
91
|
-
error_message=f"Error: {str(e)}",
|
|
92
|
-
should_include_stacktrace=True,
|
|
93
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/integration_tests.yml
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/lint-custom-version.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/.github/workflows/test-custom-version.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start_images/cloud_env_var_dark.png
RENAMED
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/quick_start_images/invoke_output_dark.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-index-1.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-index-2.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/create-process.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/folder-path.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/process-page.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/researcher-1.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/researcher-2.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/run-process-1.png
RENAMED
|
File without changes
|
{uipath_langchain-0.0.127 → uipath_langchain-0.0.128}/docs/sample_images/RAG/run-process-2.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|