Module: Legion::Extensions::Agentic::Homeostasis::Surplus::Runners::Surplus
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb
Instance Method Summary collapse
- #allocate_surplus(activity_type:, amount: Helpers::Constants::SURPLUS_THRESHOLD) ⇒ Object
- #commit_capacity(amount:) ⇒ Object
- #deplete_surplus(amount:) ⇒ Object
- #release_surplus(allocation_id:) ⇒ Object
- #replenish_surplus ⇒ Object
- #surplus_allocations ⇒ Object
- #surplus_status ⇒ Object
- #uncommit_capacity(amount:) ⇒ Object
Instance Method Details
#allocate_surplus(activity_type:, amount: Helpers::Constants::SURPLUS_THRESHOLD) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 20 def allocate_surplus(activity_type:, amount: Helpers::Constants::SURPLUS_THRESHOLD, **) result = surplus_engine.allocate!(activity_type: activity_type, amount: amount) if result[:allocated] log.info("[cognitive_surplus] allocated #{amount.round(2)} to " \ "#{activity_type} quality=#{result[:quality].round(2)} id=#{result[:allocation_id][0..7]}") else log.debug("[cognitive_surplus] allocate failed: #{result[:reason]}") end result end |
#commit_capacity(amount:) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 41 def commit_capacity(amount:, **) result = surplus_engine.commit!(amount: amount) log.debug("[cognitive_surplus] committed #{amount.round(2)} committed=#{result[:committed].round(2)} " \ "surplus=#{result[:available_surplus].round(2)}") result end |
#deplete_surplus(amount:) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 62 def deplete_surplus(amount:, **) result = surplus_engine.deplete!(amount: amount) log.debug("[cognitive_surplus] depleted amount=#{result[:amount].round(2)} " \ "surplus=#{result[:available_surplus].round(2)}") result end |
#release_surplus(allocation_id:) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 31 def release_surplus(allocation_id:, **) result = surplus_engine.release!(allocation_id: allocation_id) if result[:released] log.info("[cognitive_surplus] released allocation #{allocation_id[0..7]} amount=#{result[:amount].round(2)}") else log.debug("[cognitive_surplus] release failed: #{result[:reason]} id=#{allocation_id[0..7]}") end result end |
#replenish_surplus ⇒ Object
55 56 57 58 59 60 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 55 def replenish_surplus(**) result = surplus_engine.replenish! log.debug("[cognitive_surplus] replenished gained=#{result[:gained].round(2)} " \ "surplus=#{result[:available_surplus].round(2)}") result end |
#surplus_allocations ⇒ Object
69 70 71 72 73 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 69 def surplus_allocations(**) allocations = surplus_engine.allocations.values.select(&:active?).map(&:to_h) log.debug("[cognitive_surplus] allocations count=#{allocations.size}") { allocations: allocations, count: allocations.size } end |
#surplus_status ⇒ Object
13 14 15 16 17 18 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 13 def surplus_status(**) report = surplus_engine.surplus_report log.debug("[cognitive_surplus] status surplus=#{report[:available_surplus].round(2)} " \ "label=#{report[:surplus_label]} quality=#{report[:quality_label]}") report end |
#uncommit_capacity(amount:) ⇒ Object
48 49 50 51 52 53 |
# File 'lib/legion/extensions/agentic/homeostasis/surplus/runners/surplus.rb', line 48 def uncommit_capacity(amount:, **) result = surplus_engine.uncommit!(amount: amount) log.debug("[cognitive_surplus] uncommitted #{amount.round(2)} committed=#{result[:committed].round(2)} " \ "surplus=#{result[:available_surplus].round(2)}") result end |