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()
This commit is contained in:
@@ -1,19 +1,87 @@
|
||||
[tool.poetry]
|
||||
name = "agent-media"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
description = "AI agent for managing a local media library"
|
||||
authors = ["Francwa <francois.hodiaumont@gmail.com>"]
|
||||
readme = "README.md"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.12"
|
||||
dotenv = "^0.9.9"
|
||||
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
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user