Class: Legion::Extensions::Agentic::Integration::Qualia::Helpers::Quale
- Inherits:
-
Object
- Object
- Legion::Extensions::Agentic::Integration::Qualia::Helpers::Quale
show all
- Includes:
- Constants
- Defined in:
- lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb
Constant Summary
Constants included
from Constants
Constants::DEFAULT_TEXTURE, Constants::DEFAULT_VALENCE, Constants::DEFAULT_VIVIDNESS, Constants::FAINT_THRESHOLD, Constants::INTENSE_THRESHOLD, Constants::MAX_EXPERIENCES, Constants::MAX_PALETTE_SIZE, Constants::MODALITIES, Constants::PHENOMENAL_QUALITIES, Constants::RICHNESS_LABELS, Constants::TEXTURE_TYPES, Constants::VALENCE_LABELS, Constants::VIVIDNESS_BOOST, Constants::VIVIDNESS_DECAY, Constants::VIVIDNESS_LABELS, Constants::VIVID_THRESHOLD
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Constants
label_for
Constructor Details
#initialize(content:, modality: :abstract, quality: :smooth, texture: :fluid, vividness: DEFAULT_VIVIDNESS, valence: DEFAULT_VALENCE) ⇒ Quale
Returns a new instance of Quale.
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 18
def initialize(content:, modality: :abstract, quality: :smooth, texture: :fluid,
vividness: DEFAULT_VIVIDNESS, valence: DEFAULT_VALENCE)
@id = SecureRandom.uuid
@content = content.to_s
@modality = valid_modality(modality)
@quality = valid_quality(quality)
@texture = valid_texture(texture)
@vividness = vividness.to_f.clamp(0.0, 1.0).round(10)
@original_vividness = @vividness
@valence = valence.to_f.clamp(-1.0, 1.0).round(10)
@created_at = Time.now
end
|
Instance Attribute Details
#content ⇒ Object
Returns the value of attribute content.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def content
@content
end
|
#created_at ⇒ Object
Returns the value of attribute created_at.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def created_at
@created_at
end
|
#id ⇒ Object
Returns the value of attribute id.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def id
@id
end
|
#modality ⇒ Object
Returns the value of attribute modality.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def modality
@modality
end
|
#original_vividness ⇒ Object
Returns the value of attribute original_vividness.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def original_vividness
@original_vividness
end
|
#quality ⇒ Object
Returns the value of attribute quality.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def quality
@quality
end
|
#texture ⇒ Object
Returns the value of attribute texture.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def texture
@texture
end
|
#valence ⇒ Object
Returns the value of attribute valence.
14
15
16
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 14
def valence
@valence
end
|
#vividness ⇒ Object
Returns the value of attribute vividness.
16
17
18
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 16
def vividness
@vividness
end
|
Instance Method Details
#fade! ⇒ Object
36
37
38
39
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 36
def fade!
@vividness = (@vividness - VIVIDNESS_DECAY).clamp(0.0, 1.0).round(10)
self
end
|
#faint? ⇒ Boolean
42
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 42
def faint? = @vividness <= FAINT_THRESHOLD
|
#intense? ⇒ Boolean
43
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 43
def intense? = @vividness >= INTENSE_THRESHOLD
|
#intensify!(amount: VIVIDNESS_BOOST) ⇒ Object
31
32
33
34
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 31
def intensify!(amount: VIVIDNESS_BOOST)
@vividness = (@vividness + amount).clamp(0.0, 1.0).round(10)
self
end
|
#neutral_valence? ⇒ Boolean
46
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 46
def neutral_valence? = @valence.abs <= 0.2
|
#persistence ⇒ Object
55
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 55
def persistence = (@vividness / [@original_vividness, 0.01].max).clamp(0.0, 1.0).round(10)
|
#phenomenal_richness ⇒ Object
48
49
50
51
52
53
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 48
def phenomenal_richness
base = @vividness * 0.5
quality_bonus = PHENOMENAL_QUALITIES.index(@quality).to_f / PHENOMENAL_QUALITIES.size * 0.25
texture_bonus = TEXTURE_TYPES.index(@texture).to_f / TEXTURE_TYPES.size * 0.25
(base + quality_bonus + texture_bonus).clamp(0.0, 1.0).round(10)
end
|
#pleasant? ⇒ Boolean
44
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 44
def pleasant? = @valence > 0.2
|
#richness_label ⇒ Object
58
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 58
def richness_label = Constants.label_for(RICHNESS_LABELS, phenomenal_richness)
|
#to_h ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 60
def to_h
{
id: @id,
content: @content,
modality: @modality,
quality: @quality,
texture: @texture,
vividness: @vividness,
original_vividness: @original_vividness,
valence: @valence,
phenomenal_richness: phenomenal_richness,
vivid: vivid?,
faint: faint?,
intense: intense?,
vividness_label: vividness_label,
valence_label: valence_label,
persistence: persistence,
created_at: @created_at.iso8601
}
end
|
#unpleasant? ⇒ Boolean
45
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 45
def unpleasant? = @valence < -0.2
|
#vivid? ⇒ Boolean
41
|
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 41
def vivid? = @vividness >= VIVID_THRESHOLD
|
#vividness_label ⇒ Object