added more pomidoro

This commit is contained in:
2026-06-09 11:54:32 +03:00
parent 244935e4ac
commit c8599b3d13
20 changed files with 817 additions and 91 deletions
+78 -23
View File
@@ -10,7 +10,7 @@ TOOL_DEFINITIONS: list[dict[str, Any]] = [
"type": "function",
"function": {
"name": "get_pomodoro_status",
"description": "ОБЯЗАТЕЛЬНО вызывай перед любым ответом о таймере. Возвращает актуальный статус помидоро.",
"description": "ОБЯЗАТЕЛЬНО вызывай перед любым ответом о таймере. Статус, фаза и прогресс цикла.",
"parameters": {"type": "object", "properties": {}, "required": []},
},
},
@@ -18,18 +18,40 @@ TOOL_DEFINITIONS: list[dict[str, Any]] = [
"type": "function",
"function": {
"name": "start_pomodoro",
"description": "Запустить помидоро-таймер. Вызывай при каждой просьбе поставить таймер — не полагайся на память.",
"description": "Запустить фазу работы в цикле помидоро (25 мин по умолчанию).",
"parameters": {
"type": "object",
"properties": {
"duration_min": {
"type": "integer",
"description": "Длительность в минутах, по умолчанию 25",
},
"task_note": {
"type": "string",
"description": "Над чем работаем в этой сессии",
},
"duration_min": {"type": "integer", "description": "Минуты работы"},
"task_note": {"type": "string", "description": "Над чем работаем"},
},
"required": [],
},
},
},
{
"type": "function",
"function": {
"name": "start_short_break",
"description": "Запустить короткий перерыв между работами.",
"parameters": {
"type": "object",
"properties": {
"duration_min": {"type": "integer", "description": "Минуты перерыва"},
},
"required": [],
},
},
},
{
"type": "function",
"function": {
"name": "start_long_break",
"description": "Запустить длинный перерыв после завершения цикла работ.",
"parameters": {
"type": "object",
"properties": {
"duration_min": {"type": "integer", "description": "Минуты перерыва"},
},
"required": [],
},
@@ -39,17 +61,39 @@ TOOL_DEFINITIONS: list[dict[str, Any]] = [
"type": "function",
"function": {
"name": "stop_pomodoro",
"description": "Остановить текущий помидоро-таймер",
"description": "Остановить текущую фазу таймера.",
"parameters": {
"type": "object",
"properties": {
"result": {
"type": "string",
"description": "Краткий отчёт о том, что сделано",
},
"result": {"type": "string", "description": "Отчёт о сделанном"},
"completed": {
"type": "boolean",
"description": "True если задача полностью завершена",
"description": "True если фаза полностью завершена",
},
},
"required": [],
},
},
},
{
"type": "function",
"function": {
"name": "skip_pomodoro_phase",
"description": "Досрочно завершить текущую фазу и перейти к следующей в цикле.",
"parameters": {"type": "object", "properties": {}, "required": []},
},
},
{
"type": "function",
"function": {
"name": "reset_pomodoro_cycle",
"description": "Сбросить цикл помидоро: обнулить счётчик работ и остановить таймер.",
"parameters": {
"type": "object",
"properties": {
"clear_task": {
"type": "boolean",
"description": "Также очистить текущую задачу",
},
},
"required": [],
@@ -60,14 +104,11 @@ TOOL_DEFINITIONS: list[dict[str, Any]] = [
"type": "function",
"function": {
"name": "get_pomodoro_history",
"description": "ОБЯЗАТЕЛЬНО вызывай при вопросах о задачах, истории работы или что пользователь делал.",
"description": "ОБЯЗАТЕЛЬНО при вопросах о задачах, истории работы или что пользователь делал.",
"parameters": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Сколько последних сессий вернуть, по умолчанию 10",
}
"limit": {"type": "integer", "description": "Сколько сессий вернуть"},
},
"required": [],
},
@@ -83,15 +124,29 @@ def execute_tool(db: Session, name: str, arguments: dict[str, Any]) -> str:
if name == "get_pomodoro_status":
result = service.get_status()
elif name == "start_pomodoro":
result = service.start(
duration_min=arguments.get("duration_min", 25),
result = service.start_work(
duration_min=arguments.get("duration_min"),
task_note=arguments.get("task_note", ""),
)
elif name == "start_short_break":
result = service.start_short_break(
duration_min=arguments.get("duration_min"),
)
elif name == "start_long_break":
result = service.start_long_break(
duration_min=arguments.get("duration_min"),
)
elif name == "stop_pomodoro":
result = service.stop(
result=arguments.get("result", ""),
completed=arguments.get("completed", False),
)
elif name == "skip_pomodoro_phase":
result = service.skip_phase()
elif name == "reset_pomodoro_cycle":
result = service.reset_cycle(
clear_task=arguments.get("clear_task", False),
)
elif name == "get_pomodoro_history":
result = service.history(limit=arguments.get("limit", 10))
else: