added fitness
This commit is contained in:
@@ -55,10 +55,27 @@ MEMORY_TOOL_NAMES = frozenset({
|
||||
"update_session_summary",
|
||||
})
|
||||
|
||||
FITNESS_TOOL_NAMES = frozenset({
|
||||
"get_fitness_summary",
|
||||
"set_fitness_profile",
|
||||
"calc_fitness_targets",
|
||||
"log_meal",
|
||||
"log_water",
|
||||
"log_weight",
|
||||
"log_workout",
|
||||
"lookup_food",
|
||||
"lookup_exercise",
|
||||
"set_fitness_reminder",
|
||||
})
|
||||
|
||||
# Не засорять чат служебными ответами
|
||||
TOOLS_SKIP_CHAT_NOTICE = frozenset({
|
||||
"get_pomodoro_status",
|
||||
"recall_memories",
|
||||
"get_fitness_summary",
|
||||
"lookup_food",
|
||||
"lookup_exercise",
|
||||
"calc_fitness_targets",
|
||||
})
|
||||
|
||||
|
||||
@@ -76,6 +93,8 @@ def format_tool_notice(tool_name: str, raw_result: str) -> str | None:
|
||||
prefix = "⏱"
|
||||
elif tool_name in MEMORY_TOOL_NAMES:
|
||||
prefix = "🧠"
|
||||
elif tool_name in FITNESS_TOOL_NAMES:
|
||||
prefix = "💪"
|
||||
else:
|
||||
prefix = "📋"
|
||||
return f"{prefix} {data['error']}"
|
||||
@@ -138,6 +157,39 @@ def format_tool_notice(tool_name: str, raw_result: str) -> str | None:
|
||||
if tool_name == "update_session_summary" and data.get("ok"):
|
||||
return "🧠 **Сводка чата сохранена**"
|
||||
|
||||
if tool_name == "log_meal" and data.get("ok"):
|
||||
meal = data.get("meal", {})
|
||||
est = "≈" if meal.get("estimated") else ""
|
||||
return (
|
||||
f"💪 **Приём пищи** · {meal.get('description')} · "
|
||||
f"{est}{meal.get('calories', 0):.0f} ккал "
|
||||
f"(Б{meal.get('protein_g', 0):.0f}/Ж{meal.get('fat_g', 0):.0f}/У{meal.get('carbs_g', 0):.0f})"
|
||||
)
|
||||
|
||||
if tool_name == "log_water" and data.get("ok"):
|
||||
w = data.get("water", {})
|
||||
return f"💪 **Вода** +{w.get('amount_ml')} мл"
|
||||
|
||||
if tool_name == "log_weight" and data.get("ok"):
|
||||
m = data.get("metric", {})
|
||||
return f"💪 **Вес** {m.get('weight_kg')} кг"
|
||||
|
||||
if tool_name == "log_workout" and data.get("ok"):
|
||||
wo = data.get("workout", {})
|
||||
return f"💪 **Тренировка** · {wo.get('title')}"
|
||||
|
||||
if tool_name == "set_fitness_profile" and data.get("ok"):
|
||||
p = data.get("profile", {})
|
||||
return (
|
||||
f"💪 **Профиль** · {p.get('calorie_target')} ккал, "
|
||||
f"вода {p.get('water_l')} л"
|
||||
)
|
||||
|
||||
if tool_name == "set_fitness_reminder" and data.get("ok"):
|
||||
r = data.get("reminder", {})
|
||||
state = "вкл" if r.get("enabled") else "выкл"
|
||||
return f"💪 **Напоминание {r.get('kind')}** · {state}"
|
||||
|
||||
return None
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user