feat: vision + macros + scheduler in Python (129 → 142 commands)
Three big rust packs ported. Python parity now covers the FULL imba lineup
except codebase_qa and github_pr.
vision_handler.py (new, ~125 lines)
- Screenshot via PowerShell System.Drawing → temp PNG → base64 → Groq
vision API (llama-3.2-11b-vision-preview, override via GROQ_VISION_MODEL).
- do_vision_describe "что на экране" / "опиши экран"
- do_vision_read_error "прочитай ошибку"
- Requires GROQ_TOKEN; speaks "Не удалось" on missing.
macros_store.py (new, ~170 lines)
- JSON store at <here>/macros.json (atomic write-through).
- start(name) / save() / cancel() / replay(name, dispatch_fn)
- is_recording / recording_name / list_names / get / delete
- record_step(phrase) called by execute_cmd hook (see main.py)
- is_macro_control filter blocks "запиши макрос ..." from recording itself
(no infinite recursion).
- replay spawns daemon thread, fires each step with 800ms delay.
scheduler_store.py (new, ~220 lines)
- JSON store at <here>/schedule.json.
- parse_schedule(spec) handles "daily HH:MM", "at HH:MM",
"every/in N minutes|hours|seconds" — Russian (минут/час/секунд) + English.
- Background daemon thread ticks every 30s, fires Speak actions through the
same speak callback used by main.py.
- Once-tasks auto-delete after firing; daily/interval cycle forever.
- add/remove/clear/remove_by_text/list_all.
extensions.py (+13 handlers)
do_vision_describe / do_vision_read_error → thin proxies to vision_handler
do_macros_start / save / cancel / replay / list / delete
do_scheduler_add_reminder / add_recurring / list / clear / cancel_by_text
main.py
- extensions.init_background_services() at startup → scheduler thread boots.
- Wraps execute_cmd so every successful dispatch feeds macros_store.record_step.
- set_dispatch_fn(_execute_phrase_for_macro) enables macro replay through the
normal command pipeline (recognize_cmd → execute_cmd).
commands.yaml (+13 entries, 129 → 142)
vision_describe, vision_read_error, macros_start, macros_save, macros_cancel,
macros_replay, macros_list, macros_delete, scheduler_reminder,
scheduler_recurring, scheduler_list, scheduler_clear, scheduler_cancel_text.
Tests: ast.parse passes for all five .py files. yaml.safe_load = 142 entries.
Python parity status vs rust (72 packs):
✓ memory_pack, profile_switch, vision, scheduler, macros, llm switch
(via env), llm_context (basic), media_keys (existing), screenshot, net_info,
unit_convert, generators, disk, date_math, sleep_timer (via shutdown),
interesting_fact, mailto, self_check, ssl_check, intro/echo
✗ codebase_qa, github_pr (require gh CLI + file walk — TODO)
✗ pomodoro / daily_briefing / habit_nudge / quick_search / diagnostics
(could be ported but need scheduler integration + LLM glue)
This commit is contained in:
parent
02c6f2f90d
commit
6a328077bc
6 changed files with 1015 additions and 0 deletions
107
commands.yaml
107
commands.yaml
|
|
@ -1113,3 +1113,110 @@ profile_what:
|
|||
- текущий режим
|
||||
- какой режим
|
||||
action: {type: profile_what}
|
||||
|
||||
vision_describe:
|
||||
phrases:
|
||||
- что на экране
|
||||
- опиши экран
|
||||
- посмотри на экран
|
||||
- что у меня на экране
|
||||
- посмотри на мой экран
|
||||
- глянь на экран
|
||||
action: {type: vision_describe}
|
||||
|
||||
vision_read_error:
|
||||
phrases:
|
||||
- прочитай ошибку
|
||||
- что за ошибка
|
||||
- помоги с ошибкой
|
||||
action: {type: vision_read_error}
|
||||
|
||||
macros_start:
|
||||
phrases:
|
||||
- запиши макрос
|
||||
- начни запись макроса
|
||||
- записывай макрос
|
||||
- новый макрос
|
||||
action: {type: macros_start}
|
||||
|
||||
macros_save:
|
||||
phrases:
|
||||
- сохрани макрос
|
||||
- стоп макрос
|
||||
- стоп запись макроса
|
||||
- закончи запись
|
||||
- макрос готов
|
||||
action: {type: macros_save}
|
||||
|
||||
macros_cancel:
|
||||
phrases:
|
||||
- отмени макрос
|
||||
- отмени запись макроса
|
||||
- забудь макрос
|
||||
action: {type: macros_cancel}
|
||||
|
||||
macros_replay:
|
||||
phrases:
|
||||
- запусти макрос
|
||||
- выполни макрос
|
||||
- воспроизведи макрос
|
||||
- сыграй макрос
|
||||
- проиграй макрос
|
||||
action: {type: macros_replay}
|
||||
|
||||
macros_list:
|
||||
phrases:
|
||||
- какие у меня макросы
|
||||
- список макросов
|
||||
- покажи макросы
|
||||
action: {type: macros_list}
|
||||
|
||||
macros_delete:
|
||||
phrases:
|
||||
- удали макрос
|
||||
- забудь о макросе
|
||||
action: {type: macros_delete}
|
||||
|
||||
scheduler_reminder:
|
||||
phrases:
|
||||
- напомни мне через
|
||||
- напомни через
|
||||
- поставь напоминалку через
|
||||
- поставь напоминание через
|
||||
- разбуди через
|
||||
action: {type: scheduler_add_reminder}
|
||||
|
||||
scheduler_recurring:
|
||||
phrases:
|
||||
- напоминай каждые
|
||||
- напоминай каждый
|
||||
- каждые
|
||||
- каждый час
|
||||
action: {type: scheduler_add_recurring}
|
||||
|
||||
scheduler_list:
|
||||
phrases:
|
||||
- что у меня запланировано
|
||||
- какие напоминания
|
||||
- покажи расписание
|
||||
- какие задачи у меня
|
||||
- что в расписании
|
||||
action: {type: scheduler_list}
|
||||
|
||||
scheduler_clear:
|
||||
phrases:
|
||||
- очисти расписание
|
||||
- удали все напоминания
|
||||
- отмени все напоминания
|
||||
- сбрось расписание
|
||||
action: {type: scheduler_clear}
|
||||
|
||||
scheduler_cancel_text:
|
||||
phrases:
|
||||
- отмени напоминание про
|
||||
- отмени напоминание о
|
||||
- удали задачу про
|
||||
- удали задачу о
|
||||
- отмени про
|
||||
- забудь напоминание про
|
||||
action: {type: scheduler_cancel_by_text}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue