47 lines
1.3 KiB
Lua
47 lines
1.3 KiB
Lua
|
|
-- Smoke test: verify every major subsystem responds.
|
|||
|
|
-- Useful for "is the install OK" after fresh setup.
|
|||
|
|
local h = jarvis.health()
|
|||
|
|
|
|||
|
|
local checks = {}
|
|||
|
|
|
|||
|
|
-- 1. TTS configured
|
|||
|
|
if h.tts_backend and h.tts_backend ~= "—" then
|
|||
|
|
table.insert(checks, "TTS " .. h.tts_backend .. " активен")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 2. LLM configured
|
|||
|
|
if h.llm_backend and h.llm_backend ~= "none" then
|
|||
|
|
table.insert(checks, "LLM " .. h.llm_backend .. " подключён")
|
|||
|
|
else
|
|||
|
|
table.insert(checks, "ВНИМАНИЕ: LLM не настроен")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 3. Memory + scheduler files exist
|
|||
|
|
if h.memory_facts ~= nil then
|
|||
|
|
table.insert(checks, "хранилище памяти работает")
|
|||
|
|
end
|
|||
|
|
if h.scheduled_tasks ~= nil then
|
|||
|
|
table.insert(checks, "планировщик работает")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 4. Profile + i18n
|
|||
|
|
if h.active_profile then
|
|||
|
|
table.insert(checks, "профиль " .. h.active_profile)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 5. Quick HTTP smoke
|
|||
|
|
local r = pcall(function()
|
|||
|
|
local resp = jarvis.http.get("https://api.ipify.org")
|
|||
|
|
return resp and resp.ok
|
|||
|
|
end)
|
|||
|
|
if r then
|
|||
|
|
table.insert(checks, "интернет есть")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if #checks == 0 then
|
|||
|
|
return jarvis.cmd.error("Все системы молчат — что-то не так.")
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local line = "Самопроверка: " .. table.concat(checks, ", ") .. "."
|
|||
|
|
return jarvis.cmd.ok(line)
|