feat: Wave 1 python parity — 20 new commands (154 → 174)

Mirrors all 10 packs from rust commit c4b2261 to python.

wave1_handlers.py (new, ~480 lines)
  Self-contained module with 20 handlers + DPAPI helpers + http/ps wrappers.
  Imports memory_store for state-backed packs (vault, clip, habit, rss, weather).

  Coverage:
    do_magic_8ball         — 15 random answers
    do_github_list_issues  — gh issue list (uses memory[github.repo])
    do_github_my_issues    — gh issue list --assignee @me
    do_weather_tomorrow    — Open-Meteo + ipinfo auto-detect
    do_weather_week        — 7-day forecast min/max range
    do_rss_add/read/list   — RSS subscriptions + parse <title> tags
    do_ics_create          — write .ics, open via os.startfile
    do_backup_export       — zipfile of long_term_memory.json + schedule + macros
                              + profiles/ + active_profile + llm_backend + settings
                              (searches script_dir + %APPDATA%/Jarvis)
    do_clip_save/list/restore — 20-slot rolling clipboard history in memory
    do_notif_missed/clear  — enumerate memory[notif.*] / purge
    do_vault_save/get/list — DPAPI encrypt via PowerShell, clears clipboard
                              after 30 sec via threading.Thread
    do_habit_checkin/streak — date-keyed memory state, consecutive-day counter

extensions.py: +20 proxy functions + wave1_handlers import + set_speak wiring.

main.py: +20 dispatch entries.

commands.yaml: +20 entries (154 → 174).

Tests: ast.parse passes for all .py files. 42 pytest still green.
This commit is contained in:
Bossiara13 2026-05-16 01:08:17 +03:00
parent 4e62049a98
commit 2bef1d5ea7
4 changed files with 839 additions and 0 deletions

View file

@ -1335,3 +1335,163 @@ daily_quote:
- вдохнови меня
- цитата
action: {type: daily_quote}
magic_8ball:
phrases:
- ответь да или нет
- магический шар
- восьмой шар
- скажи да или нет
- что скажешь
- предсказание
action: {type: magic_8ball}
gh_list_issues:
phrases:
- какие issues
- какие задачи
- открытые issues
- список issues
- что в issues
- тикеты
action: {type: gh_list_issues}
gh_my_issues:
phrases:
- мои issues
- что мне назначено
action: {type: gh_my_issues}
weather_tomorrow:
phrases:
- погода завтра
- что с погодой завтра
- прогноз на завтра
action: {type: weather_tomorrow}
weather_week:
phrases:
- прогноз на неделю
- погода на неделю
- недельный прогноз
action: {type: weather_week}
rss_add:
phrases:
- добавь rss
- подпишись на
- запомни ленту
- добавь ленту
action: {type: rss_add}
rss_read:
phrases:
- что в ленте
- новости из ленты
- почитай rss
- новости из rss
- новые статьи
action: {type: rss_read}
rss_list:
phrases:
- какие у меня rss
- список лент
- мои подписки
action: {type: rss_list}
ics_create:
phrases:
- добавь встречу
- создай событие
- создай встречу
- новая встреча
action: {type: ics_create}
backup_export:
phrases:
- сделай бекап
- экспортируй настройки
- сохрани мои настройки
- выгрузи настройки
action: {type: backup_export}
clip_save:
phrases:
- запиши буфер
- сохрани буфер
- запомни буфер
- запомни что в буфере
action: {type: clip_save}
clip_list:
phrases:
- что я копировал
- история буфера
- последние буферы
- что было в буфере
action: {type: clip_list}
clip_restore:
phrases:
- верни первый буфер
- верни второй буфер
- верни третий буфер
- восстанови буфер
- вставь старый буфер
action: {type: clip_restore}
notif_missed:
phrases:
- что я пропустил
- что было пока меня не было
- какие уведомления
- пропущенные
action: {type: notif_missed}
notif_clear:
phrases:
- очисти уведомления
- забудь уведомления
- сбрось пропущенное
action: {type: notif_clear}
vault_save:
phrases:
- сохрани пароль от
- запомни пароль от
- пароль для
action: {type: vault_save}
vault_get:
phrases:
- пароль от
- дай пароль
- покажи пароль от
- достань пароль
action: {type: vault_get}
vault_list:
phrases:
- какие у меня пароли
- список паролей
- что в хранилище паролей
action: {type: vault_list}
habit_checkin:
phrases:
- отметь привычку
- выполнил привычку
- я попил воды
- я размялся
- я отдохнул глазам
action: {type: habit_checkin}
habit_streak:
phrases:
- сколько дней подряд
- мои привычки
- статистика привычек
- сколько дней пью воду
- трекинг привычек
action: {type: habit_streak}