This commit is contained in:
2026-06-16 09:19:32 +03:00
parent 7f1516c9c9
commit 8f3ac70b20
43 changed files with 1644 additions and 4668 deletions
+11 -51
View File
@@ -3,6 +3,13 @@ from typing import Any
from app.db.models import PomodoroSession
from app.pomodoro.cycle import PHASE_LONG_BREAK, PHASE_SHORT_BREAK, PHASE_WORK
from app.tools.fitness import TOOL_NAMES as FITNESS_TOOL_NAMES
from app.tools.homelab import TOOL_NAMES as HOMELAB_TOOL_NAMES
from app.tools.memory import TOOL_NAMES as MEMORY_TOOL_NAMES
from app.tools.pomodoro import TOOL_NAMES as POMODORO_TOOL_NAMES
from app.tools.projects import TOOL_NAMES as PROJECT_TOOL_NAMES
from app.tools.reminders import TOOL_NAMES as REMINDER_TOOL_NAMES
from app.tools.shopping import TOOL_NAMES as SHOPPING_TOOL_NAMES
PHASE_LABELS = {
PHASE_WORK: "Работа",
@@ -48,57 +55,6 @@ def format_phase_completed_notice(
return "\n".join(lines)
POMODORO_TOOL_NAMES = frozenset({
"get_pomodoro_status",
"start_pomodoro",
"start_short_break",
"start_long_break",
"stop_pomodoro",
"skip_pomodoro_phase",
"reset_pomodoro_cycle",
"get_pomodoro_history",
})
MEMORY_TOOL_NAMES = frozenset({
"remember_fact",
"recall_memories",
"forget_memory",
"update_profile",
"update_session_summary",
})
FITNESS_TOOL_NAMES = frozenset({
"get_fitness_summary",
"get_fitness_history",
"set_fitness_profile",
"calc_fitness_targets",
"calc_body_composition",
"log_meal",
"log_water",
"log_weight",
"log_workout",
"lookup_food",
"lookup_exercise",
"set_fitness_reminder",
})
# Не засорять чат служебными ответами
REMINDER_TOOL_NAMES = frozenset({
"list_reminders",
"create_reminder",
"update_reminder",
"delete_reminder",
"complete_reminder",
})
SHOPPING_TOOL_NAMES = frozenset({
"list_shopping_lists",
"create_shopping_list",
"add_shopping_items",
"check_shopping_item",
"remove_shopping_item",
"delete_shopping_list",
})
TOOLS_SKIP_CHAT_NOTICE = frozenset({
"get_pomodoro_status",
@@ -156,6 +112,10 @@ def format_tool_notice(tool_name: str, raw_result: str) -> str | None:
prefix = "🛒"
elif tool_name in REMINDER_TOOL_NAMES:
prefix = "📅"
elif tool_name in PROJECT_TOOL_NAMES:
prefix = "📋"
elif tool_name in HOMELAB_TOOL_NAMES:
prefix = "🏠"
else:
prefix = "📋"
return f"{prefix} {data['error']}"