Module: Legion::Extensions::Agentic::Homeostasis::Hourglass::Runners::CognitiveHourglass
- Extended by:
- CognitiveHourglass
- Includes:
- Helpers::Lex
- Included in:
- Client, CognitiveHourglass
- Defined in:
- lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb
Instance Method Summary collapse
- #create_grain(grain_type: :attention, domain: nil, content: nil, weight: 1.0, engine: nil) ⇒ Object
- #create_hourglass(domain: nil, grain_type: :attention, top_level: 1.0, neck_width: 0.5, bottom_level: 0.0, engine: nil) ⇒ Object
- #flip(hourglass_id:, engine: nil) ⇒ Object
- #flow_tick(rate: Helpers::Constants::FLOW_RATE, engine: nil) ⇒ Object
- #list_hourglasses(engine: nil) ⇒ Object
- #time_status(engine: nil) ⇒ Object
Instance Method Details
#create_grain(grain_type: :attention, domain: nil, content: nil, weight: 1.0, engine: nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb', line 15 def create_grain(grain_type: :attention, domain: nil, content: nil, weight: 1.0, engine: nil, **) eng = engine || hourglass_engine grain = eng.create_grain( grain_type: grain_type.to_sym, domain: domain, content: content, weight: weight.to_f ) log.debug("[cognitive_hourglass] grain created: type=#{grain_type} domain=#{domain} weight=#{grain.weight}") { success: true, grain: grain.to_h } rescue ArgumentError => e log.error("[cognitive_hourglass] create_grain failed: #{e.}") { success: false, error: e. } end |
#create_hourglass(domain: nil, grain_type: :attention, top_level: 1.0, neck_width: 0.5, bottom_level: 0.0, engine: nil) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb', line 31 def create_hourglass(domain: nil, grain_type: :attention, top_level: 1.0, neck_width: 0.5, bottom_level: 0.0, engine: nil, **) eng = engine || hourglass_engine hourglass = eng.create_hourglass( domain: domain, grain_type: grain_type.to_sym, top_level: top_level.to_f, neck_width: neck_width.to_f, bottom_level: bottom_level.to_f ) log.debug("[cognitive_hourglass] hourglass created: id=#{hourglass.id} " \ "domain=#{domain} grain_type=#{grain_type} top=#{hourglass.top_level}") { success: true, hourglass: hourglass.to_h } rescue ArgumentError => e log.error("[cognitive_hourglass] create_hourglass failed: #{e.}") { success: false, error: e. } end |
#flip(hourglass_id:, engine: nil) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb', line 60 def flip(hourglass_id:, engine: nil, **) eng = engine || hourglass_engine hourglass = eng.flip(hourglass_id) log.debug("[cognitive_hourglass] flipped: id=#{hourglass_id} top=#{hourglass.top_level}") { success: true, hourglass: hourglass.to_h } rescue ArgumentError => e log.error("[cognitive_hourglass] flip failed: #{e.}") { success: false, error: e. } end |
#flow_tick(rate: Helpers::Constants::FLOW_RATE, engine: nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb', line 49 def flow_tick(rate: Helpers::Constants::FLOW_RATE, engine: nil, **) eng = engine || hourglass_engine result = eng.flow_tick(rate.to_f) log.debug("[cognitive_hourglass] flow_tick: ticked=#{result[:ticked]} " \ "expired=#{result[:expired]} blocked=#{result[:blocked]}") result.merge(success: true) rescue ArgumentError => e log.error("[cognitive_hourglass] flow_tick failed: #{e.}") { success: false, error: e. } end |
#list_hourglasses(engine: nil) ⇒ Object
70 71 72 73 74 75 76 77 78 |
# File 'lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb', line 70 def list_hourglasses(engine: nil, **) eng = engine || hourglass_engine list = eng.hourglasses.values.map(&:to_h) log.debug("[cognitive_hourglass] list_hourglasses: count=#{list.size}") { success: true, hourglasses: list, count: list.size } rescue ArgumentError => e log.error("[cognitive_hourglass] list_hourglasses failed: #{e.}") { success: false, error: e. } end |
#time_status(engine: nil) ⇒ Object
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/legion/extensions/agentic/homeostasis/hourglass/runners/cognitive_hourglass.rb', line 80 def time_status(engine: nil, **) eng = engine || hourglass_engine report = eng.flow_report log.debug("[cognitive_hourglass] time_status: total=#{report[:total]} " \ "flowing=#{report[:flowing]} empty=#{report[:empty]}") report.merge(success: true) rescue ArgumentError => e log.error("[cognitive_hourglass] time_status failed: #{e.}") { success: false, error: e. } end |