Commit graph

24 commits

Author SHA1 Message Date
Bossiara13
4e21024509 feat: Wave 3 — plugin system + custom wake-word trainer
#29 Plugin system:
- New jarvis-core::plugins module: discovers user packs in
  %APPDATA%\com.priler.jarvis\plugins\<name>\command.toml so authors can
  ship voice commands without rebuilding. Sandbox capped at "standard" —
  plugins cannot escalate to "full" (which would expose `os`). Disabled
  via a `disabled` flag file. Malformed packs warn and skip; never poison
  the rest of the list. 8 unit tests.
- commands::parse_commands() merges plugins into the loaded list.
- New /plugins GUI page with enable/disable switches, error reporting,
  "Open folder" button. Tauri commands plugins_list / plugins_set_enabled
  / plugins_open_folder. Header gets a "Плагины" button. i18n keys added
  for ru/en/ua.

#8 Custom wake-word trainer wizard:
- New jarvis-core::wake_trainer module: opens its own pv_recorder
  instance, records N short PCM clips, WAV-encodes them in memory, then
  calls rustpotter's WakewordRef::new_from_sample_buffers to train and
  persist a .rpw model under %APPDATA%/com.priler.jarvis/wake_words/.
  Keepsake WAVs are also dumped for retraining later. Sanitises names to
  block path traversal. 5 unit tests.
- Settings gain `custom_wake_word: String`; listener/rustpotter.rs now
  loads the user's selected model first and always falls back to the
  bundled default so the assistant keeps working even if the custom
  file is missing.
- New /wake-trainer GUI page: stepper UI for record-sample → train,
  shows recorded count, threshold slider, refuses to start while
  jarvis-app is running (mic exclusivity). Lists existing trained
  models with size + delete button.
- 8 Tauri commands wired through (status/defaults/start/record_sample/
  finish/cancel/list_models/delete_model).

Tests: 115 → 128 (+8 plugins +5 wake_trainer). Release builds green for
all three binaries (jarvis-app / jarvis-cli / jarvis-gui).
2026-05-16 13:26:42 +03:00
Bossiara13
c22a24ccd8 feat(gui): /macros + /scheduler pages + README rewrite
Surfaces voice macros and scheduled tasks in the GUI, so the user doesn't
have to remember voice commands or grep schedule.json by hand.

Tauri commands (crates/jarvis-gui/src/tauri_commands/)
  - macros.rs:    macros_list, macros_replay, macros_delete, macros_is_recording,
                  macros_recording_name, macros_start_recording, macros_save_recording,
                  macros_cancel_recording (8 commands).
  - scheduler.rs: scheduler_list, scheduler_remove, scheduler_clear (3 commands).
  - Both exposed in main.rs invoke_handler.

GUI pages (frontend/src/routes/)
  - macros/index.svelte:
    * Lists all macros with name, steps_count, first 5 step previews,
      created/last_run timestamps.
    * Top: TextInput + "Начать запись" button. While recording shows orange
      banner with "Сохранить"/"Отменить" buttons + polls is_recording every 2s.
    * Per-card: "Запустить" (with busy state for replay duration), "Удалить".
    * confirm() before delete.
  - scheduler/index.svelte:
    * Lists tasks with name, schedule_human (e.g. "каждые 2 ч"), action body,
      ID, timestamps, action_kind badge.
    * "Отменить" per task + "Очистить всё (N)" bottom button.
    * Auto-polls every 5s (so the list updates as scheduler ticks fire tasks).

Header (frontend/src/components/Header.svelte)
  - Two new buttons: "Макросы" → /macros, "Расписание" → /scheduler.
  - Beside existing /commands and /settings buttons.

i18n
  - ru/en/ua FTL: settings-ai-backends, settings-llm-*, settings-tts-*,
    settings-profile, header-macros, header-scheduler.
  - Re-applied AI Backends keys for ua.ftl (earlier edit hadn't taken).

README.md (full rewrite)
  - Old README was 178 lines mostly explaining LLM-trigger flow and VAD config.
  - New README is ~190 lines covering: features (LLM hot-swap, memory, profiles,
    vision, scheduler, macros, utilities table), quick start, env vars table,
    build steps with vcvars setup, test command, structure tree, voice workflow
    diagram, license, roadmap.
  - Up to date for 59 packs and all new infra.

Build: cargo build --release -p jarvis-gui green (2m). 55/55 tests pass.
2026-05-15 17:28:22 +03:00
Bossiara13
d23c7fbd12 docs: README — VAD smart command end 2026-04-23 11:08:09 +03:00
Bossiara13
8a2b3f6206 docs: README — voice loop calls Groq for free-form questions
mark the v0.3 promise from the v0.2.x section as done and add a new
subsection that documents the GROQ_TOKEN env var, trigger phrases,
the LlmReply ipc event and the rollback-on-error behaviour.
2026-04-23 02:16:07 +03:00
Bossiara13
5b7a2d15d4 docs: README — document LLM module and env vars
Adds a Russian-language section describing the new jarvis-core::llm
module, the Groq-related environment variables (GROQ_TOKEN,
GROQ_BASE_URL, GROQ_MODEL), the one-shot 'jarvis-cli ask' usage and
a short Rust example. Notes that the module is intentionally not yet
wired into the voice/intent loop — that lands in v0.3.
2026-04-22 19:42:34 +03:00
Bossiara13
8883492715 docs: rewrite README to reflect actual workspace structure 2026-04-22 17:28:00 +03:00
Abraham Tugalov
b10b5f9ab1
Mark README as outdated
Updated the README to indicate that it is outdated.
2026-01-17 06:27:35 +05:00
benzlokzik
38dd734352
Markup correction
Small corrections in the markdown markup related to the use of strikethrough lines with list of TTS and wake-word neural links
2023-05-07 06:15:09 +03:00
Abraham
8dc6efd81a README typo fixes & some little changes 2023-05-04 01:06:44 +05:00
Abraham
1033840325 if you have README problems I feel bad for you son,
I've got 99 problems but the b**ch aint one ...
2023-05-01 02:00:15 +05:00
Abraham
511f2eaa5c Some funky stuff, bruh 2023-05-01 01:52:47 +05:00
Abraham
a988f3edc3 bruh 2023-04-29 16:02:29 +05:00
Abraham
4e1413d400 Readme fix 2023-04-28 19:49:22 +05:00
Abraham
791bd204ee Readme fixes 2023-04-28 19:42:55 +05:00
Abraham
9e6aa9458a Readme fixes 2023-04-28 19:41:44 +05:00
Abraham
d9c0ac77c9 Readme and License 2023-04-28 19:39:48 +05:00
Abraham
f88248643b Update to Rust programming language. 2023-04-27 00:28:36 +05:00
Abraham
9cbea81cce some reformat 2023-04-16 16:59:18 +05:00
Abraham
98024c8266 Some readme, bruh 2023-04-13 23:34:47 +05:00
Abraham
8b0250a473 Some readme, bruh 2023-04-13 23:30:56 +05:00
Abraham
61fd5c75b0 Some readme, bruh 2023-04-13 23:18:31 +05:00
Abraham
0beb0ee926 Readme 2022-12-15 04:24:34 +05:00
Abraham
c51a69bd99 Readme 2022-12-15 04:23:56 +05:00
Abraham
52edb914b7 Readme 2022-12-15 04:20:40 +05:00