Module: Legion::Extensions::Agentic::Memory::Diary::Runners::Diary

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/memory/diary/runners/diary.rb

Instance Method Summary collapse

Instance Method Details

#diary_stats(store: nil) ⇒ Object



42
43
44
45
# File 'lib/legion/extensions/agentic/memory/diary/runners/diary.rb', line 42

def diary_stats(store: nil, **)
  s = store || diary_store
  { success: true, agent_id: s.agent_id, entry_count: s.count, available: s.db_ready? }
end

#read_diary(limit: Helpers::Constants::DEFAULT_LIMIT, since: nil, store: nil) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/legion/extensions/agentic/memory/diary/runners/diary.rb', line 24

def read_diary(limit: Helpers::Constants::DEFAULT_LIMIT, since: nil, store: nil, **)
  s = store || diary_store
  return { success: false, error: 'diary store not available' } unless s.db_ready?

  entries = s.read(limit: limit, since: since)
  log.debug("[diary] read #{entries.size} entries for agent=#{s.agent_id}")
  { success: true, entries: entries, count: entries.size }
end

#search_diary(query:, limit: Helpers::Constants::DEFAULT_LIMIT, store: nil) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/legion/extensions/agentic/memory/diary/runners/diary.rb', line 33

def search_diary(query:, limit: Helpers::Constants::DEFAULT_LIMIT, store: nil, **)
  s = store || diary_store
  return { success: false, error: 'diary store not available' } unless s.db_ready?

  entries = s.search(query: query, limit: limit)
  log.debug("[diary] search query=#{query} found=#{entries.size} agent=#{s.agent_id}")
  { success: true, entries: entries, count: entries.size }
end

#write_diary(session_id:, content:, tags: [], metadata: {}, store: nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/legion/extensions/agentic/memory/diary/runners/diary.rb', line 13

def write_diary(session_id:, content:, tags: [], metadata: {}, store: nil, **)
  s = store || diary_store
  entry_id = s.write(session_id: session_id, content: content, tags: tags, metadata: )
  if entry_id
    log.debug("[diary] wrote entry=#{entry_id} agent=#{s.agent_id} session=#{session_id}")
    { success: true, entry_id: entry_id }
  else
    { success: false, error: 'diary store not available' }
  end
end