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).
58 lines
1.4 KiB
TOML
58 lines
1.4 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/jarvis-core",
|
|
"crates/jarvis-app",
|
|
"crates/jarvis-gui",
|
|
"crates/jarvis-cli"
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
authors = ["Bossiara13"]
|
|
license = "GPL-3.0-only"
|
|
repository = "https://github.com/DmitryBykov-ISPO/J.A.R.V.I.S-rust"
|
|
edition = "2021"
|
|
|
|
[workspace.dependencies]
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
serde_yaml = "0.9"
|
|
once_cell = "1.19"
|
|
log = "0.4"
|
|
rand = "0.8"
|
|
seqdiff = "0.3"
|
|
hound = "3.5"
|
|
platform-dirs = "0.3"
|
|
rodio = "0.21"
|
|
kira = "0.11"
|
|
pv_recorder = { git = "https://github.com/Priler/pvrecorder" }
|
|
vosk = "0.3"
|
|
rustpotter = { git = "https://github.com/Priler/rustpotter" }
|
|
image = "0.25"
|
|
parking_lot = "0.12.5"
|
|
toml = "0.9.8"
|
|
sha2 = "0.10"
|
|
nnnoiseless = "0.5"
|
|
sysinfo = "0.37.2"
|
|
tokio-tungstenite = "0.28.0"
|
|
futures-util = "0.3"
|
|
fluent = "0.17.0"
|
|
fluent-bundle = "0.16.0"
|
|
unic-langid = "0.9"
|
|
chrono = "0.4"
|
|
mlua = { version = "0.11.5", features = ["lua55", "vendored", "async", "serde"] }
|
|
reqwest = { version = "0.13.1", features = ["blocking", "json"] }
|
|
thiserror = "2"
|
|
tempfile = "^3.24"
|
|
winrt-notification = "0.5"
|
|
|
|
fastembed = { version = "^5.8.1", default-features = false, features = ["ort-download-binaries"] }
|
|
ort = { version = "=2.0.0-rc.11" }
|
|
ndarray = "0.17"
|
|
tokenizers = { version = "0.22", default-features = false }
|
|
regex = "1"
|
|
sys-locale = "0.3"
|
|
webrtc-vad = "0.4"
|
|
dotenvy = "0.15"
|
|
|