Files
alfred/pyproject.toml
Francwa 9ca31e45e0 feat!: migrate to OpenAI native tool calls and fix circular deps (#fuck-gemini)
- 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()
2025-12-06 19:11:05 +01:00

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
]