J.A.R.V.I.S-rust/resources/commands/disk/list.lua

31 lines
992 B
Lua
Raw Permalink Normal View History

feat: GUI /memory page + disk/date_math/sleep_timer packs (10 new commands) GUI: Memory management completes the management trio (/macros + /scheduler + /memory). Tauri commands (crates/jarvis-gui/src/tauri_commands/memory.rs) - memory_list → Vec<MemoryFact{key, value, created_at, last_used_at, use_count}> - memory_remember(k, v) → persist new fact (or overwrite) - memory_forget(key) → delete by exact key - memory_search(q, limit) → substring search GUI /memory page (frontend/src/routes/memory/index.svelte) - Top: add-fact form (key + value inputs + "+Добавить" button) - Substring filter input for the list - Per-card: key + use_count badge + value (highlighted box) + timestamps + "Забыть" button with confirm() guard - Auto-sorted by recency (last_used_at desc) - Empty state shows voice-hint: 'скажи Jarvis-у "запомни что я люблю чай улун"' Header (frontend/src/components/Header.svelte) - New "Память" button between /scheduler and /settings. - i18n: header-memory in ru/en/ua FTL files. New voice packs resources/commands/disk/ (2 cmds) - disk.free "сколько свободно на диске" / "сколько места на диске C" PowerShell Get-PSDrive → speaks "Свободно X ГБ из Y, это N%" - disk.list "какие у меня диски" → "C 120 ГБ, D 300 ГБ, E 50 ГБ" resources/commands/date_math/ (2 cmds) - date.days_until "сколько дней до нового года" / "сколько до 8 марта" / "сколько до 15 марта" — recognises Russian months, holidays (Новый год, Рождество, 8 марта, 9 мая). Auto-rolls to next year if target already passed. Russian-grammar pluralisation (день/дня/дней). - date.day_of_week "какой сегодня день недели" — Zeller's congruence, maps to ru day name. resources/commands/sleep_timer/ (3 cmds) - sleep_timer.pause_in "выключи музыку через 30 минут" → scheduler one-shot lua action that fires media VK_MEDIA_PLAY_PAUSE via the existing media_keys helper. (Auto-generates _fire_pause.lua wrapper if missing.) - sleep_timer.shutdown_in "выключи компьютер через 1 час" → shutdown.exe /s /t <secs>. Caps at 24 hours. Speaks "Скажите 'отмени таймер' чтобы передумать." - sleep_timer.cancel "отмени таймер выключения" / "не выключай компьютер" → shutdown /a + scheduler.remove("sleep_timer_pause"), idempotent. Pack count: 64 → 67. Tests: 112/112 pass. Build: cargo build --release -p jarvis-gui green.
2026-05-15 23:35:23 +03:00
local ps =
"Get-PSDrive -PSProvider FileSystem | " ..
"Where-Object { $_.Used -ne $null -or $_.Free -ne $null } | " ..
"ForEach-Object { '{0}:{1}' -f $_.Name, [math]::Round($_.Free/1GB,0) } | " ..
"ForEach-Object { Write-Host -NoNewline ($_+' ') }"
local res = jarvis.system.exec(string.format(
'powershell -NoProfile -Command "%s"', ps:gsub('"', '\\"')
))
if not res.success then
return jarvis.cmd.error("Не получилось.")
end
local out = (res.stdout or ""):gsub("^%s+", ""):gsub("%s+$", "")
if out == "" then
return jarvis.cmd.not_found("Дисков не нашёл.")
end
-- "C:120 D:300 E:50" → "C 120 ГБ, D 300 ГБ, ..."
local parts = {}
for letter, gb in out:gmatch("([A-Z]):(%d+)") do
table.insert(parts, letter .. " " .. gb .. " гигабайт")
end
if #parts == 0 then
return jarvis.cmd.error("Не понял ответ системы.")
end
return jarvis.cmd.ok("Свободно: " .. table.concat(parts, ", ") .. ".")