feat: Python parity for Wave 6-8 — memory admin / cooking / leftoff / trivia / routines

New module `wave68_handlers.py` (~270 lines) covering the Rust packs that
were Rust-only after Waves 6-8:

  - memory_admin: do_memory_count/list/wipe (with full RU plural decl.)
  - cooking: do_cooking + reusable match_recipe(phrase) for the 15-dish
    preset table. Schedules a "ready!" reminder via scheduler_store.
  - leftoff: do_leftoff stitches memory + scheduled tasks + last reply
    into a one-paragraph recap. Offline.
  - trivia: do_trivia random one-liner from RU/EN MCU pools.
  - routines: do_good_night (sleep profile + cancel one-shots),
    do_good_morning (default profile + agenda hint),
    do_coffee_break (5-min check-in via scheduler).

memory_store: new clear_all() returning removed count, atomic via _save.

extensions.py: imports + set_speak wiring + 9 proxy do_* fns.
main.py: 9 new dispatch elifs.
commands.yaml: 9 new entries (now 196 total).

tests/test_wave68_handlers.py: 15 unit tests covering each handler.
Test helper `_rewire()` re-imports state modules via the existing
isolated_state fixture then re-binds the wave68_handlers module-level
refs — fixes the gotcha where module-level imports cache the OLD
memory_store / scheduler_store instances from process startup.

Tests: 81 → 96 (+15).
This commit is contained in:
Bossiara13 2026-05-16 14:55:47 +03:00
parent 5265cb0fbe
commit 94edb73f26
7 changed files with 644 additions and 0 deletions

View file

@ -1624,3 +1624,88 @@ outlook_summarize_inbox:
- сделай саммари инбокса
- что нового в почте
action: {type: outlook_summarize_inbox}
memory_count:
phrases:
- сколько фактов помнишь
- сколько ты помнишь
- сколько у тебя в памяти
- размер памяти
action: {type: memory_count}
memory_list:
phrases:
- выгрузи список фактов
- покажи что помнишь
- перечисли что помнишь
- что у тебя в памяти
action: {type: memory_list}
memory_wipe:
phrases:
- точно забудь все
- точно забудь всё
- сотри всю память
action: {type: memory_wipe}
cooking_timer:
phrases:
- поставь чайник
- варю яйца
- варю макароны
- варю пасту
- жарю омлет
- жарю яичницу
- варю кашу
- варю рис
- варю гречку
- варю картошку
- запекаю курицу
- пеку пиццу
- завариваю чай
- завариваю кофе
- завариваю френч-пресс
action: {type: cooking}
leftoff:
phrases:
- на чём я остановился
- на чем я остановился
- напомни что делал
- что я делал
- где я остановился
- продолжи откуда я
action: {type: leftoff}
trivia_iron_man:
phrases:
- расскажи про железного человека
- факт про железного человека
- интересное про старка
- марвел факт
action: {type: trivia}
routines_good_night:
phrases:
- спокойной ночи
- иду спать
- пока я в кровати
- ночной режим
- выключи всё на ночь
action: {type: good_night}
routines_good_morning:
phrases:
- доброе утро джарвис
- доброе утро
- я проснулся
- начинаем день
action: {type: good_morning}
routines_coffee_break:
phrases:
- иду за кофе
- перерыв на кофе
- перерыв на чай
- отойду минут на пять
action: {type: coffee_break}