content: [project]
  name = "executor-langchain"
  # Version is managed via Release Please
  version = "0.1.7"
  description = "LangChain executor service with RAG support"
  authors = [
      {name = "McKinsey Agent Platform Team"}
  ]
  readme = "README.md"
  requires-python = ">=3.11"
  dependencies = [
      "fastapi>=0.104.0", # web framework
      "uvicorn[standard]>=0.24.0", # ASGI server
      "pydantic>=2.0.0", # data validation
      "langchain>=0.1.0", # langchain framework
      "langchain-openai>=0.1.0", # openai integration
      "langchain-community>=0.0.20", # community integrations (FAISS)
      "faiss-cpu>=1.7.4", # vector search
      "tiktoken>=0.5.0",
      "ark-sdk",
  ]
  classifiers = [
      "Development Status :: 3 - Alpha",
      "Intended Audience :: Developers",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
  ]
  
  [project.urls]
  Repository = "https://github.com/McK-Internal/qbaf"
  Documentation = "https://github.com/McK-Internal/qbaf/tree/main/services/executor-langchain"
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [project.optional-dependencies]
  dev = [
      "pyright>=1.1.402",
  ]
  
  [tool.hatch.metadata]
  allow-direct-references = true
  
  [project.scripts]
  executor-langchain = "langchain_executor.__main__:main"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/langchain_executor"]
  
  
  # Black configuration - follow AI developer guide for 120 char line length
  [tool.black]
  line-length = 120
  target-version = ['py311']
  include = '\.pyi?$'
  
  # Flake8 configuration - allow 120 character lines per AI developer guide
  [tool.flake8]
  max-line-length = 120
  extend-ignore = ["E203", "W503"]
  
  # isort configuration
  [tool.isort]
  profile = "black"
  line_length = 120
  multi_line_output = 3
  include_trailing_comma = true
  
  # MyPy configuration
  [tool.mypy]
  python_version = "3.11"
  warn_return_any = true
  warn_unused_configs = true
  disallow_untyped_defs = true
  
  # Pytest configuration
  [tool.pytest.ini_options]
  pythonpath = [
      "."
  ]
  testpaths = [
      "tests"
  ]
  
  [tool.uv.sources]
  ark-sdk = { path = "../../out/ark-sdk/dist/ark_sdk-0.1.33-py3-none-any.whl" }
  
  