feat: Wave 6 — focus mode, cooking timer, memory admin
Focus mode (`focus/`):
- focus.start ("режим фокуса" / "focus mode"): three side-effects in one
voice trigger:
1. switch profile to "work" (silences fun/banter)
2. enable Windows Focus Assist via registry tweak (QuietHours key)
3. schedule a stretch reminder in 50 minutes through the persistent
scheduler — so it survives daemon restart
- focus.stop: undoes all three, including cancelling pending stretch
reminders by matching their scheduler name. Best-effort: any one
failing doesn't block the others.
Cooking timer (`cooking/`):
- Recognises 16+ dish names (чай, кофе, омлет, яйца, макароны, паста,
рис, гречка, картошка, курица, пицца, etc.) and starts a preset-
duration scheduler reminder ("Сэр, чай готов.").
- Single Lua script, table-driven — adding a recipe is one line.
- EN phrases for the same dishes ("boiling pasta", "frying eggs", ...).
Memory admin (`memory_admin/`):
- memory_admin.count → speak fact count with full RU pluralisation.
- memory_admin.list → speak 5 most-recent + toast the rest.
- memory_admin.wipe → ONLY fires on "точно забудь все" prefix (not bare
"забудь все") so we can't disaster-wipe by accident.
- Adds `long_term_memory::clear_all() -> usize` returning removed count
+ Lua binding `jarvis.memory.clear_all()`.
- One extra unit test for `clear_all`.
Tests: 139 → 140 (+1). Pack count: 92 → 95.
This commit is contained in:
parent
df799b6cd2
commit
8f46bd735a
11 changed files with 467 additions and 0 deletions
66
resources/commands/memory_admin/command.toml
Normal file
66
resources/commands/memory_admin/command.toml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Memory admin — voice-driven housekeeping for the long-term memory.
|
||||
# - "сколько фактов помнишь" → speak count
|
||||
# - "выгрузи список фактов" → notify with first ~10 keys
|
||||
# - "забудь все" → wipe everything (with safety prefix "точно забудь все")
|
||||
|
||||
[[commands]]
|
||||
id = "memory_admin.count"
|
||||
type = "lua"
|
||||
script = "count.lua"
|
||||
sandbox = "minimal"
|
||||
timeout = 2000
|
||||
|
||||
[commands.phrases]
|
||||
ru = [
|
||||
"сколько фактов помнишь",
|
||||
"сколько ты помнишь",
|
||||
"сколько у тебя в памяти",
|
||||
"размер памяти",
|
||||
]
|
||||
en = [
|
||||
"how many facts do you remember",
|
||||
"how big is your memory",
|
||||
"memory size",
|
||||
]
|
||||
|
||||
|
||||
[[commands]]
|
||||
id = "memory_admin.list"
|
||||
type = "lua"
|
||||
script = "list.lua"
|
||||
sandbox = "minimal"
|
||||
timeout = 2000
|
||||
|
||||
[commands.phrases]
|
||||
ru = [
|
||||
"выгрузи список фактов",
|
||||
"покажи что помнишь",
|
||||
"перечисли что помнишь",
|
||||
"что у тебя в памяти",
|
||||
]
|
||||
en = [
|
||||
"list what you remember",
|
||||
"show me your memory",
|
||||
"what's in memory",
|
||||
]
|
||||
|
||||
|
||||
[[commands]]
|
||||
id = "memory_admin.wipe"
|
||||
type = "lua"
|
||||
script = "wipe.lua"
|
||||
sandbox = "minimal"
|
||||
timeout = 2000
|
||||
|
||||
[commands.phrases]
|
||||
ru = [
|
||||
"точно забудь все",
|
||||
"точно забудь всё",
|
||||
"сотри всю память",
|
||||
"wipe memory",
|
||||
]
|
||||
en = [
|
||||
"wipe all memory",
|
||||
"really forget everything",
|
||||
"clear all memory",
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue