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.
70 lines
1.1 KiB
Text
70 lines
1.1 KiB
Text
# Logs
|
|
logs
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
pnpm-debug.log*
|
|
lerna-debug.log*
|
|
|
|
# Editor directories and files
|
|
.vscode
|
|
.vscode/*
|
|
!.vscode/extensions.json
|
|
.idea
|
|
.DS_Store
|
|
*.suo
|
|
*.ntvs*
|
|
*.njsproj
|
|
*.sln
|
|
*.sw?
|
|
|
|
# Etc
|
|
__other
|
|
psd
|
|
list.py
|
|
tree.txt
|
|
|
|
# Rust / Cargo 🔧
|
|
# Ignore Cargo build output, generated files, and common Rust artifacts
|
|
/target/
|
|
**/target/
|
|
/target/doc/
|
|
|
|
# Binaries and dynamic libraries
|
|
*.exe
|
|
# *.dll
|
|
*.so
|
|
*.dylib
|
|
|
|
# Static libraries
|
|
*.a
|
|
# *.lib
|
|
|
|
# Rust compilation artifacts
|
|
*.rlib
|
|
*.rmeta
|
|
|
|
# Backup files and editor temp files
|
|
*.rs.bk
|
|
|
|
# Ignore packaged crates
|
|
*.crate
|
|
|
|
# Ignore AI models
|
|
/resources/models/*
|
|
|
|
# Tauri-generated platform schemas (regenerated on every build)
|
|
crates/jarvis-gui/gen/schemas/*-schema.json
|
|
|
|
# Piper TTS binaries (installed via tools/piper/install.ps1, not committed)
|
|
tools/piper/piper.exe
|
|
tools/piper/*.dll
|
|
tools/piper/espeak-ng-data/
|
|
tools/piper/voices/
|
|
tools/piper/libtashkeel_model.ort
|
|
tools/piper/pkgconfig/
|
|
|
|
# Silero model cache (downloaded by torch.hub on first synth)
|
|
tools/silero/.silero_cache/
|
|
tools/silero/*.pt
|