Module: Legion::Extensions::Agentic::Memory::Compression::Runners::CognitiveCompression

Includes:
Helpers::Constants, Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb

Constant Summary

Constants included from Helpers::Constants

Helpers::Constants::CHUNK_TYPES, Helpers::Constants::COMPRESSION_LABELS, Helpers::Constants::COMPRESSION_RATE, Helpers::Constants::DEFAULT_COMPRESSION_RATIO, Helpers::Constants::FIDELITY_LABELS, Helpers::Constants::FIDELITY_LOSS_RATE, Helpers::Constants::MAX_ABSTRACTIONS, Helpers::Constants::MAX_CHUNKS, Helpers::Constants::MIN_FIDELITY

Instance Method Summary collapse

Instance Method Details

#abstract_chunks(chunk_ids:, abstraction_label:, engine: nil) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 36

def abstract_chunks(chunk_ids:, abstraction_label:, engine: nil, **)
  eng = engine || default_engine
  result = eng.abstract_chunks(chunk_ids: chunk_ids, abstraction_label: abstraction_label)
  return { success: false, error: 'no valid chunks' } unless result

  { success: true, abstraction: result.to_h }
end

#average_fidelity(engine: nil) ⇒ Object



50
51
52
53
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 50

def average_fidelity(engine: nil, **)
  eng = engine || default_engine
  { success: true, fidelity: eng.average_fidelity }
end

#compress_all(engine: nil, amount: COMPRESSION_RATE) ⇒ Object



44
45
46
47
48
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 44

def compress_all(engine: nil, amount: COMPRESSION_RATE, **)
  eng = engine || default_engine
  count = eng.compress_all(amount: amount)
  { success: true, compressed_count: count }
end

#compress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 20

def compress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE, **)
  eng = engine || default_engine
  result = eng.compress_chunk(chunk_id: chunk_id, amount: amount)
  return { success: false, error: 'chunk not found' } unless result

  { success: true, chunk: result.to_h }
end

#compression_report(engine: nil) ⇒ Object



60
61
62
63
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 60

def compression_report(engine: nil, **)
  eng = engine || default_engine
  { success: true, report: eng.compression_report }
end

#decompress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 28

def decompress_chunk(chunk_id:, engine: nil, amount: COMPRESSION_RATE, **)
  eng = engine || default_engine
  result = eng.decompress_chunk(chunk_id: chunk_id, amount: amount)
  return { success: false, error: 'chunk not found' } unless result

  { success: true, chunk: result.to_h }
end

#overall_compression_ratio(engine: nil) ⇒ Object



55
56
57
58
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 55

def overall_compression_ratio(engine: nil, **)
  eng = engine || default_engine
  { success: true, ratio: eng.overall_compression_ratio }
end

#store_chunk(label:, engine: nil, chunk_type: :semantic, original_size: 1.0) ⇒ Object



14
15
16
17
18
# File 'lib/legion/extensions/agentic/memory/compression/runners/cognitive_compression.rb', line 14

def store_chunk(label:, engine: nil, chunk_type: :semantic, original_size: 1.0, **)
  eng = engine || default_engine
  chunk = eng.store_chunk(label: label, chunk_type: chunk_type, original_size: original_size)
  { success: true, chunk: chunk.to_h }
end