Module: Legion::Extensions::Agentic::Memory::Palimpsest::Runners::CognitivePalimpsest

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

Constant Summary

Constants included from Helpers::Constants

Helpers::Constants::CONFIDENCE_LABELS, Helpers::Constants::DEFAULT_CONFIDENCE, Helpers::Constants::DRIFT_LABELS, Helpers::Constants::EROSION_RATE, Helpers::Constants::GHOST_DECAY, Helpers::Constants::GHOST_LABELS, Helpers::Constants::GHOST_THRESHOLD, Helpers::Constants::LAYER_DOMAINS, Helpers::Constants::MAX_LAYERS_PER_TOPIC, Helpers::Constants::MAX_PALIMPSESTS

Instance Method Summary collapse

Methods included from Helpers::Constants

label_for

Instance Method Details

#all_ghost_layers(engine: nil) ⇒ Object



51
52
53
54
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 51

def all_ghost_layers(engine: nil, **)
  layers = resolve_engine(engine).all_ghost_layers
  { success: true, layers: layers, count: layers.size }
end

#belief_drift(topic:, engine: nil) ⇒ Object



61
62
63
64
65
66
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 61

def belief_drift(topic:, engine: nil, **)
  result = resolve_engine(engine).belief_drift(topic: topic)
  return { success: false, reason: :not_found } unless result

  { success: true }.merge(result)
end

#create_palimpsest(topic:, domain: :unknown, engine: nil) ⇒ Object



13
14
15
16
17
18
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 13

def create_palimpsest(topic:, domain: :unknown, engine: nil, **)
  p = resolve_engine(engine).create(topic: topic, domain: domain)
  return { success: false, reason: :limit_or_duplicate } unless p

  { success: true, id: p.id, topic: p.topic, domain: p.domain }
end

#decay_all_ghosts(ghost_rate: GHOST_DECAY, engine: nil) ⇒ Object



80
81
82
83
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 80

def decay_all_ghosts(ghost_rate: GHOST_DECAY, engine: nil, **)
  resolve_engine(engine).decay_all!(ghost_rate: ghost_rate)
  { success: true }
end

#domain_archaeology(domain:, engine: nil) ⇒ Object



56
57
58
59
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 56

def domain_archaeology(domain:, engine: nil, **)
  layers = resolve_engine(engine).domain_archaeology(domain: domain)
  { success: true, layers: layers, count: layers.size }
end

#erode_belief(topic:, rate: EROSION_RATE, engine: nil) ⇒ Object



39
40
41
42
43
44
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 39

def erode_belief(topic:, rate: EROSION_RATE, engine: nil, **)
  result = resolve_engine(engine).erode(topic: topic, rate: rate)
  return { success: false, reason: :not_found } if result.nil?

  { success: true, topic: topic, confidence: result.round(4) }
end

#ghost_layers(topic:, engine: nil) ⇒ Object



46
47
48
49
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 46

def ghost_layers(topic:, engine: nil, **)
  layers = resolve_engine(engine).ghost_layers_for(topic: topic)
  { success: true, layers: layers, count: layers.size }
end

#most_rewritten(limit: 10, engine: nil) ⇒ Object



75
76
77
78
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 75

def most_rewritten(limit: 10, engine: nil, **)
  palimpsests = resolve_engine(engine).most_rewritten(limit: limit)
  { success: true, palimpsests: palimpsests, count: palimpsests.size }
end

#overwrite_belief(topic:, content:, confidence: DEFAULT_CONFIDENCE, author: :system, engine: nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 20

def overwrite_belief(topic:, content:, confidence: DEFAULT_CONFIDENCE,
                     author: :system, engine: nil, **)
  layer = resolve_engine(engine).overwrite(
    topic:      topic,
    content:    content,
    confidence: confidence,
    author:     author
  )
  return { success: false, reason: :limit_reached } unless layer

  { success: true, layer_id: layer.id, version: layer.version,
    confidence: layer.confidence.round(4) }
end

#overwrite_frequency(topic:, engine: nil) ⇒ Object



68
69
70
71
72
73
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 68

def overwrite_frequency(topic:, engine: nil, **)
  count = resolve_engine(engine).overwrite_frequency(topic: topic)
  return { success: false, reason: :not_found } if count.nil?

  { success: true, topic: topic, overwrite_count: count }
end

#palimpsest_report(engine: nil) ⇒ Object



85
86
87
88
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 85

def palimpsest_report(engine: nil, **)
  report = resolve_engine(engine).palimpsest_report
  { success: true }.merge(report)
end

#peek_through_belief(topic:, depth: 1, engine: nil) ⇒ Object



34
35
36
37
# File 'lib/legion/extensions/agentic/memory/palimpsest/runners/cognitive_palimpsest.rb', line 34

def peek_through_belief(topic:, depth: 1, engine: nil, **)
  layers = resolve_engine(engine).peek_through(topic: topic, depth: depth)
  { success: true, layers: layers, count: layers.size }
end