uipath-langchain 0.0.140__tar.gz → 0.0.142__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.

Files changed (280) hide show
  1. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/publish-dev.yml +29 -31
  2. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/PKG-INFO +2 -2
  3. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/pyproject.toml +2 -2
  4. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/README.md +3 -0
  5. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-supervisor-researcher-coder/README.md +23 -22
  6. uipath_langchain-0.0.142/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +40 -0
  7. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-supervisor-researcher-coder/graph.py +16 -5
  8. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-supervisor-researcher-coder/pyproject.toml +5 -4
  9. uipath_langchain-0.0.142/samples/multi-agent-supervisor-researcher-coder/uipath.json +36 -0
  10. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-supervisor-researcher-coder/uv.lock +269 -26
  11. uipath_langchain-0.0.142/samples/oauth-external-apps-agent/README.md +84 -0
  12. uipath_langchain-0.0.142/samples/oauth-external-apps-agent/input.json +1 -0
  13. uipath_langchain-0.0.142/samples/oauth-external-apps-agent/langgraph.json +7 -0
  14. uipath_langchain-0.0.142/samples/oauth-external-apps-agent/main.py +95 -0
  15. uipath_langchain-0.0.142/samples/oauth-external-apps-agent/pyproject.toml +17 -0
  16. uipath_langchain-0.0.142/samples/oauth-external-apps-agent/uv.lock +3770 -0
  17. uipath_langchain-0.0.142/src/uipath_langchain/_cli/_runtime/_context.py +10 -0
  18. uipath_langchain-0.0.142/src/uipath_langchain/_cli/_runtime/_input.py +147 -0
  19. uipath_langchain-0.0.142/src/uipath_langchain/_cli/_runtime/_output.py +148 -0
  20. uipath_langchain-0.0.142/src/uipath_langchain/_cli/_runtime/_runtime.py +481 -0
  21. uipath_langchain-0.0.140/src/uipath_langchain/_cli/cli_run.py → uipath_langchain-0.0.142/src/uipath_langchain/_cli/cli_debug.py +29 -15
  22. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/cli_init.py +134 -2
  23. uipath_langchain-0.0.142/src/uipath_langchain/_cli/cli_run.py +94 -0
  24. uipath_langchain-0.0.142/src/uipath_langchain/_resources/AGENTS.md +21 -0
  25. uipath_langchain-0.0.142/src/uipath_langchain/_resources/REQUIRED_STRUCTURE.md +92 -0
  26. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/middlewares.py +2 -0
  27. uipath_langchain-0.0.142/src/uipath_langchain/py.typed +0 -0
  28. uipath_langchain-0.0.142/src/uipath_langchain/tools/__init__.py +0 -0
  29. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/tools/preconfigured.py +2 -2
  30. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/src/graph.py +10 -9
  31. uipath_langchain-0.0.142/tests/cli/test_init.py +202 -0
  32. uipath_langchain-0.0.142/uv.lock +3899 -0
  33. uipath_langchain-0.0.140/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -38
  34. uipath_langchain-0.0.140/samples/multi-agent-supervisor-researcher-coder/uipath.json +0 -2659
  35. uipath_langchain-0.0.140/src/uipath_langchain/_cli/_runtime/_context.py +0 -16
  36. uipath_langchain-0.0.140/src/uipath_langchain/_cli/_runtime/_input.py +0 -139
  37. uipath_langchain-0.0.140/src/uipath_langchain/_cli/_runtime/_output.py +0 -234
  38. uipath_langchain-0.0.140/src/uipath_langchain/_cli/_runtime/_runtime.py +0 -255
  39. uipath_langchain-0.0.140/uv.lock +0 -3248
  40. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.cursorrules +0 -0
  41. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.editorconfig +0 -0
  42. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.gitattributes +0 -0
  43. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/cd.yml +0 -0
  44. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/ci.yml +0 -0
  45. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/commitlint.yml +0 -0
  46. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/integration_tests.yml +0 -0
  47. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/lint-custom-version.yml +0 -0
  48. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/lint.yml +0 -0
  49. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/publish-docs.yml +0 -0
  50. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/publish-prior-stable-version.yml +0 -0
  51. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/slack.yml +0 -0
  52. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/test-custom-version.yml +0 -0
  53. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.github/workflows/test.yml +0 -0
  54. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.gitignore +0 -0
  55. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.pre-commit-config.yaml +0 -0
  56. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.python-version +0 -0
  57. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.vscode/extensions.json +0 -0
  58. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/.vscode/settings.json +0 -0
  59. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/CONTRIBUTING.md +0 -0
  60. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/LICENSE +0 -0
  61. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/README.md +0 -0
  62. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/chat_models.md +0 -0
  63. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/context_grounding.md +0 -0
  64. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/human_in_the_loop.md +0 -0
  65. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/quick_start.md +0 -0
  66. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/quick_start_images/cloud_env_var_dark.png +0 -0
  67. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/quick_start_images/cloud_env_var_light.png +0 -0
  68. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/quick_start_images/invoke_output_dark.png +0 -0
  69. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/quick_start_images/invoke_output_light.png +0 -0
  70. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/click-storage-bucket.png +0 -0
  71. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/create-index-1.png +0 -0
  72. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/create-index-2.png +0 -0
  73. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/create-process.png +0 -0
  74. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/create-quiz-generator.png +0 -0
  75. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/create-storage-bucket-1.png +0 -0
  76. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/create-storage-bucket-2.png +0 -0
  77. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/folder-path.png +0 -0
  78. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/job-info.png +0 -0
  79. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/output.png +0 -0
  80. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/process-page.png +0 -0
  81. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/researcher-1.png +0 -0
  82. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/researcher-2.png +0 -0
  83. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/run-process-1.png +0 -0
  84. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/run-process-2.png +0 -0
  85. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/RAG/storage-bucket-content.png +0 -0
  86. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/multi-agent-distributed/coder-agent-package-overview.png +0 -0
  87. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/multi-agent-distributed/coder-agent-process-configuration.png +0 -0
  88. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/multi-agent-distributed/planner-agent-package-overview.png +0 -0
  89. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/multi-agent-distributed/planner-agent-process-configuration.png +0 -0
  90. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/multi-agent-distributed/researcher-agent-package-overview.png +0 -0
  91. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/multi-agent-distributed/researcher-agent-process-configuration.png +0 -0
  92. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/activate-apps.png +0 -0
  93. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/activate-deployment.png +0 -0
  94. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/copy-folder-path.png +0 -0
  95. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/deploy-solution-package-wizard.png +0 -0
  96. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/deploy-solution-package.png +0 -0
  97. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/monitor-agent.png +0 -0
  98. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/navigate-to-solution-folder.png +0 -0
  99. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/resume-condition.png +0 -0
  100. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/run-agent.png +0 -0
  101. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/solution-destination-folder.png +0 -0
  102. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/start-job.png +0 -0
  103. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/docs/sample_images/ticket-classification/upload-solution-package.png +0 -0
  104. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/README.md +0 -0
  105. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/env.example +0 -0
  106. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/input.example/quiz-generator-debug-input.json +0 -0
  107. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/input.example/researcher-debug-input.json +0 -0
  108. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/langgraph.json +0 -0
  109. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/pyproject.toml +0 -0
  110. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/quiz-generator-RAG-agent.mermaid +0 -0
  111. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/researcher-RAG-agent.mermaid +0 -0
  112. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/src/agents/quiz-generator-RAG-agent.py +0 -0
  113. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/src/agents/researcher-RAG-agent.py +0 -0
  114. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/uipath.json +0 -0
  115. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/RAG-quiz-generator/uv.lock +0 -0
  116. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/calculator-agent/graph.py +0 -0
  117. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/calculator-agent/langgraph.json +0 -0
  118. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/calculator-agent/pyproject.toml +0 -0
  119. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/calculator-agent/uipath.json +0 -0
  120. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/calculator-agent/uv.lock +0 -0
  121. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/.env.example +0 -0
  122. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/agent.mermaid +0 -0
  123. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/graph.py +0 -0
  124. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/langgraph.json +0 -0
  125. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/pyproject.toml +0 -0
  126. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/uipath.json +0 -0
  127. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/chat-agent/uv.lock +0 -0
  128. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/.env.example +0 -0
  129. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/agent.mermaid +0 -0
  130. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/graph.py +0 -0
  131. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/langgraph.json +0 -0
  132. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/pyproject.toml +0 -0
  133. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/uipath.json +0 -0
  134. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/company-research-agent/uv.lock +0 -0
  135. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/.env.template +0 -0
  136. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/.python-version +0 -0
  137. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/.vscode/launch.json +0 -0
  138. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/README.md +0 -0
  139. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/agent.mermaid +0 -0
  140. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/input.json +0 -0
  141. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/langgraph.json +0 -0
  142. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/pyproject.toml +0 -0
  143. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/src/email_organizer/__init__.py +0 -0
  144. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/src/email_organizer/main.py +0 -0
  145. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/src/email_organizer/outlook_client.py +0 -0
  146. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/uipath.json +0 -0
  147. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/email-organizer-agent/uv.lock +0 -0
  148. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/database.py +0 -0
  149. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/main.py +0 -0
  150. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/models.py +0 -0
  151. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/pyproject.toml +0 -0
  152. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/schemas.py +0 -0
  153. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/templates/index.html +0 -0
  154. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/hitl-inbox-server/uv.lock +0 -0
  155. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/.env.example +0 -0
  156. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/README.md +0 -0
  157. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/coder.mermaid +0 -0
  158. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/langgraph.json +0 -0
  159. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/planner.mermaid +0 -0
  160. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/pyproject.toml +0 -0
  161. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/researcher.mermaid +0 -0
  162. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/coder.py +0 -0
  163. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/planner.py +0 -0
  164. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/researcher.py +0 -0
  165. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/uipath.json +0 -0
  166. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-planner-researcher-coder-distributed/uv.lock +0 -0
  167. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-supervisor-researcher-coder/.env.example +0 -0
  168. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/multi-agent-supervisor-researcher-coder/langgraph.json +0 -0
  169. /uipath_langchain-0.0.140/src/uipath_langchain/tools/__init__.py → /uipath_langchain-0.0.142/samples/oauth-external-apps-agent/.env.example +0 -0
  170. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/retrieval-chain/.env.example +0 -0
  171. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/retrieval-chain/README.md +0 -0
  172. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/retrieval-chain/main.py +0 -0
  173. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/retrieval-chain/pyproject.toml +0 -0
  174. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/retrieval-chain/uipath.json +0 -0
  175. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/retrieval-chain/uv.lock +0 -0
  176. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/.env.example +0 -0
  177. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/README.md +0 -0
  178. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/agent.mermaid +0 -0
  179. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/langgraph.json +0 -0
  180. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/pyproject.toml +0 -0
  181. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
  182. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
  183. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
  184. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/uipath.json +0 -0
  185. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-local-mcp/uv.lock +0 -0
  186. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/.env.example +0 -0
  187. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/README.md +0 -0
  188. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/agent.mermaid +0 -0
  189. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/langgraph.json +0 -0
  190. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/main.py +0 -0
  191. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/pyproject.toml +0 -0
  192. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/uipath.json +0 -0
  193. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/simple-remote-mcp/uv.lock +0 -0
  194. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/.env.example +0 -0
  195. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/README.md +0 -0
  196. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/agent.mermaid +0 -0
  197. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/escalation_app_solution/generic-escalation-app-solution-1.0.0.zip +0 -0
  198. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/langgraph.json +0 -0
  199. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/main.py +0 -0
  200. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/pyproject.toml +0 -0
  201. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/uipath.json +0 -0
  202. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/samples/ticket-classification/uv.lock +0 -0
  203. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/__init__.py +0 -0
  204. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/__init__.py +0 -0
  205. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/_runtime/_conversation.py +0 -0
  206. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/_runtime/_exception.py +0 -0
  207. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/_runtime/_graph_resolver.py +0 -0
  208. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/_templates/langgraph.json.template +0 -0
  209. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/_templates/main.py.template +0 -0
  210. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/_utils/_graph.py +0 -0
  211. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/cli_dev.py +0 -0
  212. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/cli_eval.py +0 -0
  213. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_cli/cli_new.py +0 -0
  214. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_tracing/__init__.py +0 -0
  215. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_tracing/_instrument_traceable.py +0 -0
  216. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_tracing/_oteladapter.py +0 -0
  217. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_tracing/_utils.py +0 -0
  218. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_utils/__init__.py +0 -0
  219. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_utils/_request_mixin.py +0 -0
  220. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_utils/_settings.py +0 -0
  221. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/_utils/_sleep_policy.py +0 -0
  222. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/chat/__init__.py +0 -0
  223. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/chat/models.py +0 -0
  224. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/embeddings/__init__.py +0 -0
  225. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/embeddings/embeddings.py +0 -0
  226. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/retrievers/__init__.py +0 -0
  227. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/retrievers/context_grounding_retriever.py +0 -0
  228. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/vectorstores/__init__.py +0 -0
  229. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/src/uipath_langchain/vectorstores/context_grounding_vectorstore.py +0 -0
  230. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/common/validate_output.sh +0 -0
  231. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/input.json +0 -0
  232. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/langgraph.json +0 -0
  233. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/pyproject.toml +0 -0
  234. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/run.sh +0 -0
  235. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/src/assert.py +0 -0
  236. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/company-research-agent/uv.lock +0 -0
  237. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/init-flow/input.json +0 -0
  238. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/init-flow/pyproject.toml +0 -0
  239. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/init-flow/run.sh +0 -0
  240. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/init-flow/src/assert.py +0 -0
  241. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/input.json +0 -0
  242. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/langgraph.json +0 -0
  243. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/pyproject.toml +0 -0
  244. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/run.sh +0 -0
  245. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/src/assert.py +0 -0
  246. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
  247. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
  248. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
  249. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/simple-local-mcp/uv.lock +0 -0
  250. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/input.json +0 -0
  251. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/langgraph.json +0 -0
  252. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/pyproject.toml +0 -0
  253. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/run.sh +0 -0
  254. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/src/assert.py +0 -0
  255. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/src/main.py +0 -0
  256. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/testcases/ticket-classification/uv.lock +0 -0
  257. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/__init__.py +0 -0
  258. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/cli/conftest.py +0 -0
  259. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/cli/mocks/langgraph.json +0 -0
  260. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/cli/mocks/simple_agent.py +0 -0
  261. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/cli/mocks/uipath.json +0 -0
  262. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/cli/test_run.py +0 -0
  263. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/__init__.py +0 -0
  264. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/conftest.py +0 -0
  265. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/mocks/action_trigger_hitl.py +0 -0
  266. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/mocks/api_trigger_hitl.py +0 -0
  267. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/mocks/job_trigger_hitl.py +0 -0
  268. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/mocks/langgraph.json +0 -0
  269. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/mocks/uipath-default-escalation.json +0 -0
  270. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/mocks/uipath.json +0 -0
  271. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/test_action_trigger.py +0 -0
  272. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/test_hitl_api_trigger.py +0 -0
  273. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/test_hitl_default_escalation.py +0 -0
  274. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/hitl/test_hitl_job_trigger.py +0 -0
  275. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/test_dummy.py +0 -0
  276. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/tools/__init__.py +0 -0
  277. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/tools/conftest.py +0 -0
  278. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/tools/mocks/agent_definition.json +0 -0
  279. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/tools/test_preconfigured.py +0 -0
  280. {uipath_langchain-0.0.140 → uipath_langchain-0.0.142}/tests/tracing/test_oteladapter.py +0 -0
@@ -7,7 +7,6 @@ on:
7
7
  PYPI_TOKEN_NIGHTLY:
8
8
  required: true
9
9
 
10
-
11
10
  jobs:
12
11
  publish-dev:
13
12
  runs-on: ubuntu-latest
@@ -34,44 +33,43 @@ jobs:
34
33
 
35
34
  - name: Modify pyproject.toml for custom UiPath version
36
35
  if: contains(github.event.pull_request.labels.*.name, 'test-core-dev-version')
37
- shell: bash
36
+ shell: pwsh
37
+ env:
38
+ PR_TITLE: ${{ github.event.pull_request.title }}
38
39
  run: |
39
- # Backup original pyproject.toml
40
- cp pyproject.toml pyproject.toml.backup
41
-
42
- # Extract custom version from PR title
43
- PR_TITLE="${{ github.event.pull_request.title }}"
44
- VERSION=$(echo "$PR_TITLE" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+' | head -1)
45
-
46
- if [ -z "$VERSION" ]; then
47
- echo "No version found in PR title. Please include version like: 2.0.65.dev1004030443"
40
+ # Extract version from PR title (e.g., "2.0.65.dev1004030443")
41
+ if ($env:PR_TITLE -match '(\d+\.\d+\.\d+\.dev\d+)') {
42
+ $VERSION = $matches[1]
43
+ } else {
44
+ Write-Error "No version found in PR title. Example: 'chore: test (uipath version 2.0.65.dev1004030443)'"
48
45
  exit 1
49
- fi
46
+ }
50
47
 
51
- echo "Extracted version: $VERSION"
48
+ Write-Output "Using UiPath version: $VERSION"
52
49
 
53
- # Update the uipath dependency to the custom version (match both == and >= patterns)
54
- # Target only the dependency lines in dependencies arrays, not project name
55
- sed -i '/dependencies = \[/,/\]/ s|"uipath[=><^~!]*[^"]*"|"uipath=='$VERSION'"|' pyproject.toml
56
- sed -i '/\[project\.optional-dependencies\]/,/^\[/ s|"uipath[=><^~!]*[^"]*"|"uipath=='$VERSION'"|' pyproject.toml
50
+ # Update uipath dependency to exact version (only in dependency arrays, not project name)
51
+ $content = Get-Content pyproject.toml -Raw
57
52
 
53
+ # Replace in main dependencies array
54
+ $content = $content -replace '(?s)(dependencies\s*=\s*\[.*?\])', {
55
+ param($match)
56
+ $match.Value -replace '"uipath([>=<\s,][^"]*|)"', "`"uipath==$VERSION`""
57
+ }
58
58
 
59
+ # Replace in optional-dependencies section (from [project.optional-dependencies] to next [)
60
+ $content = $content -replace '(?s)(\[project\.optional-dependencies\].*?)(?=\n\[|\z)', {
61
+ param($match)
62
+ $match.Value -replace '"uipath([>=<\s,][^"]*|)"', "`"uipath==$VERSION`""
63
+ }
59
64
 
60
- # Add or update [tool.uv.sources] section if it doesn't exist
61
- if ! grep -q "\[tool\.uv\.sources\]" pyproject.toml; then
62
- echo "" >> pyproject.toml
63
- echo "[tool.uv.sources]" >> pyproject.toml
64
- echo 'uipath = { index = "testpypi" }' >> pyproject.toml
65
- else
66
- # Update existing sources if needed
67
- if ! grep -q 'uipath = { index = "testpypi" }' pyproject.toml; then
68
- sed -i '/\[tool\.uv\.sources\]/a uipath = { index = "testpypi" }' pyproject.toml
69
- fi
70
- fi
65
+ # Add [tool.uv.sources] if missing
66
+ if ($content -notmatch '\[tool\.uv\.sources\]') {
67
+ $content += "`n`n[tool.uv.sources]`n uipath = { index = `"testpypi`" }`n"
68
+ }
71
69
 
72
- echo "Modified pyproject.toml to use UiPath version $VERSION from testpypi"
73
- echo "=== Modified pyproject.toml content ==="
74
- grep -A5 -B5 "uipath\|testpypi" pyproject.toml || true
70
+ # Save changes
71
+ $content | Set-Content pyproject.toml -NoNewline
72
+ Write-Output " Updated pyproject.toml"
75
73
 
76
74
  - name: Install dependencies
77
75
  run: uv sync --all-extras
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath-langchain
3
- Version: 0.0.140
3
+ Version: 0.0.142
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
@@ -26,7 +26,7 @@ Requires-Dist: openai>=1.65.5
26
26
  Requires-Dist: openinference-instrumentation-langchain>=0.1.50
27
27
  Requires-Dist: pydantic-settings>=2.6.0
28
28
  Requires-Dist: python-dotenv>=1.0.1
29
- Requires-Dist: uipath<2.2.0,>=2.1.76
29
+ Requires-Dist: uipath<2.2.0,>=2.1.101
30
30
  Provides-Extra: langchain
31
31
  Description-Content-Type: text/markdown
32
32
 
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "uipath-langchain"
3
- version = "0.0.140"
3
+ version = "0.0.142"
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.76, <2.2.0",
8
+ "uipath>=2.1.101, <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",
@@ -18,5 +18,8 @@ This sample shows how to create an agent using LangGraph with multiple tool serv
18
18
  ## [Simple remote MCP](simple-remote-mcp)
19
19
  This sample demonstrates the creation of an agent using LangGraph, which connects to a remote MCP (Model Context Protocol) Server.
20
20
 
21
+ ## [OAuth external apps agent](oauth-external-apps-agent)
22
+ This sample shows how to build a LangGraph agent that connects to a remote UiPath MCP server using OAuth authentication through an external UiPath application for dynamic access token management.
23
+
21
24
  ## [Ticket classification](ticket-classification)
22
25
  This sample demonstrates automatic classification of support tickets into categories. It includes a human approval step via UiPath Action Center.
@@ -19,36 +19,37 @@ graph TD;
19
19
  __start__([<p>__start__</p>]):::first
20
20
  input(input)
21
21
  supervisor(supervisor)
22
+ __end__([<p>__end__</p>]):::last
22
23
  __start__ --> input;
24
+ coder\3a__end__ -.-> supervisor;
23
25
  input --> supervisor;
24
- supervisor -.-> researcher___start__;
25
- supervisor -.-> coder___start__;
26
- researcher___end__ -.-> supervisor;
27
- coder___end__ -.-> supervisor;
26
+ researcher\3a__end__ -.-> supervisor;
27
+ supervisor -.-> coder\3a__start__;
28
+ supervisor -.-> researcher\3a__start__;
29
+ supervisor -.-> __end__;
28
30
  subgraph researcher
29
- researcher___start__(<p>__start__</p>)
30
- researcher_agent(agent)
31
- researcher_tools(tools)
32
- researcher___end__(<p>__end__</p>)
33
- researcher___start__ --> researcher_agent;
34
- researcher_tools --> researcher_agent;
35
- researcher_agent -.-> researcher_tools;
36
- researcher_agent -.-> researcher___end__;
31
+ researcher\3a__start__(<p>__start__</p>)
32
+ researcher\3aagent(agent)
33
+ researcher\3atools(tools)
34
+ researcher\3a__end__(<p>__end__</p>)
35
+ researcher\3a__start__ --> researcher\3aagent;
36
+ researcher\3aagent -.-> researcher\3a__end__;
37
+ researcher\3aagent -.-> researcher\3atools;
38
+ researcher\3atools --> researcher\3aagent;
37
39
  end
38
40
  subgraph coder
39
- coder___start__(<p>__start__</p>)
40
- coder_agent(agent)
41
- coder_tools(tools)
42
- coder___end__(<p>__end__</p>)
43
- coder___start__ --> coder_agent;
44
- coder_tools --> coder_agent;
45
- coder_agent -.-> coder_tools;
46
- coder_agent -.-> coder___end__;
41
+ coder\3a__start__(<p>__start__</p>)
42
+ coder\3aagent(agent)
43
+ coder\3atools(tools)
44
+ coder\3a__end__(<p>__end__</p>)
45
+ coder\3a__start__ --> coder\3aagent;
46
+ coder\3aagent -.-> coder\3a__end__;
47
+ coder\3aagent -.-> coder\3atools;
48
+ coder\3atools --> coder\3aagent;
47
49
  end
48
50
  classDef default fill:#f2f0ff,line-height:1.2
49
51
  classDef first fill-opacity:0
50
52
  classDef last fill:#bfb6fc
51
-
52
53
  ```
53
54
 
54
55
  ## How It Works
@@ -68,7 +69,7 @@ graph TD;
68
69
 
69
70
  ## Requirements
70
71
 
71
- - Python 3.10+
72
+ - Python 3.11+
72
73
  - LangGraph
73
74
  - Anthropic API key (for Claude)
74
75
  - Tavily API key (for web search)
@@ -0,0 +1,40 @@
1
+ ---
2
+ config:
3
+ flowchart:
4
+ curve: linear
5
+ ---
6
+ graph TD;
7
+ __start__([<p>__start__</p>]):::first
8
+ input(input)
9
+ supervisor(supervisor)
10
+ __end__([<p>__end__</p>]):::last
11
+ __start__ --> input;
12
+ coder\3a__end__ -.-> supervisor;
13
+ input --> supervisor;
14
+ researcher\3a__end__ -.-> supervisor;
15
+ supervisor -.-> coder\3a__start__;
16
+ supervisor -.-> researcher\3a__start__;
17
+ supervisor -.-> __end__;
18
+ subgraph researcher
19
+ researcher\3a__start__(<p>__start__</p>)
20
+ researcher\3aagent(agent)
21
+ researcher\3atools(tools)
22
+ researcher\3a__end__(<p>__end__</p>)
23
+ researcher\3a__start__ --> researcher\3aagent;
24
+ researcher\3aagent -.-> researcher\3a__end__;
25
+ researcher\3aagent -.-> researcher\3atools;
26
+ researcher\3atools --> researcher\3aagent;
27
+ end
28
+ subgraph coder
29
+ coder\3a__start__(<p>__start__</p>)
30
+ coder\3aagent(agent)
31
+ coder\3atools(tools)
32
+ coder\3a__end__(<p>__end__</p>)
33
+ coder\3a__start__ --> coder\3aagent;
34
+ coder\3aagent -.-> coder\3a__end__;
35
+ coder\3aagent -.-> coder\3atools;
36
+ coder\3atools --> coder\3aagent;
37
+ end
38
+ classDef default fill:#f2f0ff,line-height:1.2
39
+ classDef first fill-opacity:0
40
+ classDef last fill:#bfb6fc
@@ -1,8 +1,8 @@
1
1
  from typing import Annotated, Literal
2
2
 
3
3
  from langchain_anthropic import ChatAnthropic
4
- from langchain_community.tools.tavily_search import TavilySearchResults
5
- from langchain_core.messages import HumanMessage, SystemMessage
4
+ from langchain_tavily import TavilySearch
5
+ from langchain_core.messages import HumanMessage, SystemMessage, BaseMessage
6
6
  from langchain_core.tools import tool
7
7
  from langchain_experimental.utilities import PythonREPL
8
8
  from langgraph.graph import END, START, MessagesState, StateGraph
@@ -11,7 +11,8 @@ from langgraph.types import Command
11
11
  from pydantic import BaseModel
12
12
  from typing_extensions import TypedDict
13
13
 
14
- tavily_tool = TavilySearchResults(max_results=5)
14
+
15
+ tavily_tool = TavilySearch(max_results=5)
15
16
 
16
17
  # This executes code locally, which can be unsafe
17
18
  repl = PythonREPL()
@@ -28,7 +29,7 @@ def python_repl_tool(
28
29
  result = repl.run(code)
29
30
  except BaseException as e:
30
31
  return f"Failed to execute. Error: {repr(e)}"
31
- result_str = f"Successfully executed:\n\`\`\`python\n{code}\n\`\`\`\nStdout: {result}"
32
+ result_str = f"Successfully executed:\n```python\n{code}\n```\nStdout: {result}"
32
33
  return result_str
33
34
 
34
35
  members = ["researcher", "coder"]
@@ -62,6 +63,16 @@ class GraphOutput(BaseModel):
62
63
  class State(MessagesState):
63
64
  next: str
64
65
 
66
+ def get_message_text(msg: BaseMessage) -> str:
67
+ """LangChain-style safe message text extractor."""
68
+ if isinstance(msg.content, str):
69
+ return msg.content
70
+ if isinstance(msg.content, list):
71
+ return "".join(
72
+ block.get("text", "") for block in msg.content if block.get("type") == "text"
73
+ )
74
+ return ""
75
+
65
76
  def input(state: GraphInput):
66
77
  return {
67
78
  "messages": [
@@ -75,7 +86,7 @@ async def supervisor_node(state: State) -> Command[Literal[*members]] | GraphOut
75
86
  response = await llm.with_structured_output(Router).ainvoke(state["messages"])
76
87
  goto = response["next"]
77
88
  if goto == "FINISH":
78
- return GraphOutput(answer=state["messages"][-1].content)
89
+ return GraphOutput(answer=get_message_text(state["messages"][-1]))
79
90
  else:
80
91
  return Command(goto=goto, update={"next": goto})
81
92
 
@@ -5,11 +5,12 @@ description = "Multi-agent system where a supervisor coordinates between a resea
5
5
  authors = [{ name = "John Doe", email = "john.doe@myemail.com" }]
6
6
  requires-python = ">=3.10"
7
7
  dependencies = [
8
- "langgraph>=0.2.55",
9
- "langchain-anthropic>=0.3.8",
8
+ "langgraph>=0.6.11",
9
+ "langchain-anthropic>=0.3.22",
10
10
  "langchain-experimental>=0.3.4",
11
- "tavily-python>=0.5.0",
12
- "uipath-langchain==0.0.124"
11
+ "tavily-python>=0.7.12",
12
+ "uipath-langchain==0.0.141",
13
+ "langchain-tavily>=0.2.12",
13
14
  ]
14
15
 
15
16
  [project.optional-dependencies]
@@ -0,0 +1,36 @@
1
+ {
2
+ "entryPoints": [
3
+ {
4
+ "filePath": "agent",
5
+ "uniqueId": "4e7d1db4-7679-4889-9074-abbff0e52737",
6
+ "type": "agent",
7
+ "input": {
8
+ "type": "object",
9
+ "properties": {
10
+ "question": {
11
+ "title": "Question",
12
+ "type": "string"
13
+ }
14
+ },
15
+ "required": [
16
+ "question"
17
+ ]
18
+ },
19
+ "output": {
20
+ "type": "object",
21
+ "properties": {
22
+ "answer": {
23
+ "default": null,
24
+ "title": "Answer",
25
+ "type": "string"
26
+ }
27
+ },
28
+ "required": []
29
+ }
30
+ }
31
+ ],
32
+ "bindings": {
33
+ "version": "2.0",
34
+ "resources": []
35
+ }
36
+ }