local phrase = (jarvis.context.phrase or ""):lower() local query = jarvis.text.strip_trigger(phrase, { "что ты помнишь о", "что ты помнишь про", "что ты знаешь обо мне", "что помнишь про", "вспомни", "what do you remember about", "recall", "що ти пам'ятаєш про", }) query = query:gsub("^[%s,:%.]+", ""):gsub("%s+$", "") if query == "" then -- show top-3 most recent local recs = jarvis.memory.all() if #recs == 0 then jarvis.speak("Ничего пока не помню.") jarvis.audio.play_ok() return { chain = false } end local line = "Я помню: " for i = 1, math.min(3, #recs) do line = line .. recs[i].key .. " — " .. recs[i].value .. ". " end jarvis.speak(line) jarvis.audio.play_ok() return { chain = false } end -- substring search local hits = jarvis.memory.search(query, 3) if #hits == 0 then jarvis.speak("Ничего не нашёл про " .. query .. ".") jarvis.audio.play_not_found() return { chain = false } end local line = "" if #hits == 1 then line = hits[1].value else for i, h in ipairs(hits) do line = line .. h.key .. ": " .. h.value if i < #hits then line = line .. ". " end end end jarvis.speak(line) jarvis.audio.play_ok() return { chain = false }