content: [build-system]
  requires = ["hatchling","hatch-build-scripts"]
  build-backend = "hatchling.build"
  
  [[tool.hatch.build.hooks.build-scripts.scripts]]
  commands = [
      "echo 'Running a pre-build step..copying license'",
      "if [ -f \"LICENSE\" ]; then echo \"✅ LICENSE already exists\"; elif [ -f \"../LICENSE\" ]; then cp \"../LICENSE\" \"LICENSE\" && echo \"✅ LICENSE copied from parent\"; else echo \"❌ ERROR: LICENSE not found\" && exit 1; fi"
  ]
  
  [project]
  name = "monocle_apptrace"
  version = "0.6.0"
  authors = [
    { name="Okahu Inc.", email="okahu-pypi@okahu.ai" },
  ]
  description = "package with monocle genAI tracing"
  readme = "README.md"
  requires-python = ">=3.8"
  license = {text = "Apache-2.0"}
  classifiers = [
      "Programming Language :: Python :: 3",
      "License :: OSI Approved :: Apache Software License",
      "Operating System :: OS Independent",
  ]
  dependencies = [
     'requests',
     'wrapt>=1.14.0',
     'opentelemetry-api>=1.21.0',
     'opentelemetry-sdk>=1.21.0',
     'opentelemetry-instrumentation',
  ]
  
  [tool.pytest.ini_options]
  log_cli = true
  log_cli_level = "INFO"
  # Enable file logging
  #log_file = "traces.log"
  #log_file_level = "INFO"
  log_format = "%(asctime)s %(levelname)s %(pathname)s:%(lineno)d %(message)s"
  log_date_format = "%Y-%m-%d %H:%M:%S"
  
  pythonpath = [
    "src",
    "tests"
  ]
  
  # Simple ignore patterns - uncomment lines to ignore specific tests
  # Just uncomment the patterns you want to ignore:
  
  #ignore = [
  #  "tests/integration/",                    # Ignore ALL integration tests
  #  "tests/unit/",                          # Ignore ALL unit tests
  #]
  
  # Or ignore specific test files/patterns:
  #ignore = [
  #  "tests/integration/test_langchain_bedrock_sample.py",
  #  "tests/integration/test_anthropic_*.py",
  #  "tests/integration/test_azure_*.py", 
  #  "tests/integration/test_openai_*.py",
  #  "tests/unit/*_processor_test.py",
  #]
  
  # Test discovery patterns
  testpaths = [
    "tests"
  ]
  
  [project.optional-dependencies]
  ai_test = [
     'bert-score',
     'transformers'
  ]
  
  dev = [
    'langchain-openai==0.3.18',
    'langchain-chroma==0.2.4',
    'langchain-community==0.3.24',
    'langchain==0.3.25',
    'datasets==2.20.0',
    'numpy==1.26.4',
    'types-requests==2.31.0.20240106',
    'InstructorEmbedding==1.0.1',
    'sentence-transformers==3.3.0',
    'faiss-cpu==1.8.0',
    'pytest==8.3.5',
    'llama-index==0.13.0',
    'llama-index-llms-openai==0.5.0',
    'llama-index-tools-mcp==0.3.0',
    'llama-index-embeddings-huggingface==0.6.0',
    'llama-index-vector-stores-chroma==0.5.0',
    'parameterized==0.9.0',
    'llama-index-llms-mistralai==0.7.0',
    'langchain-mistralai==0.2.10',
    'mistral-haystack==0.0.2',
    'langchain-aws==0.2.23',
    'azure-storage-blob==12.22.0', # this is for blob exporter
    'boto3==1.37.24', # this is for aws exporter
    'llama-index-vector-stores-opensearch==0.6.0',
    'haystack-ai==2.3.0',
    'llama-index-llms-azure-openai==0.4.0',
    'requests-aws4auth==1.2.3',
    'opensearch-haystack==1.2.0',
    'langchainhub==0.1.21',
    'chromadb==1.0.15',
    'flask',
    'opentelemetry-instrumentation-flask',
    'langgraph==0.5.4',
    'langgraph-supervisor==0.0.28',
    'opendal==0.45.14',
    'anthropic==0.57.1',
    'anthropic-haystack',
    'pytest-asyncio==0.26.0',
    'llama-index-llms-anthropic==0.8.1',
    'langchain-anthropic==0.3.13',
    'langchain-mcp-adapters==0.1.8',
    'mcp==1.12.1',
    'a2a-sdk==0.3.6',
    'httpx==0.28.1',
    'fastapi>=0.115.0',
    'pydantic==2.11.7',
    'uvicorn==0.35.0',
    'click==8.2.1',
    'python-dotenv>=1.1.0',
    'langchain-google-genai==2.0.10',
    'google-adk==1.10.0',
    'google-generativeai==0.8.5',
    'openai-agents==0.2.6',
    'mistralai==1.9.9',
    'huggingface_hub==0.35.3',
    'litellm==1.77.5',
    'google-ai-haystack',
    'llama-index-llms-gemini==0.6.1'
  ]
  
  azure = [
      'azure-storage-blob==12.22.0',
      'azure-ai-inference'
  ]
  
  aws = [
      'boto3==1.37.24',
  ]
  
  [project.urls]
  Homepage = "https://github.com/monocle2ai/monocle"
  Issues = "https://github.com/monocle2ai/monocle/issues"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/monocle_apptrace"]
  
  [tool.hatch.build.targets.sdist]
  ignore-vcs = true
  include = [
    "pyproject.toml",
    "README.md",
    "LICENSE",
    "src/**",
  ]
  
  [tool.hatch.build]
  exclude = [
    "/.*",
    "*.txt",
    "Pipfile",
    "/data",
    "/docs",
    "/tests",
    "*.yml",
  ]
  
  [tool.pylint]
  max-line-length = 120
  disable = [
      "C0103", # (invalid-name)
      "C0114", # (missing-module-docstring)
      "C0115", # (missing-class-docstring)
      "C0116", # (missing-function-docstring)
      "R0903", # (too-few-public-methods)
      "R0913", # (too-many-arguments)
      "W0105", # (pointless-string-statement)
  ]
  
  [project.scripts]
  monocle_apptrace = "monocle_apptrace.mcp_server:main"
  