lex-agentic-memory 0.1.16 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/lex-agentic-memory.gemspec +1 -0
  4. data/lib/legion/extensions/agentic/memory/archaeology/actors/decay.rb +1 -1
  5. data/lib/legion/extensions/agentic/memory/compression/actors/maintenance.rb +1 -1
  6. data/lib/legion/extensions/agentic/memory/echo/actors/decay.rb +1 -1
  7. data/lib/legion/extensions/agentic/memory/echo_chamber/actors/decay.rb +1 -1
  8. data/lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb +4 -4
  9. data/lib/legion/extensions/agentic/memory/episodic/runners/episodic_buffer.rb +11 -11
  10. data/lib/legion/extensions/agentic/memory/hologram/runners/cognitive_hologram.rb +18 -18
  11. data/lib/legion/extensions/agentic/memory/immune_memory/actors/decay.rb +1 -1
  12. data/lib/legion/extensions/agentic/memory/nostalgia/actors/maintenance.rb +1 -1
  13. data/lib/legion/extensions/agentic/memory/nostalgia/helpers/nostalgia_engine.rb +2 -2
  14. data/lib/legion/extensions/agentic/memory/nostalgia/runners/analysis.rb +7 -7
  15. data/lib/legion/extensions/agentic/memory/nostalgia/runners/recall.rb +6 -6
  16. data/lib/legion/extensions/agentic/memory/offloading/runners/cognitive_offloading.rb +13 -13
  17. data/lib/legion/extensions/agentic/memory/palimpsest/actors/decay.rb +1 -1
  18. data/lib/legion/extensions/agentic/memory/reserve/actors/maintenance.rb +1 -1
  19. data/lib/legion/extensions/agentic/memory/semantic/runners/semantic_memory.rb +13 -13
  20. data/lib/legion/extensions/agentic/memory/semantic_priming/actors/decay.rb +1 -1
  21. data/lib/legion/extensions/agentic/memory/semantic_satiation/actors/recovery.rb +1 -1
  22. data/lib/legion/extensions/agentic/memory/semantic_satiation/runners/semantic_satiation.rb +16 -16
  23. data/lib/legion/extensions/agentic/memory/source_monitoring/actors/decay.rb +1 -1
  24. data/lib/legion/extensions/agentic/memory/source_monitoring/runners/source_monitoring.rb +9 -9
  25. data/lib/legion/extensions/agentic/memory/trace/batch_decay.rb +1 -1
  26. data/lib/legion/extensions/agentic/memory/trace/helpers/cache_store.rb +14 -14
  27. data/lib/legion/extensions/agentic/memory/trace/helpers/error_tracer.rb +1 -1
  28. data/lib/legion/extensions/agentic/memory/trace/helpers/hot_tier.rb +1 -1
  29. data/lib/legion/extensions/agentic/memory/trace/helpers/postgres_store.rb +5 -5
  30. data/lib/legion/extensions/agentic/memory/trace/helpers/snapshot.rb +1 -1
  31. data/lib/legion/extensions/agentic/memory/trace/helpers/store.rb +5 -5
  32. data/lib/legion/extensions/agentic/memory/trace/persistent_store.rb +3 -3
  33. data/lib/legion/extensions/agentic/memory/trace/runners/consolidation.rb +6 -6
  34. data/lib/legion/extensions/agentic/memory/trace/runners/traces.rb +8 -8
  35. data/lib/legion/extensions/agentic/memory/trace.rb +3 -3
  36. data/lib/legion/extensions/agentic/memory/transfer/runners/transfer_learning.rb +11 -11
  37. data/lib/legion/extensions/agentic/memory/version.rb +1 -1
  38. data/lib/legion/extensions/agentic/memory.rb +1 -1
  39. data/spec/legion/extensions/agentic/memory/archaeology/actors/decay_spec.rb +1 -1
  40. data/spec/legion/extensions/agentic/memory/compression/actors/maintenance_spec.rb +1 -1
  41. data/spec/legion/extensions/agentic/memory/echo/actors/decay_spec.rb +1 -1
  42. data/spec/legion/extensions/agentic/memory/echo_chamber/actors/decay_spec.rb +1 -1
  43. data/spec/legion/extensions/agentic/memory/immune_memory/actors/decay_spec.rb +1 -1
  44. data/spec/legion/extensions/agentic/memory/nostalgia/actors/maintenance_spec.rb +1 -1
  45. data/spec/legion/extensions/agentic/memory/palimpsest/actors/decay_spec.rb +1 -1
  46. data/spec/legion/extensions/agentic/memory/reserve/actors/maintenance_spec.rb +1 -1
  47. data/spec/legion/extensions/agentic/memory/semantic_priming/actors/decay_spec.rb +1 -1
  48. data/spec/legion/extensions/agentic/memory/semantic_satiation/actors/recovery_spec.rb +1 -1
  49. data/spec/legion/extensions/agentic/memory/trace/helpers/error_tracer_spec.rb +46 -0
  50. metadata +16 -1
@@ -7,58 +7,58 @@ module Legion
7
7
  module Transfer
8
8
  module Runners
9
9
  module TransferLearning
10
- include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers) &&
11
- Legion::Extensions::Helpers.const_defined?(:Lex)
10
+ include Legion::Extensions::Helpers::Lex if Legion::Extensions.const_defined?(:Helpers, false) &&
11
+ Legion::Extensions::Helpers.const_defined?(:Lex, false)
12
12
 
13
13
  def learn_domain(domain:, amount:, **)
14
14
  result = transfer_engine.learn_domain(domain: domain, amount: amount)
15
- Legion::Logging.info "[transfer_learning] learn: domain=#{domain} amount=#{amount} proficiency=#{result[:proficiency]}"
15
+ log.info("[transfer_learning] learn: domain=#{domain} amount=#{amount} proficiency=#{result[:proficiency]}")
16
16
  result
17
17
  end
18
18
 
19
19
  def attempt_transfer(from_domain:, to_domain:, **)
20
20
  result = transfer_engine.attempt_transfer(from_domain: from_domain, to_domain: to_domain)
21
- Legion::Logging.info "[transfer_learning] transfer: from=#{from_domain} to=#{to_domain} type=#{result[:type]} effect=#{result[:effect]}"
21
+ log.info("[transfer_learning] transfer: from=#{from_domain} to=#{to_domain} type=#{result[:type]} effect=#{result[:effect]}")
22
22
  result
23
23
  end
24
24
 
25
25
  def set_similarity(domain_a:, domain_b:, similarity:, **)
26
26
  sim = transfer_engine.set_similarity(domain_a: domain_a, domain_b: domain_b, similarity: similarity)
27
- Legion::Logging.debug "[transfer_learning] similarity set: #{domain_a}<->#{domain_b} similarity=#{sim}"
27
+ log.debug("[transfer_learning] similarity set: #{domain_a}<->#{domain_b} similarity=#{sim}")
28
28
  { domain_a: domain_a, domain_b: domain_b, similarity: sim }
29
29
  end
30
30
 
31
31
  def transfer_effectiveness(from_domain:, to_domain:, **)
32
32
  result = transfer_engine.transfer_effectiveness(from_domain: from_domain, to_domain: to_domain)
33
- Legion::Logging.debug "[transfer_learning] effectiveness: from=#{from_domain} to=#{to_domain} type=#{result[:type]}"
33
+ log.debug("[transfer_learning] effectiveness: from=#{from_domain} to=#{to_domain} type=#{result[:type]}")
34
34
  result
35
35
  end
36
36
 
37
37
  def most_transferable(target_domain:, limit: 5, **)
38
38
  candidates = transfer_engine.most_transferable(target_domain: target_domain, limit: limit)
39
- Legion::Logging.debug "[transfer_learning] most_transferable: target=#{target_domain} found=#{candidates.size}"
39
+ log.debug("[transfer_learning] most_transferable: target=#{target_domain} found=#{candidates.size}")
40
40
  { target_domain: target_domain, candidates: candidates, count: candidates.size }
41
41
  end
42
42
 
43
43
  def interference_risks(target_domain:, **)
44
44
  risks = transfer_engine.interference_risks(target_domain: target_domain)
45
- Legion::Logging.debug "[transfer_learning] interference_risks: target=#{target_domain} risks=#{risks.size}"
45
+ log.debug("[transfer_learning] interference_risks: target=#{target_domain} risks=#{risks.size}")
46
46
  { target_domain: target_domain, risks: risks, count: risks.size }
47
47
  end
48
48
 
49
49
  def transfer_report(**)
50
50
  report = transfer_engine.transfer_report
51
- Legion::Logging.debug "[transfer_learning] report: domains=#{report[:domain_count]} transfers=#{report[:total_transfers]}"
51
+ log.debug("[transfer_learning] report: domains=#{report[:domain_count]} transfers=#{report[:total_transfers]}")
52
52
  report
53
53
  end
54
54
 
55
55
  def get_domain(domain:, **)
56
56
  entry = transfer_engine.domains[domain]
57
57
  if entry
58
- Legion::Logging.debug "[transfer_learning] get_domain: domain=#{domain} proficiency=#{entry.proficiency}"
58
+ log.debug("[transfer_learning] get_domain: domain=#{domain} proficiency=#{entry.proficiency}")
59
59
  { found: true, domain: entry.to_h }
60
60
  else
61
- Legion::Logging.debug "[transfer_learning] get_domain: domain=#{domain} not found"
61
+ log.debug("[transfer_learning] get_domain: domain=#{domain} not found")
62
62
  { found: false, domain: domain }
63
63
  end
64
64
  end
@@ -4,7 +4,7 @@ module Legion
4
4
  module Extensions
5
5
  module Agentic
6
6
  module Memory
7
- VERSION = '0.1.16'
7
+ VERSION = '0.1.18'
8
8
  end
9
9
  end
10
10
  end
@@ -24,7 +24,7 @@ module Legion
24
24
  module Extensions
25
25
  module Agentic
26
26
  module Memory
27
- extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
27
+ extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core, false
28
28
 
29
29
  def self.remote_invocable?
30
30
  false
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/archaeology/actors/decay'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::Archaeology::Actors::Decay do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::Archaeology::Actor::Decay do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::Archaeology::Runners::CognitiveArchaeology) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/compression/actors/maintenance'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::Compression::Actors::Maintenance do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::Compression::Actor::Maintenance do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::Compression::Runners::CognitiveCompression) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/echo/actors/decay'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::Echo::Actors::Decay do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::Echo::Actor::Decay do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::Echo::Runners::CognitiveEcho) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/echo_chamber/actors/decay'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::EchoChamber::Actors::Decay do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::EchoChamber::Actor::Decay do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::EchoChamber::Runners::CognitiveEchoChamber) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/immune_memory/actors/decay'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::ImmuneMemory::Actors::Decay do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::ImmuneMemory::Actor::Decay do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::ImmuneMemory::Runners::CognitiveImmuneMemory) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/nostalgia/actors/maintenance'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::Nostalgia::Actors::Maintenance do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::Nostalgia::Actor::Maintenance do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::Nostalgia::Runners::Recall) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/palimpsest/actors/decay'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::Palimpsest::Actors::Decay do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::Palimpsest::Actor::Decay do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::Palimpsest::Runners::CognitivePalimpsest) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/reserve/actors/maintenance'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::Reserve::Actors::Maintenance do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::Reserve::Actor::Maintenance do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::Reserve::Runners::CognitiveReserve) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/semantic_priming/actors/decay'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::SemanticPriming::Actors::Decay do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::SemanticPriming::Actor::Decay do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::SemanticPriming::Runners::SemanticPriming) }
@@ -12,7 +12,7 @@ $LOADED_FEATURES << 'legion/extensions/actors/every'
12
12
 
13
13
  require 'legion/extensions/agentic/memory/semantic_satiation/actors/recovery'
14
14
 
15
- RSpec.describe Legion::Extensions::Agentic::Memory::SemanticSatiation::Actors::Recovery do
15
+ RSpec.describe Legion::Extensions::Agentic::Memory::SemanticSatiation::Actor::Recovery do
16
16
  subject(:actor) { described_class.new }
17
17
 
18
18
  it { expect(actor.runner_class).to eq(Legion::Extensions::Agentic::Memory::SemanticSatiation::Runners::SemanticSatiation) }
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Legion::Extensions::Agentic::Memory::Trace::Helpers::ErrorTracer do
6
+ # Capture originals before any example runs so we can restore after each
7
+ original_error = Legion::Logging.method(:error)
8
+ original_fatal = Legion::Logging.method(:fatal)
9
+
10
+ before do
11
+ # Reset state between examples
12
+ described_class.instance_variable_set(:@active, nil)
13
+ described_class.instance_variable_set(:@recent, nil)
14
+ described_class.instance_variable_set(:@runner, nil)
15
+ end
16
+
17
+ after do
18
+ # Restore logging singleton methods to prevent cross-test side effects
19
+ Legion::Logging.define_singleton_method(:error, &original_error)
20
+ Legion::Logging.define_singleton_method(:fatal, &original_fatal)
21
+ end
22
+
23
+ describe '.setup' do
24
+ it 'activates without raising' do
25
+ expect { described_class.setup }.not_to raise_error
26
+ expect(described_class.active?).to be true
27
+ end
28
+
29
+ it 'is idempotent' do
30
+ described_class.setup
31
+ described_class.setup
32
+ expect(described_class.active?).to be true
33
+ end
34
+ end
35
+
36
+ describe '.active?' do
37
+ it 'returns false before setup' do
38
+ expect(described_class.active?).to be false
39
+ end
40
+
41
+ it 'returns true after setup' do
42
+ described_class.setup
43
+ expect(described_class.active?).to be true
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-agentic-memory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -149,6 +149,20 @@ dependencies:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
151
  version: '1.60'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rubocop-legion
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.1'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '0.1'
152
166
  - !ruby/object:Gem::Dependency
153
167
  name: rubocop-rspec
154
168
  requirement: !ruby/object:Gem::Requirement
@@ -447,6 +461,7 @@ files:
447
461
  - spec/legion/extensions/agentic/memory/trace/batch_decay_spec.rb
448
462
  - spec/legion/extensions/agentic/memory/trace/client_spec.rb
449
463
  - spec/legion/extensions/agentic/memory/trace/helpers/decay_spec.rb
464
+ - spec/legion/extensions/agentic/memory/trace/helpers/error_tracer_spec.rb
450
465
  - spec/legion/extensions/agentic/memory/trace/helpers/hot_tier_spec.rb
451
466
  - spec/legion/extensions/agentic/memory/trace/helpers/postgres_store_spec.rb
452
467
  - spec/legion/extensions/agentic/memory/trace/helpers/snapshot_spec.rb