J.A.R.V.I.S-rust/crates/jarvis-gui/Cargo.toml

36 lines
870 B
TOML
Raw Normal View History

[package]
name = "jarvis-gui"
version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
edition.workspace = true
[dependencies]
feat(gui): footer backend chips + Settings 'AI Backends' tab + i18n Surfaces the LLM/TTS hot-swap UX in the GUI so the user doesn't need env vars or voice commands. Tauri commands for this landed in b243e67; this commit wires them to Svelte. Footer (frontend/src/components/Footer.svelte) - Poll get_active_backends() every 5 s, show TTS / LLM / Profile chips. - Chips have border accents by kind (cyan = TTS, lime = LLM, orange = Profile). - Friendly title tooltips with full backend + model names. - Silent if jarvis-gui can't reach the command (e.g. cold start) — no UI flicker. Settings — new "AI Backends" tab (frontend/src/routes/settings/index.svelte) - Status banner showing active LLM (with model name) + TTS + Profile. - LLM selector: Auto / Groq / Ollama → calls set_llm_backend on change (hot-swap, persisted to DB). - TTS selector: Auto / SAPI / Piper / Silero → calls set_tts_backend (persisted, effective on next jarvis-app restart). - "Reset context" button → llm_reset_context Tauri command. - Error toast for swap failures (e.g. Groq selected but no GROQ_TOKEN). - Tips alert: how to install Ollama / Piper / voice commands. - Loads prefs via db_read('llm_backend' / 'tts_backend') on mount. i18n strings (ru/en/ua, .ftl files) - 14 new keys: settings-ai-backends, settings-ai-active, settings-ai-auto, settings-ai-applying, settings-ai-error, settings-ai-tips, settings-llm-backend{,-desc}, settings-tts-backend{,-desc}, settings-llm-context{,-desc}, settings-llm-reset, settings-profile. Build glue (crates/jarvis-gui/Cargo.toml) - jarvis-core dep now includes the `llm` feature so backends.rs can resolve `jarvis_core::llm::*` (was failing to compile after the global LLM module). .gitignore - tools/piper/*.dll, piper.exe, voices/, espeak-ng-data/ — locally installed binaries from tools/piper/install.ps1, not committed. Build: cargo build --release -p jarvis-gui green (4m, includes npm/Vite). Test path: rebuild + launch jarvis-gui, /settings → "AI Backends" tab.
2026-05-15 17:06:46 +03:00
jarvis-core = { path = "../jarvis-core", default-features = false, features = ["llm"] }
tauri = { version = "2", features = [] } # v1: "shell-open", "dialog-message", "path-all"
tauri-plugin-shell = "2"
tauri-plugin-dialog = "2"
tauri-plugin-fs = "2"
2026-01-04 09:00:51 +05:00
peak_alloc = "0.3.0"
systemstat = "0.2"
lazy_static = "1.4"
sysinfo.workspace = true
2026-01-04 09:00:51 +05:00
once_cell.workspace = true
log.workspace = true
simple-log = "2.4"
feat: 5 new packs + dotenvy + regen icon.ico + shortcuts redo Iron Man icon regenerated from resources/icons/icon.png at sizes 16/24/32/48/64/128/256 via Pillow (make_ico.py committed alongside); icon.ico is now a clean 83 KB multi-res for sharp display at any scale instead of whatever placeholder Tauri originally emitted. dotenvy added to workspace deps. jarvis-app/main.rs and jarvis-gui/ main.rs both walk up from current_exe() looking for dev.env (up to 5 parent levels), so the Desktop shortcut can launch the exe directly without a wrapper .bat to pre-set GROQ_TOKEN. Falls back to dotenvy::dotenv() (cwd lookup) if nothing found near the binary. 5 new portable Lua command packs. Bumps total from 21 to 26. cargo test -p jarvis-core --lib commands::tests still passes 3/3. reminders/ — set_reminder. Parses "напомни через N (секунд|минут| часов) <body>" or English equivalents; understands one Russian word numerals (один, две, пять, десять, пятнадцать, ...) for the count when speech recognition returns words instead of digits. Defaults to 5 minutes if number/unit missing. Spawns a detached PowerShell that Start-Sleeps then fires: BurntToast if installed, System.Speech SAPI (ru-RU voice preference), and a WScript.Shell.Popup as the guaranteed-visible last resort. date_query/ — today / tomorrow / yesterday. Single answer.lua keyed by command_id, computes the offset via PowerShell Get-Date.AddDays() in ru-RU culture so the weekday/month come out in Russian, then speaks via SAPI. voice_type/ — type_text. Strips the trigger, drops the remainder to clipboard via jarvis.system.clipboard.set, then synthesises Ctrl+V through user32!keybd_event so it lands in whatever window currently has focus. Works in any text field (note app, browser, IDE, Telegram, etc.). dice/ — coin_flip / roll_dice / random_number. Single roll.lua, seeds math.random with os.time + jitter, speaks the result. "1-6" for dice, "1-100" for random. stopwatch/ — start / check / stop. Uses jarvis.state.get/set (persisted via jarvis-core's settings DB) to remember the start timestamp, computes elapsed via jarvis.context.time.timestamp, formats as "X сек" / "X мин Y сек" / "X ч Y мин Z сек". All new packs follow the established patterns (sandbox=full, PS-via- exec helper where needed, USERPROFILE/SystemDrive everywhere, no hardcoded paths).
2026-05-15 12:28:44 +03:00
dotenvy.workspace = true
serde.workspace = true
serde_json.workspace = true
platform-dirs.workspace = true
2026-01-04 09:00:51 +05:00
parking_lot.workspace = true
[build-dependencies]
tauri-build = { version = "2", features = [] }
[features]
default = ["custom-protocol"]
2026-01-04 09:00:51 +05:00
custom-protocol = ["tauri/custom-protocol"]