Ctrl K
ComunidadGuías…

pyproject.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[build-system]
requires = ["hatchling>=1.26.3"]
build-backend = "hatchling.build"

[project]
name = "agentcrawl-ai"
version = "0.7.0"
description = "Self-hosted web scraping and Markdown extraction for AI agents."
readme = "README.md"
requires-python = ">=3.10"
license = "Apache-2.0"
authors = [{ name = "AgentCrawl contributors" }]
keywords = [
  "ai-agents",
  "crawler",
  "markdown",
  "mcp",
  "scraping",
  "self-hosted",
  "web-extraction",
]
classifiers = [
  "Development Status :: 3 - Alpha",
  "License :: OSI Approved :: Apache Software License",
  "Programming Language :: Python :: 3",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
  "Topic :: Internet :: WWW/HTTP",
  "Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
  "html2text>=2025.4.15,<2026.0.0",
  "regex>=2024.11.6",
]

[project.urls]
Homepage = "https://github.com/JorG18/agentcrawl"
Repository = "https://github.com/JorG18/agentcrawl"
Issues = "https://github.com/JorG18/agentcrawl/issues"
Documentation = "https://github.com/JorG18/agentcrawl#readme"

[project.optional-dependencies]
browser = ["playwright>=1.60.0,<2.0.0"]
# Playwright patched against automation detection (browser_engine="patchright").
stealth = ["playwright>=1.60.0,<2.0.0", "patchright>=1.58.0,<2.0.0"]
# CloakBrowser's patched Chromium (browser_engine="cloak"); the binary is
# downloaded by the user under its own license: python -m cloakbrowser install.
cloak = ["playwright>=1.60.0,<2.0.0", "cloakbrowser>=0.6.0,<0.7.0"]
docs = ["PyMuPDF>=1.26.0,<2.0.0"]
llm = [
  "langchain>=1.3.2,<2.0.0",
  "pydantic>=2.13.4,<3.0.0",
]
quality = ["semchunk>=4.0.0,<5.0.0"]
openai = [
  "langchain>=1.3.2,<2.0.0",
  "langchain-openai>=1.2.2,<2.0.0",
  "pydantic>=2.13.4,<3.0.0",
]
anthropic = [
  "langchain>=1.3.2,<2.0.0",
  "langchain-anthropic>=1.4.4,<2.0.0",
  "pydantic>=2.13.4,<3.0.0",
]
ollama = [
  "langchain>=1.3.2,<2.0.0",
  "langchain-ollama>=1.1.0,<2.0.0",
  "pydantic>=2.13.4,<3.0.0",
]
server = [
  # 0.133 is the first fastapi that accepts the starlette floor below.
  "fastapi>=0.133.0,<1.0.0",
  "pydantic>=2.13.4,<3.0.0",
  # Security floor for fastapi's transitive dependency (CVE-2026-54282/54283).
  "starlette>=1.3.1,<2.0.0",
  "uvicorn[standard]>=0.38.0,<1.0.0",
]
mcp = [
  "mcp>=1.30.0,<2.0.0",
  "pydantic>=2.13.4,<3.0.0",
]
dev = ["httpx2>=2.0.0,<3.0.0", "pytest>=8.0.0", "ruff>=0.13.0,<0.17"]

[project.scripts]
agentcrawl = "agentcrawl.cli:main"
agentcrawl-mcp = "agentcrawl.mcp_server:main"

[tool.hatch.build.targets.wheel]
packages = ["agentcrawl"]

# Explicit allowlist: without it hatch packs every file not excluded by the
# repo's own .gitignore, so locally ignored working files (agent plans, notes)
# ended up in the published sdist.
[tool.hatch.build.targets.sdist]
include = [
  "/agentcrawl",
  "/tests",
  "/benchmarks",
  "/docs",
  "/examples",
  "/integrations",
  "/README.md",
  "/CHANGELOG.md",
  "/ROADMAP.md",
  "/SECURITY.md",
  "/CONTRIBUTING.md",
  "/INSTALL_FOR_AGENTS.md",
  "/LICENSE",
  "/.env.example",
]
exclude = ["__pycache__", "*.pyc"]

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = ["."]

[tool.ruff]
line-length = 100
target-version = "py310"

[tool.ruff.lint]
# Pinned explicitly: Ruff 0.16 widened its default rule set, which turned a
# green tree red in CI without a single code change. Widen on purpose, not by
# upgrading.
select = ["E4", "E7", "E9", "F"]