Module: Legion::Extensions::Agentic::Memory::EchoChamber::Runners::CognitiveEchoChamber
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb
Instance Method Summary collapse
- #amplify(echo_id:, rate: 0.1, engine: nil) ⇒ Object
- #chamber_status(engine: nil) ⇒ Object
- #create_chamber(label:, domain: :general, wall_thickness: 0.5, engine: nil) ⇒ Object
- #create_echo(content:, echo_type: :belief, domain: :general, source_agent: nil, amplitude: 0.5, engine: nil) ⇒ Object
- #decay_all(engine: nil) ⇒ Object
- #disrupt(chamber_id:, force:, engine: nil) ⇒ Object
- #list_echoes(echo_type: nil, domain: nil, engine: nil) ⇒ Object
Instance Method Details
#amplify(echo_id:, rate: 0.1, engine: nil) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 41 def amplify(echo_id:, rate: 0.1, engine: nil, **) eng = engine || default_engine echo = eng.amplify_echo(echo_id: echo_id, rate: rate) return { success: false, error: 'echo not found' } unless echo log.debug("[cognitive_echo_chamber] amplified echo=#{echo_id} amplitude=#{echo.amplitude}") { success: true, echo: echo.to_h } end |
#chamber_status(engine: nil) ⇒ Object
74 75 76 77 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 74 def chamber_status(engine: nil, **) eng = engine || default_engine { success: true, **eng.echo_report } end |
#create_chamber(label:, domain: :general, wall_thickness: 0.5, engine: nil) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 30 def create_chamber(label:, domain: :general, wall_thickness: 0.5, engine: nil, **) raise ArgumentError, 'label cannot be empty' if label.to_s.strip.empty? eng = engine || default_engine chamber = eng.create_chamber(label: label, domain: domain, wall_thickness: wall_thickness) log.debug("[cognitive_echo_chamber] chamber created id=#{chamber.id} label=#{label}") { success: true, chamber: chamber.to_h } rescue ArgumentError => e { success: false, error: e. } end |
#create_echo(content:, echo_type: :belief, domain: :general, source_agent: nil, amplitude: 0.5, engine: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 12 def create_echo(content:, echo_type: :belief, domain: :general, source_agent: nil, amplitude: 0.5, engine: nil, **) raise ArgumentError, 'content cannot be empty' if content.to_s.strip.empty? eng = engine || default_engine echo = eng.create_echo( content: content, echo_type: echo_type, domain: domain, source_agent: source_agent, amplitude: amplitude ) log.debug("[cognitive_echo_chamber] echo created id=#{echo.id} type=#{echo_type} domain=#{domain}") { success: true, echo: echo.to_h } rescue ArgumentError => e { success: false, error: e. } end |
#decay_all(engine: nil) ⇒ Object
68 69 70 71 72 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 68 def decay_all(engine: nil, **) eng = engine || default_engine eng.decay_all! { success: true, **eng.echo_report } end |
#disrupt(chamber_id:, force:, engine: nil) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 50 def disrupt(chamber_id:, force:, engine: nil, **) eng = engine || default_engine result = eng.disrupt_chamber(chamber_id: chamber_id, force: force) log.debug("[cognitive_echo_chamber] disrupt chamber=#{chamber_id} success=#{result[:success]}") result end |
#list_echoes(echo_type: nil, domain: nil, engine: nil) ⇒ Object
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/legion/extensions/agentic/memory/echo_chamber/runners/cognitive_echo_chamber.rb', line 57 def list_echoes(echo_type: nil, domain: nil, engine: nil, **) eng = engine || default_engine echoes = if echo_type eng.echoes_by_type(echo_type: echo_type) else eng.active_echoes end echoes = echoes.select { |e| e.domain == domain.to_sym } if domain { success: true, echoes: echoes.map(&:to_h), count: echoes.size } end |