# Voice-driven daily time tracking. # # Storage: jarvis.state on this pack — a single key "data" holding # { current_session_start = |nil, sessions = { {start=ts,end=ts}, ... } } # # tracker.start marks the beginning of an active session. # tracker.stop closes the open session and pushes it onto the array. # tracker.today / tracker.week report totals (sum of completed + # current open session if any). # tracker.reset wipes today's entries; speech reply confirms what was wiped. [[commands]] id = "tracker.start" type = "lua" script = "start.lua" sandbox = "standard" timeout = 3000 [commands.phrases] ru = [ "начни отсчёт", "начни отсчет", "запусти трекер", "я начинаю работу", "начало рабочего дня", ] en = [ "start tracking", "I'm starting work", "begin tracking", "start the tracker", ] [[commands]] id = "tracker.stop" type = "lua" script = "stop.lua" sandbox = "standard" timeout = 3000 [commands.phrases] ru = [ "закончи отсчёт", "закончи отсчет", "останови трекер", "я закончил работу", "конец рабочего дня", ] en = [ "stop tracking", "I'm done", "end the tracker", "stop the tracker", ] [[commands]] id = "tracker.today" type = "lua" script = "today.lua" sandbox = "standard" timeout = 3000 [commands.phrases] ru = [ "сколько я работаю сегодня", "сколько отработал сегодня", "сколько часов сегодня", "сколько времени за сегодня", ] en = [ "how long today", "how much have I worked today", "hours today", "time today", ] [[commands]] id = "tracker.week" type = "lua" script = "week.lua" sandbox = "standard" timeout = 3000 [commands.phrases] ru = [ "сколько на этой неделе", "сколько отработал на неделе", "часы за неделю", "статистика за неделю", ] en = [ "hours this week", "how long this week", "time this week", "weekly hours", ] [[commands]] id = "tracker.reset" type = "lua" script = "reset.lua" sandbox = "standard" timeout = 3000 [commands.phrases] ru = [ "сбрось трекер", "обнули трекер", "очисти трекер", "сбрось отсчёт", ] en = [ "reset tracker", "clear tracker", "wipe today's tracker", "reset today's tracker", ]