Module: Legion::Extensions::Agentic::Self::Personality::Runners::Personality
- Includes:
- Helpers::Lex
- Included in:
- Client
- Defined in:
- lib/legion/extensions/agentic/self/personality/runners/personality.rb
Instance Method Summary collapse
- #describe_personality ⇒ Object
- #personality_compatibility(other_profile:) ⇒ Object
- #personality_profile ⇒ Object
- #personality_stats ⇒ Object
- #trait_detail(trait:) ⇒ Object
- #update_personality(tick_results: {}) ⇒ Object
Instance Method Details
#describe_personality ⇒ Object
37 38 39 40 41 42 |
# File 'lib/legion/extensions/agentic/self/personality/runners/personality.rb', line 37 def describe_personality(**) { description: personality_store.full_description, formed: personality_store.model.formed? } end |
#personality_compatibility(other_profile:) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/legion/extensions/agentic/self/personality/runners/personality.rb', line 58 def personality_compatibility(other_profile:, **) score = personality_store.compatibility_score(other_profile) { compatibility: score, interpretation: interpret_compatibility(score) } end |
#personality_profile ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/legion/extensions/agentic/self/personality/runners/personality.rb', line 25 def personality_profile(**) model = personality_store.model { traits: model.profile, formed: model.formed?, stability: model.stability, dominant: model.dominant_trait, observations: model.observation_count, history_size: model.history.size } end |
#personality_stats ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/legion/extensions/agentic/self/personality/runners/personality.rb', line 66 def personality_stats(**) model = personality_store.model { observation_count: model.observation_count, formed: model.formed?, stability: model.stability, dominant_trait: model.dominant_trait, profile: model.profile, history_size: model.history.size, trait_trends: Helpers::Constants::TRAITS.to_h { |t| [t, model.trend(t)] } } end |
#trait_detail(trait:) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/legion/extensions/agentic/self/personality/runners/personality.rb', line 44 def trait_detail(trait:, **) model = personality_store.model value = model.trait(trait) return { trait: trait.to_sym, error: :unknown_trait } unless value { trait: trait.to_sym, value: value.round(3), level: model.trait_level(trait), description: model.describe(trait), trend: model.trend(trait) } end |
#update_personality(tick_results: {}) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/legion/extensions/agentic/self/personality/runners/personality.rb', line 12 def update_personality(tick_results: {}, **) personality_store.update(tick_results) model = personality_store.model { updated: true, observation_count: model.observation_count, formed: model.formed?, profile: model.profile, dominant_trait: model.dominant_trait } end |