uipath-langchain 0.0.130__tar.gz → 0.0.132__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 (285) hide show
  1. uipath_langchain-0.0.132/.github/workflows/integration_tests.yml +81 -0
  2. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/PKG-INFO +2 -2
  3. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/quick_start.md +0 -1
  4. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/pyproject.toml +2 -2
  5. uipath_langchain-0.0.132/samples/calculator-agent/graph.py +49 -0
  6. uipath_langchain-0.0.132/samples/calculator-agent/pyproject.toml +41 -0
  7. uipath_langchain-0.0.132/samples/calculator-agent/uipath.json +52 -0
  8. uipath_langchain-0.0.132/samples/calculator-agent/uv.lock +3063 -0
  9. uipath_langchain-0.0.132/samples/multi-agent-supervisor-researcher-coder/langgraph.json +7 -0
  10. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/retrieval-chain/main.py +0 -2
  11. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/main.py +0 -2
  12. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_runtime/_input.py +0 -2
  13. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_runtime/_runtime.py +1 -16
  14. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_templates/main.py.template +10 -11
  15. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_utils/_graph.py +0 -13
  16. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/cli_dev.py +3 -0
  17. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/cli_eval.py +15 -5
  18. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/cli_new.py +0 -3
  19. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/cli_run.py +30 -11
  20. uipath_langchain-0.0.132/src/uipath_langchain/_tracing/__init__.py +4 -0
  21. uipath_langchain-0.0.132/src/uipath_langchain/_tracing/_instrument_traceable.py +135 -0
  22. uipath_langchain-0.0.132/src/uipath_langchain/_tracing/_oteladapter.py +222 -0
  23. {uipath_langchain-0.0.130/src/uipath_langchain/tracers → uipath_langchain-0.0.132/src/uipath_langchain/_tracing}/_utils.py +0 -24
  24. uipath_langchain-0.0.132/src/uipath_langchain/_utils/__init__.py +3 -0
  25. uipath_langchain-0.0.132/testcases/common/print_output.sh +23 -0
  26. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/pyproject.toml +0 -1
  27. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/run.sh +7 -23
  28. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/pyproject.toml +0 -1
  29. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/run.sh +7 -24
  30. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/pyproject.toml +0 -1
  31. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/run.sh +7 -21
  32. uipath_langchain-0.0.132/tests/tracing/test_oteladapter.py +260 -0
  33. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/uv.lock +5 -5
  34. uipath_langchain-0.0.130/.github/workflows/integration_tests.yml +0 -162
  35. uipath_langchain-0.0.130/src/uipath_langchain/_utils/__init__.py +0 -4
  36. uipath_langchain-0.0.130/src/uipath_langchain/tracers/AsyncUiPathTracer.py +0 -274
  37. uipath_langchain-0.0.130/src/uipath_langchain/tracers/__init__.py +0 -7
  38. uipath_langchain-0.0.130/src/uipath_langchain/tracers/_events.py +0 -33
  39. uipath_langchain-0.0.130/src/uipath_langchain/tracers/_instrument_traceable.py +0 -416
  40. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/.env.example +0 -5
  41. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/README.md +0 -120
  42. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -38
  43. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/input.json +0 -1
  44. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/langgraph.json +0 -9
  45. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/pyproject.toml +0 -49
  46. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/run.sh +0 -44
  47. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/src/assert.py +0 -61
  48. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/src/graph.py +0 -236
  49. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/uipath.json +0 -37
  50. uipath_langchain-0.0.130/testcases/multi-agent-supervisor-researcher-coder/uv.lock +0 -2986
  51. uipath_langchain-0.0.130/tests/tracers/__init__.py +0 -1
  52. uipath_langchain-0.0.130/tests/tracers/test_async_uipath_tracer.py +0 -366
  53. uipath_langchain-0.0.130/tests/tracers/test_instrument_traceable.py +0 -206
  54. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.cursorrules +0 -0
  55. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.editorconfig +0 -0
  56. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.gitattributes +0 -0
  57. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/cd.yml +0 -0
  58. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/ci.yml +0 -0
  59. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/commitlint.yml +0 -0
  60. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/lint-custom-version.yml +0 -0
  61. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/lint.yml +0 -0
  62. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/publish-dev.yml +0 -0
  63. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/publish-docs.yml +0 -0
  64. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/publish-prior-stable-version.yml +0 -0
  65. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/slack.yml +0 -0
  66. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/test-custom-version.yml +0 -0
  67. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.github/workflows/test.yml +0 -0
  68. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.gitignore +0 -0
  69. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.pre-commit-config.yaml +0 -0
  70. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.python-version +0 -0
  71. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.vscode/extensions.json +0 -0
  72. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/.vscode/settings.json +0 -0
  73. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/CONTRIBUTING.md +0 -0
  74. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/LICENSE +0 -0
  75. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/README.md +0 -0
  76. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/chat_models.md +0 -0
  77. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/context_grounding.md +0 -0
  78. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/human_in_the_loop.md +0 -0
  79. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/quick_start_images/cloud_env_var_dark.png +0 -0
  80. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/quick_start_images/cloud_env_var_light.png +0 -0
  81. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/quick_start_images/invoke_output_dark.png +0 -0
  82. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/quick_start_images/invoke_output_light.png +0 -0
  83. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/click-storage-bucket.png +0 -0
  84. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/create-index-1.png +0 -0
  85. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/create-index-2.png +0 -0
  86. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/create-process.png +0 -0
  87. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/create-quiz-generator.png +0 -0
  88. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/create-storage-bucket-1.png +0 -0
  89. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/create-storage-bucket-2.png +0 -0
  90. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/folder-path.png +0 -0
  91. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/job-info.png +0 -0
  92. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/output.png +0 -0
  93. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/process-page.png +0 -0
  94. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/researcher-1.png +0 -0
  95. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/researcher-2.png +0 -0
  96. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/run-process-1.png +0 -0
  97. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/run-process-2.png +0 -0
  98. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/RAG/storage-bucket-content.png +0 -0
  99. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/multi-agent-distributed/coder-agent-package-overview.png +0 -0
  100. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/multi-agent-distributed/coder-agent-process-configuration.png +0 -0
  101. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/multi-agent-distributed/planner-agent-package-overview.png +0 -0
  102. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/multi-agent-distributed/planner-agent-process-configuration.png +0 -0
  103. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/multi-agent-distributed/researcher-agent-package-overview.png +0 -0
  104. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/multi-agent-distributed/researcher-agent-process-configuration.png +0 -0
  105. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/activate-apps.png +0 -0
  106. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/activate-deployment.png +0 -0
  107. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/copy-folder-path.png +0 -0
  108. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/deploy-solution-package-wizard.png +0 -0
  109. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/deploy-solution-package.png +0 -0
  110. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/monitor-agent.png +0 -0
  111. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/navigate-to-solution-folder.png +0 -0
  112. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/resume-condition.png +0 -0
  113. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/run-agent.png +0 -0
  114. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/solution-destination-folder.png +0 -0
  115. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/start-job.png +0 -0
  116. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/docs/sample_images/ticket-classification/upload-solution-package.png +0 -0
  117. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/README.md +0 -0
  118. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/env.example +0 -0
  119. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/input.example/quiz-generator-debug-input.json +0 -0
  120. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/input.example/researcher-debug-input.json +0 -0
  121. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/langgraph.json +0 -0
  122. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/pyproject.toml +0 -0
  123. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/quiz-generator-RAG-agent.mermaid +0 -0
  124. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/researcher-RAG-agent.mermaid +0 -0
  125. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/src/agents/quiz-generator-RAG-agent.py +0 -0
  126. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/src/agents/researcher-RAG-agent.py +0 -0
  127. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/uipath.json +0 -0
  128. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/RAG-quiz-generator/uv.lock +0 -0
  129. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/README.md +0 -0
  130. {uipath_langchain-0.0.130/samples/chat-agent → uipath_langchain-0.0.132/samples/calculator-agent}/langgraph.json +0 -0
  131. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/chat-agent/.env.example +0 -0
  132. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/chat-agent/agent.mermaid +0 -0
  133. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/chat-agent/graph.py +0 -0
  134. {uipath_langchain-0.0.130/samples/company-research-agent → uipath_langchain-0.0.132/samples/chat-agent}/langgraph.json +0 -0
  135. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/chat-agent/pyproject.toml +0 -0
  136. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/chat-agent/uipath.json +0 -0
  137. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/chat-agent/uv.lock +0 -0
  138. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/company-research-agent/.env.example +0 -0
  139. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/company-research-agent/agent.mermaid +0 -0
  140. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/company-research-agent/graph.py +0 -0
  141. {uipath_langchain-0.0.130/samples/multi-agent-supervisor-researcher-coder → uipath_langchain-0.0.132/samples/company-research-agent}/langgraph.json +0 -0
  142. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/company-research-agent/pyproject.toml +0 -0
  143. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/company-research-agent/uipath.json +0 -0
  144. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/company-research-agent/uv.lock +0 -0
  145. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/.env.template +0 -0
  146. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/.python-version +0 -0
  147. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/.vscode/launch.json +0 -0
  148. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/README.md +0 -0
  149. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/agent.mermaid +0 -0
  150. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/input.json +0 -0
  151. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/langgraph.json +0 -0
  152. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/pyproject.toml +0 -0
  153. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/src/email_organizer/__init__.py +0 -0
  154. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/src/email_organizer/main.py +0 -0
  155. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/src/email_organizer/outlook_client.py +0 -0
  156. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/uipath.json +0 -0
  157. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/email-organizer-agent/uv.lock +0 -0
  158. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/database.py +0 -0
  159. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/main.py +0 -0
  160. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/models.py +0 -0
  161. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/pyproject.toml +0 -0
  162. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/schemas.py +0 -0
  163. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/templates/index.html +0 -0
  164. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/hitl-inbox-server/uv.lock +0 -0
  165. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/.env.example +0 -0
  166. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/README.md +0 -0
  167. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/coder.mermaid +0 -0
  168. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/langgraph.json +0 -0
  169. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/planner.mermaid +0 -0
  170. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/pyproject.toml +0 -0
  171. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/researcher.mermaid +0 -0
  172. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/coder.py +0 -0
  173. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/planner.py +0 -0
  174. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/src/multi-agent-distributed/researcher.py +0 -0
  175. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/uipath.json +0 -0
  176. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-planner-researcher-coder-distributed/uv.lock +0 -0
  177. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/.env.example +0 -0
  178. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/README.md +0 -0
  179. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/agent.mermaid +0 -0
  180. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/graph.py +0 -0
  181. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/pyproject.toml +0 -0
  182. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/uipath.json +0 -0
  183. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/multi-agent-supervisor-researcher-coder/uv.lock +0 -0
  184. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/retrieval-chain/.env.example +0 -0
  185. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/retrieval-chain/README.md +0 -0
  186. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/retrieval-chain/pyproject.toml +0 -0
  187. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/retrieval-chain/uipath.json +0 -0
  188. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/retrieval-chain/uv.lock +0 -0
  189. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/.env.example +0 -0
  190. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/README.md +0 -0
  191. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/agent.mermaid +0 -0
  192. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/langgraph.json +0 -0
  193. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/pyproject.toml +0 -0
  194. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
  195. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
  196. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
  197. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/uipath.json +0 -0
  198. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-local-mcp/uv.lock +0 -0
  199. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/.env.example +0 -0
  200. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/README.md +0 -0
  201. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/agent.mermaid +0 -0
  202. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/langgraph.json +0 -0
  203. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/pyproject.toml +0 -0
  204. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/uipath.json +0 -0
  205. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/simple-remote-mcp/uv.lock +0 -0
  206. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/.env.example +0 -0
  207. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/README.md +0 -0
  208. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/agent.mermaid +0 -0
  209. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/escalation_app_solution/generic-escalation-app-solution-1.0.0.zip +0 -0
  210. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/langgraph.json +0 -0
  211. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/main.py +0 -0
  212. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/pyproject.toml +0 -0
  213. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/uipath.json +0 -0
  214. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/samples/ticket-classification/uv.lock +0 -0
  215. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/__init__.py +0 -0
  216. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/__init__.py +0 -0
  217. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_runtime/_context.py +0 -0
  218. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_runtime/_conversation.py +0 -0
  219. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_runtime/_exception.py +0 -0
  220. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_runtime/_output.py +0 -0
  221. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/_templates/langgraph.json.template +0 -0
  222. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_cli/cli_init.py +0 -0
  223. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_utils/_request_mixin.py +0 -0
  224. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_utils/_settings.py +0 -0
  225. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/_utils/_sleep_policy.py +0 -0
  226. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/builder/agent_config.py +0 -0
  227. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/chat/__init__.py +0 -0
  228. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/chat/models.py +0 -0
  229. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/embeddings/__init__.py +0 -0
  230. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/embeddings/embeddings.py +0 -0
  231. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/middlewares.py +0 -0
  232. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/retrievers/__init__.py +0 -0
  233. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/retrievers/context_grounding_retriever.py +0 -0
  234. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/vectorstores/__init__.py +0 -0
  235. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/src/uipath_langchain/vectorstores/context_grounding_vectorstore.py +0 -0
  236. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/Dockerfile +0 -0
  237. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/README.md +0 -0
  238. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/.env.example +0 -0
  239. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/agent.mermaid +0 -0
  240. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/input.json +0 -0
  241. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/langgraph.json +0 -0
  242. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/src/assert.py +0 -0
  243. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/src/graph.py +0 -0
  244. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/uipath.json +0 -0
  245. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/company-research-agent/uv.lock +0 -0
  246. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/.env.example +0 -0
  247. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/README.md +0 -0
  248. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/agent.mermaid +0 -0
  249. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/input.json +0 -0
  250. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/langgraph.json +0 -0
  251. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/src/assert.py +0 -0
  252. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/src/simple-local-mcp/graph.py +0 -0
  253. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/src/simple-local-mcp/math_server.py +0 -0
  254. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/src/simple-local-mcp/weather_server.py +0 -0
  255. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/uipath.json +0 -0
  256. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/simple-local-mcp/uv.lock +0 -0
  257. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/.env.example +0 -0
  258. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/README.md +0 -0
  259. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/agent.mermaid +0 -0
  260. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/input.json +0 -0
  261. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/langgraph.json +0 -0
  262. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/src/assert.py +0 -0
  263. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/src/main.py +0 -0
  264. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/uipath.json +0 -0
  265. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/testcases/ticket-classification/uv.lock +0 -0
  266. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/__init__.py +0 -0
  267. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/builder/test_config.py +0 -0
  268. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/cli/conftest.py +0 -0
  269. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/cli/mocks/langgraph.json +0 -0
  270. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/cli/mocks/simple_agent.py +0 -0
  271. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/cli/mocks/uipath.json +0 -0
  272. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/cli/test_run.py +0 -0
  273. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/__init__.py +0 -0
  274. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/conftest.py +0 -0
  275. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/mocks/action_trigger_hitl.py +0 -0
  276. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/mocks/api_trigger_hitl.py +0 -0
  277. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/mocks/job_trigger_hitl.py +0 -0
  278. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/mocks/langgraph.json +0 -0
  279. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/mocks/uipath-default-escalation.json +0 -0
  280. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/mocks/uipath.json +0 -0
  281. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/test_action_trigger.py +0 -0
  282. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/test_hitl_api_trigger.py +0 -0
  283. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/test_hitl_default_escalation.py +0 -0
  284. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/hitl/test_hitl_job_trigger.py +0 -0
  285. {uipath_langchain-0.0.130 → uipath_langchain-0.0.132}/tests/test_dummy.py +0 -0
@@ -0,0 +1,81 @@
1
+ name: Integration testing
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ permissions:
10
+ contents: read
11
+ pull-requests: write
12
+ actions: read
13
+
14
+ jobs:
15
+ discover-testcases:
16
+ runs-on: ubuntu-latest
17
+ outputs:
18
+ testcases: ${{ steps.discover.outputs.testcases }}
19
+ steps:
20
+ - name: Checkout code
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Discover testcases
24
+ id: discover
25
+ run: |
26
+ # Find all testcase folders (excluding common folders like README, etc.)
27
+ testcase_dirs=$(find testcases -maxdepth 1 -type d -name "*-*" | sed 's|testcases/||' | sort)
28
+
29
+ echo "Found testcase directories:"
30
+ echo "$testcase_dirs"
31
+
32
+ # Convert to JSON array for matrix
33
+ testcases_json=$(echo "$testcase_dirs" | jq -R -s -c 'split("\n")[:-1]')
34
+ echo "testcases=$testcases_json" >> $GITHUB_OUTPUT
35
+
36
+ integration-tests:
37
+ needs: [discover-testcases]
38
+ runs-on: ubuntu-latest
39
+ strategy:
40
+ fail-fast: false
41
+ matrix:
42
+ testcase: ${{ fromJson(needs.discover-testcases.outputs.testcases) }}
43
+ environment: [alpha, cloud]
44
+ use_azure_chat: [true, false]
45
+
46
+ name: "${{ matrix.testcase }} / ${{ matrix.environment }} / ${{ matrix.use_azure_chat && 'UiPathAzureChatOpenAI' || 'UiPathChat' }}"
47
+
48
+ steps:
49
+ - name: Checkout code
50
+ uses: actions/checkout@v4
51
+
52
+ - name: Set up Docker Buildx
53
+ uses: docker/setup-buildx-action@v3
54
+
55
+ - name: Build Docker image
56
+ run: |
57
+ echo "Building Docker image for ${{ matrix.testcase }} at $(date)"
58
+ docker build -f testcases/Dockerfile \
59
+ -t uipath-langchain-testbase:latest \
60
+ .
61
+ echo "Docker image built at $(date)"
62
+
63
+ - name: Run testcase
64
+ env:
65
+ CLIENT_ID: ${{ matrix.environment == 'alpha' && secrets.ALPHA_TEST_CLIENT_ID || secrets.CLOUD_TEST_CLIENT_ID }}
66
+ CLIENT_SECRET: ${{ matrix.environment == 'alpha' && secrets.ALPHA_TEST_CLIENT_SECRET || secrets.CLOUD_TEST_CLIENT_SECRET }}
67
+ BASE_URL: ${{ matrix.environment == 'alpha' && secrets.ALPHA_BASE_URL || secrets.CLOUD_BASE_URL }}
68
+ USE_AZURE_CHAT: ${{ matrix.use_azure_chat }}
69
+ run: |
70
+ echo "Running testcase: ${{ matrix.testcase }}"
71
+ echo "Environment: ${{ matrix.environment }}"
72
+ echo "LLM: ${{ matrix.use_azure_chat && 'UiPathAzureChatOpenAI' || 'UiPathChat' }}"
73
+ echo "USE_AZURE_CHAT: ${{ matrix.use_azure_chat }}"
74
+
75
+ docker run --rm \
76
+ -e CLIENT_ID="$CLIENT_ID" \
77
+ -e CLIENT_SECRET="$CLIENT_SECRET" \
78
+ -e BASE_URL="$BASE_URL" \
79
+ -e USE_AZURE_CHAT="$USE_AZURE_CHAT" \
80
+ uipath-langchain-testbase:latest \
81
+ bash /app/testcases/${{ matrix.testcase }}/run.sh
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath-langchain
3
- Version: 0.0.130
3
+ Version: 0.0.132
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.49
28
+ Requires-Dist: uipath<2.2.0,>=2.1.56
29
29
  Provides-Extra: langchain
30
30
  Description-Content-Type: text/markdown
31
31
 
@@ -121,7 +121,6 @@ Generate your first UiPath LangChain agent:
121
121
  ✓ Created 'main.py' file.
122
122
  ✓ Created 'langgraph.json' file.
123
123
  ✓ Created 'pyproject.toml' file.
124
- 🔧 Please ensure to define either ANTHROPIC_API_KEY or OPENAI_API_KEY in your .env file.
125
124
  💡 Initialize project: uipath init
126
125
  💡 Run agent: uipath run agent '{"topic": "UiPath"}'
127
126
  ```
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "uipath-langchain"
3
- version = "0.0.130"
3
+ version = "0.0.132"
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.49, <2.2.0",
8
+ "uipath>=2.1.56, <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,49 @@
1
+ from enum import Enum
2
+
3
+ from langgraph.constants import START, END
4
+ from langgraph.graph import StateGraph
5
+ from pydantic.dataclasses import dataclass
6
+ from uipath.tracing import traced
7
+
8
+
9
+ class Operator(Enum):
10
+ ADD = "+"
11
+ SUBTRACT = "-"
12
+ MULTIPLY = "*"
13
+ DIVIDE = "/"
14
+
15
+ @dataclass
16
+ class CalculatorInput:
17
+ a: float
18
+ b: float
19
+ operator: Operator
20
+
21
+ @dataclass
22
+ class CalculatorOutput:
23
+ result: float
24
+
25
+ @traced(name="postprocess")
26
+ async def postprocess(x: float) -> float:
27
+ """
28
+ Example of nested traced invocation.
29
+ """
30
+ return x
31
+
32
+ @traced(name="calculate")
33
+ async def calculate(input: CalculatorInput) -> CalculatorOutput:
34
+ result = 0
35
+ match input.operator:
36
+ case Operator.ADD: result = input.a + input.b
37
+ case Operator.SUBTRACT: result = input.a - input.b
38
+ case Operator.MULTIPLY: result = input.a * input.b
39
+ case Operator.DIVIDE: result = input.a / input.b if input.b != 0 else 0
40
+ result = await postprocess(result)
41
+ return CalculatorOutput(result=result)
42
+
43
+ builder = StateGraph(state_schema=CalculatorInput, input=CalculatorInput, output=CalculatorOutput)
44
+
45
+ builder.add_node("calculate", calculate)
46
+ builder.add_edge(START, "calculate")
47
+ builder.add_edge("calculate", END)
48
+
49
+ graph = builder.compile()
@@ -0,0 +1,41 @@
1
+ [project]
2
+ name = "calculator-agent"
3
+ version = "0.0.1"
4
+ description = "Calculator Agent"
5
+ authors = [{ name = "John Doe", email = "john.doe@myemail.com" }]
6
+ requires-python = ">=3.10"
7
+ dependencies = [
8
+ "uipath-langchain>=0.0.130",
9
+ "uipath>=2.1.54",
10
+ ]
11
+
12
+ [project.optional-dependencies]
13
+ dev = ["mypy>=1.11.1", "ruff>=0.6.1"]
14
+
15
+ [build-system]
16
+ requires = ["setuptools>=73.0.0", "wheel"]
17
+ build-backend = "setuptools.build_meta"
18
+
19
+ [tool.setuptools.package-data]
20
+ "*" = ["py.typed"]
21
+
22
+ [tool.ruff]
23
+ lint.select = [
24
+ "E", # pycodestyle
25
+ "F", # pyflakes
26
+ "I", # isort
27
+ "D", # pydocstyle
28
+ "D401", # First line should be in imperative mood
29
+ "T201",
30
+ "UP",
31
+ ]
32
+ lint.ignore = [
33
+ "UP006",
34
+ "UP007",
35
+ "UP035",
36
+ "D417",
37
+ "E501",
38
+ ]
39
+
40
+ [tool.ruff.lint.per-file-ignores]
41
+ "tests/*" = ["D", "UP"]
@@ -0,0 +1,52 @@
1
+ {
2
+ "entryPoints": [
3
+ {
4
+ "filePath": "agent",
5
+ "uniqueId": "5e1d7bfd-c1b3-4d4f-bd0d-62e3b975e30b",
6
+ "type": "agent",
7
+ "input": {
8
+ "type": "object",
9
+ "properties": {
10
+ "a": {
11
+ "title": "A",
12
+ "type": "number"
13
+ },
14
+ "b": {
15
+ "title": "B",
16
+ "type": "number"
17
+ },
18
+ "operator": {
19
+ "enum": [
20
+ "+",
21
+ "-",
22
+ "*",
23
+ "/"
24
+ ],
25
+ "title": "Operator",
26
+ "type": "string"
27
+ }
28
+ },
29
+ "required": [
30
+ "a",
31
+ "b",
32
+ "operator"
33
+ ]
34
+ },
35
+ "output": {
36
+ "type": "object",
37
+ "properties": {
38
+ "result": {
39
+ "default": null,
40
+ "title": "Result",
41
+ "type": "number"
42
+ }
43
+ },
44
+ "required": []
45
+ }
46
+ }
47
+ ],
48
+ "bindings": {
49
+ "version": "2.0",
50
+ "resources": []
51
+ }
52
+ }