2db3198ef2
Adds YAML specs for the 14 tools that were still description-from-docstring:
filesystem:
- set_path_for_folder, list_folder, analyze_release, probe_media,
move_media, manage_subtitles, create_seed_links, learn
api:
- find_media_imdb_id, find_torrent, get_torrent_by_index,
add_torrent_to_qbittorrent, add_torrent_by_index
language:
- set_language
Each spec follows the established shape (summary / description /
when_to_use / when_not_to_use / next_steps / parameters with
why_needed + example / returns) and the Python function docstring is
slimmed to a one-line pointer.
Registry now reports: 21 tools, 21 with YAML spec, 0 doc-only.
28 lines
761 B
Python
28 lines
761 B
Python
"""Language management tools for the agent."""
|
|
|
|
import logging
|
|
from typing import Any
|
|
|
|
from alfred.infrastructure.persistence import get_memory
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def set_language(language: str) -> dict[str, Any]:
|
|
"""Thin tool wrapper — semantics live in alfred/agent/tools/specs/set_language.yaml."""
|
|
try:
|
|
memory = get_memory()
|
|
memory.stm.set_language(language)
|
|
memory.save()
|
|
|
|
logger.info(f"Language set to: {language}")
|
|
|
|
return {
|
|
"status": "ok",
|
|
"message": f"Language set to {language}",
|
|
"language": language,
|
|
}
|
|
except Exception as e:
|
|
logger.error(f"Failed to set language: {e}")
|
|
return {"status": "error", "error": str(e)}
|