- Fix circular dependencies in agent/tools - Migrate from custom JSON to OpenAI tool calls format - Add async streaming (step_stream, complete_stream) - Simplify prompt system and remove token counting - Add 5 new API endpoints (/health, /v1/models, /api/memory/*) - Add 3 new tools (get_torrent_by_index, add_torrent_by_index, set_language) - Fix all 500 tests and add coverage config (80% threshold) - Add comprehensive docs (README, pytest guide) BREAKING: LLM interface changed, memory injection via get_memory()
88 lines
1.7 KiB
TOML
88 lines
1.7 KiB
TOML
[tool.poetry]
|
|
name = "agent-media"
|
|
version = "0.1.0"
|
|
description = "AI agent for managing a local media library"
|
|
authors = ["Francwa <francois.hodiaumont@gmail.com>"]
|
|
readme = "README.md"
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.12"
|
|
python-dotenv = "^1.0.0"
|
|
requests = "^2.32.5"
|
|
fastapi = "^0.121.1"
|
|
pydantic = "^2.12.4"
|
|
uvicorn = "^0.38.0"
|
|
pytest-xdist = "^3.8.0"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
pytest = "^8.0.0"
|
|
pytest-cov = "^4.1.0"
|
|
pytest-asyncio = "^0.23.0"
|
|
httpx = "^0.27.0"
|
|
ruff = "^0.14.7"
|
|
black = "^25.11.0"
|
|
|
|
[build-system]
|
|
requires = ["poetry-core"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
addopts = "-v --tb=short"
|
|
asyncio_mode = "auto"
|
|
|
|
[tool.coverage.run]
|
|
source = ["agent", "application", "domain", "infrastructure"]
|
|
omit = ["tests/*", "*/__pycache__/*"]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise NotImplementedError",
|
|
"if __name__ == .__main__.:",
|
|
]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py312']
|
|
include = '\.pyi?$'
|
|
exclude = '''
|
|
/(
|
|
__pycache__
|
|
| \.git
|
|
| \.qodo
|
|
| \.vscode
|
|
| \.ruff_cache
|
|
)/
|
|
'''
|
|
|
|
[tool.ruff]
|
|
line-length = 88
|
|
exclude = [
|
|
"__pycache__",
|
|
".git",
|
|
".ruff_cache",
|
|
".qodo",
|
|
".vscode",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
"E", "W", # pycodestyle
|
|
"F", # pyflakes
|
|
"I", # isort
|
|
"B", # flake8-bugbear
|
|
"C4", # flake8-comprehensions
|
|
"TID", # flake8-tidy-imports
|
|
"PL", # pylint
|
|
"UP", # pyupgrade
|
|
]
|
|
ignore = [
|
|
"PLR0913", # Too many arguments
|
|
"PLR2004", # Magic value comparison
|
|
]
|