Class: Legion::Extensions::Agentic::Integration::Qualia::Helpers::Quale

Inherits:
Object
  • Object
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

#contentObject (readonly)

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_atObject (readonly)

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

#idObject (readonly)

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

#modalityObject (readonly)

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_vividnessObject (readonly)

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

#qualityObject (readonly)

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

#textureObject (readonly)

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

#valenceObject (readonly)

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

#vividnessObject

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

Returns:

  • (Boolean)


42
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 42

def faint? = @vividness <= FAINT_THRESHOLD

#intense?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


46
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 46

def neutral_valence? = @valence.abs <= 0.2

#persistenceObject



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_richnessObject



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

Returns:

  • (Boolean)


44
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 44

def pleasant? = @valence > 0.2

#richness_labelObject



58
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 58

def richness_label = Constants.label_for(RICHNESS_LABELS, phenomenal_richness)

#to_hObject



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

Returns:

  • (Boolean)


45
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 45

def unpleasant? = @valence < -0.2

#valence_labelObject



57
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 57

def valence_label = Constants.label_for(VALENCE_LABELS, @valence)

#vivid?Boolean

Returns:

  • (Boolean)


41
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 41

def vivid? = @vividness >= VIVID_THRESHOLD

#vividness_labelObject



56
# File 'lib/legion/extensions/agentic/integration/qualia/helpers/quale.rb', line 56

def vividness_label = Constants.label_for(VIVIDNESS_LABELS, @vividness)