Reverts ArcadeAI/arcade-mcp#759 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Adds a new LangChain/LangGraph integration layer that wraps and executes Arcade tools, including authorization and error/interrupt handling; bugs here could impact tool execution semantics for adopters. Changes are mostly additive and scoped to `contrib/langchain`. > > **Overview** > Re-introduces a standalone `contrib/langchain` Python package (`langchain-arcade`) to expose Arcade tools as LangChain `StructuredTool`s. > > Adds sync/async `ToolManager` implementations plus utilities to generate Pydantic arg schemas from `ToolDefinition`, optionally rewrite tool names (underscores vs dots), and handle authorization via LangGraph `NodeInterrupt` or structured error responses. > > Includes packaging/dev scaffolding (`pyproject.toml`, `tox.ini`, `Makefile`, `.gitignore`, `LICENSE`, `README`) and a comprehensive test suite covering manager behaviors and auth flows. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit abd23b6d954470cb1e7376158468c0e59cdc7d7a. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
59 lines
1.3 KiB
TOML
59 lines
1.3 KiB
TOML
[build-system]
|
|
requires = [ "hatchling",]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "langchain-arcade"
|
|
version = "1.4.5"
|
|
description = "An integration package connecting Arcade and Langchain/LangGraph"
|
|
readme = "README.md"
|
|
repository = "https://github.com/arcadeai/arcade-mcp/tree/main/contrib/langchain"
|
|
license = "MIT"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"arcadepy>=1.7.0",
|
|
"langchain-core>=0.3.80,<0.4",
|
|
]
|
|
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.3.0,<8.4.0",
|
|
"pytest-cov>=4.0.0,<4.1.0",
|
|
"pytest-mock>=3.11.1,<3.12.0",
|
|
"pytest-asyncio>=0.24.0,<0.25.0",
|
|
"mypy>=1.5.1,<1.6.0",
|
|
"pre-commit>=3.4.0,<3.5.0",
|
|
"ruff>=0.7.4,<0.8.0",
|
|
"langgraph>=0.3.23,<0.4"
|
|
]
|
|
|
|
|
|
[tool.mypy]
|
|
files = ["langchain_arcade"]
|
|
python_version = "3.10"
|
|
disallow_untyped_defs = "True"
|
|
disallow_any_unimported = "True"
|
|
no_implicit_optional = "True"
|
|
check_untyped_defs = "True"
|
|
warn_return_any = "True"
|
|
warn_unused_ignores = "True"
|
|
show_error_codes = "True"
|
|
ignore_missing_imports = "True"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
|
|
|
|
[tool.coverage.run]
|
|
branch = true
|
|
source = ["langchain_arcade"]
|
|
|
|
[tool.coverage.report]
|
|
skip_empty = true
|
|
|
|
[tool.ruff.lint]
|
|
ignore = ["C901"]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = [ "langchain_arcade",]
|