19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/llmemory/mcp/tools/memory_consolidate.rb', line 19
def call(user_id:, session_id: nil, clear_session: nil, server_context: nil)
session = session_id || "default"
should_clear = clear_session || false
memory = Llmemory::Memory.new(user_id: user_id, session_id: session)
messages = memory.messages
if messages.empty?
return ::MCP::Tool::Response.new([{
type: "text",
text: "No messages to consolidate in session '#{session}'."
}])
end
message_count = messages.size
memory.consolidate!
if should_clear
memory.clear_session!
end
response_text = "Consolidated #{message_count} messages from session '#{session}' into long-term memory."
response_text += "\nSession cleared." if should_clear
::MCP::Tool::Response.new([{
type: "text",
text: response_text
}])
rescue => e
::MCP::Tool::Response.new([{
type: "text",
text: "Error consolidating memory: #{e.message}"
}], error: true)
end
|