Module: Legion::Extensions::Agentic::Inference::Affordance::Runners::Affordance
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb
Instance Method Summary collapse
- #actionable_affordances ⇒ Object
- #affordance_stats ⇒ Object
- #affordances_in_domain(domain:) ⇒ Object
- #current_threats ⇒ Object
- #detect_affordance(action:, domain:, affordance_type:, requires: [], relevance: nil) ⇒ Object
- #evaluate_action(action:, domain:) ⇒ Object
- #register_capability(name:, domain: :general, level: 1.0) ⇒ Object
- #set_environment(property:, value:, domain: :general) ⇒ Object
- #update_affordances ⇒ Object
Instance Method Details
#actionable_affordances ⇒ Object
53 54 55 56 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 53 def actionable_affordances(**) items = field.actionable_affordances { success: true, affordances: items, count: items.size } end |
#affordance_stats ⇒ Object
74 75 76 77 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 74 def affordance_stats(**) log.debug '[affordance] stats' { success: true, stats: field.to_h } end |
#affordances_in_domain(domain:) ⇒ Object
63 64 65 66 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 63 def affordances_in_domain(domain:, **) items = field.affordances_in(domain: domain) { success: true, affordances: items, count: items.size } end |
#current_threats ⇒ Object
58 59 60 61 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 58 def current_threats(**) items = field.threats { success: true, threats: items, count: items.size } end |
#detect_affordance(action:, domain:, affordance_type:, requires: [], relevance: nil) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 33 def detect_affordance(action:, domain:, affordance_type:, requires: [], relevance: nil, **) rel = relevance || Helpers::Constants::DEFAULT_RELEVANCE log.debug "[affordance] detect: #{action} type=#{affordance_type}" aff = field.detect_affordance( action: action, domain: domain, affordance_type: affordance_type.to_sym, requires: requires, relevance: rel ) if aff { success: true, affordance: aff.to_h } else { success: false, reason: :invalid_or_full } end end |
#evaluate_action(action:, domain:) ⇒ Object
47 48 49 50 51 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 47 def evaluate_action(action:, domain:, **) result = field.evaluate_action(action: action, domain: domain) log.debug "[affordance] evaluate: #{action} feasible=#{result[:feasible]}" { success: true, **result } end |
#register_capability(name:, domain: :general, level: 1.0) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 13 def register_capability(name:, domain: :general, level: 1.0, **) log.debug "[affordance] capability: #{name} domain=#{domain}" cap = field.register_capability(name: name, domain: domain, level: level) if cap { success: true, capability: name, capabilities: field.capabilities.size } else { success: false, reason: :limit_reached } end end |
#set_environment(property:, value:, domain: :general) ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 23 def set_environment(property:, value:, domain: :general, **) log.debug "[affordance] env: #{property}=#{value}" result = field.set_environment(property: property, value: value, domain: domain) if result { success: true, property: property } else { success: false, reason: :limit_reached } end end |
#update_affordances ⇒ Object
68 69 70 71 72 |
# File 'lib/legion/extensions/agentic/inference/affordance/runners/affordance.rb', line 68 def update_affordances(**) log.debug '[affordance] tick' field.decay_all { success: true, remaining: field.affordances.size } end |