Module: Legion::Extensions::Agentic::Executive::Flexibility::Runners::CognitiveFlexibility
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb
Instance Method Summary collapse
- #add_rule(set_id:, type:, condition:, action:) ⇒ Object
- #available_sets ⇒ Object
- #cognitive_flexibility_stats ⇒ Object
- #create_task_set(name:, domain: :general) ⇒ Object
- #current_task_set ⇒ Object
- #flexibility_level ⇒ Object
- #switch_set(set_id:) ⇒ Object
- #update_cognitive_flexibility ⇒ Object
Instance Method Details
#add_rule(set_id:, type:, condition:, action:) ⇒ Object
19 20 21 22 23 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 19 def add_rule(set_id:, type:, condition:, action:, **) Legion::Logging.debug "[cognitive_flexibility] rule: set=#{set_id} type=#{type}" rule = engine.add_rule(set_id: set_id.to_sym, type: type.to_sym, condition: condition, action: action) rule ? { success: true, rule: rule } : { success: false, reason: :invalid } end |
#available_sets ⇒ Object
40 41 42 43 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 40 def available_sets(**) sets = engine.available_sets { success: true, sets: sets, count: sets.size } end |
#cognitive_flexibility_stats ⇒ Object
61 62 63 64 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 61 def cognitive_flexibility_stats(**) Legion::Logging.debug '[cognitive_flexibility] stats' { success: true, stats: engine.to_h } end |
#create_task_set(name:, domain: :general) ⇒ Object
13 14 15 16 17 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 13 def create_task_set(name:, domain: :general, **) Legion::Logging.debug "[cognitive_flexibility] create: #{name}" ts = engine.create_task_set(name: name, domain: domain) ts ? { success: true, task_set: ts.to_h } : { success: false, reason: :limit_reached } end |
#current_task_set ⇒ Object
35 36 37 38 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 35 def current_task_set(**) cs = engine.current_set cs ? { success: true, task_set: cs.to_h } : { success: true, task_set: nil } end |
#flexibility_level ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 45 def flexibility_level(**) { success: true, flexibility: engine.flexibility.round(4), label: engine.flexibility_label, perseverating: engine., switch_cost: engine.switch_cost.round(4) } end |
#switch_set(set_id:) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 25 def switch_set(set_id:, **) Legion::Logging.debug "[cognitive_flexibility] switch to #{set_id}" ts = engine.switch_to(set_id: set_id.to_sym) if ts { success: true, task_set: ts.to_h, switch_cost: engine.switch_cost.round(4) } else { success: false, reason: :not_found } end end |
#update_cognitive_flexibility ⇒ Object
55 56 57 58 59 |
# File 'lib/legion/extensions/agentic/executive/flexibility/runners/cognitive_flexibility.rb', line 55 def update_cognitive_flexibility(**) Legion::Logging.debug '[cognitive_flexibility] tick' engine.tick { success: true, switch_cost: engine.switch_cost.round(4) } end |