TOML · 1696 bytes Raw Blame History
1 [build-system]
2 requires = ["hatchling"]
3 build-backend = "hatchling.build"
4
5 [project]
6 name = "loader"
7 version = "0.1.0"
8 description = "Local-first agentic coding assistant"
9 readme = "README.md"
10 license = "MIT"
11 requires-python = ">=3.11"
12 authors = [
13 { name = "mfwolffe" }
14 ]
15 keywords = ["ai", "llm", "coding", "assistant", "agent"]
16 classifiers = [
17 "Development Status :: 3 - Alpha",
18 "Environment :: Console",
19 "Intended Audience :: Developers",
20 "License :: OSI Approved :: MIT License",
21 "Programming Language :: Python :: 3.11",
22 "Programming Language :: Python :: 3.12",
23 "Programming Language :: Python :: 3.13",
24 "Topic :: Software Development",
25 ]
26
27 dependencies = [
28 "rich>=13.0", # Terminal UI
29 "httpx>=0.25", # Async HTTP for LLM APIs
30 "click>=8.0", # CLI framework
31 "pydantic>=2.0", # Data validation
32 "prompt-toolkit>=3.0", # Interactive input
33 "textual>=0.47.0", # Full TUI framework
34 ]
35
36 [project.optional-dependencies]
37 dev = [
38 "pytest>=7.0",
39 "pytest-asyncio",
40 "ruff",
41 "mypy",
42 ]
43
44 [project.scripts]
45 loader = "loader.cli.main:main"
46
47 [tool.hatch.build.targets.wheel]
48 packages = ["src/loader"]
49
50 [tool.ruff]
51 line-length = 100
52 target-version = "py311"
53 extend-exclude = ["refs"]
54
55 [tool.ruff.lint]
56 select = ["E", "F", "I", "N", "W", "UP"]
57 ignore = ["E501"]
58
59 [tool.ruff.lint.per-file-ignores]
60 "src/loader/cli/main.py" = ["N818"]
61 "src/loader/tools/base.py" = ["N818"]
62 "src/loader/ui/__init__.py" = ["N802"]
63
64 [tool.pytest.ini_options]
65 testpaths = ["tests"]
66 asyncio_mode = "strict"
67 asyncio_default_fixture_loop_scope = "function"
68
69 [tool.mypy]
70 python_version = "3.11"
71 strict = true
72 exclude = ["^refs/"]