- 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()
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""Filesystem tools for folder management."""
|
|
|
|
from typing import Any
|
|
|
|
from application.filesystem import ListFolderUseCase, SetFolderPathUseCase
|
|
from infrastructure.filesystem import FileManager
|
|
|
|
|
|
def set_path_for_folder(folder_name: str, path_value: str) -> dict[str, Any]:
|
|
"""
|
|
Set a folder path in the configuration.
|
|
|
|
Args:
|
|
folder_name: Name of folder to set (download, tvshow, movie, torrent).
|
|
path_value: Absolute path to the folder.
|
|
|
|
Returns:
|
|
Dict with status or error information.
|
|
"""
|
|
file_manager = FileManager()
|
|
use_case = SetFolderPathUseCase(file_manager)
|
|
response = use_case.execute(folder_name, path_value)
|
|
return response.to_dict()
|
|
|
|
|
|
def list_folder(folder_type: str, path: str = ".") -> dict[str, Any]:
|
|
"""
|
|
List contents of a configured folder.
|
|
|
|
Args:
|
|
folder_type: Type of folder to list (download, tvshow, movie, torrent).
|
|
path: Relative path within the folder (default: root).
|
|
|
|
Returns:
|
|
Dict with folder contents or error information.
|
|
"""
|
|
file_manager = FileManager()
|
|
use_case = ListFolderUseCase(file_manager)
|
|
response = use_case.execute(folder_type, path)
|
|
return response.to_dict()
|