[project] name = "tinybot" version = "0.0.18" description = "" license = {text = "MIT"} requires-python = ">=3.13" dependencies = [ "typer>=0.20.0,<1.0.0", "pydantic>=2.12.0,<3.0.0", "pydantic-settings>=2.12.0,<3.0.0", "websockets>=16.0,<17.0", "httpx>=0.28.0,<1.0.0", "loguru>=0.7.3,<1.0.0", "rich>=14.0.0,<15.0.0", "lark-oapi>=1.5.0,<2.0.0", "msgpack>=1.1.0,<2.0.0", "prompt-toolkit>=3.0.50,<4.0.0", "mcp>=1.26.0,<2.0.0", "json-repair>=0.57.0,<1.0.0", "openai>=2.8.0", "tiktoken>=0.12.0,<1.0.0", "jinja2>=3.1.0,<4.0.0", "chromadb>=1.5.6", "browser-use>=0.12.6", "cryptography>=46.0.7", "snowballstemmer>=3.0.1", "pymupdf>=1.25.0,<2.0.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0,<9.0.0", "pytest-asyncio>=0.24.0,<1.0.0", "pytest-cov>=6.0.0,<7.0.0", "pytest-mock>=3.14.0,<4.0.0", "mypy>=1.15.0,<2.0.0", "ruff>=0.11.0,<1.0.0", "pre-commit>=4.0.0,<5.0.0", ] [project.scripts] tinybot = "tinybot.cli.commands:app" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build] include = [ "tinybot/**/*.py", "tinybot/templates/**/*.md", "tinybot/skills/**/*.md", "tinybot/skills/**/*.sh", ] [tool.hatch.build.targets.wheel] packages = ["tinybot"] [tool.hatch.build.targets.wheel.sources] "tinybot" = "tinybot" [tool.hatch.build.targets.sdist] include = [ "tinybot/", "README.md", "LICENSE", ] [[tool.uv.index]] name = "pytorch-cu130" url = "https://download.pytorch.org/whl/cu130" explicit = true [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" addopts = "-v --tb=short" filterwarnings = [ "ignore::DeprecationWarning", ] [tool.coverage.run] source = ["tinybot"] branch = true omit = [ "tinybot/__main__.py", "tinybot/cli/*", ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "raise NotImplementedError", "@abstractmethod", ] show_missing = true [tool.mypy] python_version = "3.13" warn_return_any = false warn_unused_configs = true disallow_untyped_defs = false ignore_missing_imports = true disable_error_code = ["no-any-return", "union-attr", "arg-type", "override", "misc", "attr-defined", "return-value", "index", "assignment", "valid-type", "abstract", "func-returns-value", "var-annotated", "dict-item", "import-untyped", "name-defined", "no-redef", "typeddict-unknown-key"] exclude = [ "tinybot/skills/skill-creator/scripts/", "tinybot/cli/onboard\\.py", ] [tool.ruff] target-version = "py313" line-length = 120 exclude = ["tinybot/"] [tool.ruff.lint] select = ["E", "F", "W", "I", "UP", "B"] ignore = ["E501", "I001", "F401", "F841"] [tool.ruff.format] quote-style = "double" indent-style = "space" [[tool.uv.index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" default = true