content: [build-system]
  requires = ["setuptools>=61.0", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "omnara"
  version = "1.6.21"
  description = "Omnara Agent Dashboard - MCP Server and Python SDK"
  readme = "README.md"
  requires-python = ">=3.10"
  license = {file = "LICENSE"}
  authors = [
      {name = "Omnara", email = "ishaan@omnara.com"}
  ]
  keywords = ["mcp", "ai", "agents", "dashboard", "human-in-the-loop", "claude-code"]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Developers",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
  ]
  dependencies = [
      "requests>=2.25.0",
      "urllib3>=1.26.0",
      "aiohttp>=3.8.0",
      "certifi>=2020.6.20",
      "websocket-client>=1.6.0",
      "fastmcp>=2.9.2",
      "fastapi>=0.100.0",
      "uvicorn>=0.20.0",
      "pydantic>=2.0.0",
      "claude-code-sdk>=0.0.20",
  ]
  
  [project.urls]
  Homepage = "https://github.com/omnara-ai/omnara"
  Repository = "https://github.com/omnara-ai/omnara"
  Issues = "https://github.com/omnara-ai/omnara/issues"
  
  [project.scripts]
  omnara = "omnara.cli:main"
  
  [tool.setuptools.packages.find]
  where = ["src"]
  include = ["omnara*", "servers.mcp*", "servers.shared*", "integrations*"]
  
  [tool.setuptools.package-data]
  omnara = ["_bin/**"]
  
  
  [tool.pytest.ini_options]
  # Test discovery
  testpaths = ["src/backend/tests", "src/servers/tests", "src/relay_server/tests", "tests"]
  python_files = ["test_*.py"]
  pythonpath = [".", "src"]
  
  # Markers
  markers = [
      "integration: marks tests as integration tests (deselect with '-m \"not integration\"')",
  ]
  
  # Asyncio support
  asyncio_mode = "auto"
  
  # Basic options
  addopts = [
      "-v",
      "--strict-markers",
      "--tb=short",
  ]
  
  [tool.coverage.run]
  source = ["src/backend", "src/servers", "src/omnara", "src/shared", "src/relay_server"]
  omit = [
      "*/tests/*",
      "*/__pycache__/*",
      "*/migrations/*",
      "*/alembic/*",
  ]
  
  [tool.coverage.report]
  skip_covered = true
  show_missing = true 
  
  [tool.ruff]
  exclude = [
      "src/integrations/cli_wrappers/codex",
  ]
  