Class: Legion::Extensions::Agentic::Attention::Subliminal::Helpers::SubliminalTrace
- Inherits:
-
Object
- Object
- Legion::Extensions::Agentic::Attention::Subliminal::Helpers::SubliminalTrace
show all
- Includes:
- Constants
- Defined in:
- lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb
Constant Summary
Constants included
from Constants
Constants::ACCUMULATION_RATE, Constants::ACTIVATION_BOOST, Constants::ACTIVATION_DECAY, Constants::ACTIVATION_LABELS, Constants::CONSCIOUS_THRESHOLD, Constants::DEFAULT_ACTIVATION, Constants::EXTINCTION_THRESHOLD, Constants::INFLUENCE_LABELS, Constants::INFLUENCE_STRENGTH, Constants::INFLUENCE_TARGETS, Constants::MAX_INFLUENCES, Constants::MAX_INFLUENCE_PER_DOMAIN, Constants::MAX_TOTAL_INFLUENCE, Constants::MAX_TRACES, Constants::SATURATION_LABELS, Constants::SUBLIMINAL_CEILING, Constants::SUBLIMINAL_FLOOR, Constants::TRACE_TYPES
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Constants
label_for
Constructor Details
#initialize(content:, trace_type: :associative, domain: :general, activation: DEFAULT_ACTIVATION, influence_target: :attention) ⇒ SubliminalTrace
Returns a new instance of SubliminalTrace.
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 18
def initialize(content:, trace_type: :associative, domain: :general, activation: DEFAULT_ACTIVATION,
influence_target: :attention)
@id = SecureRandom.uuid
@content = content.to_s
@trace_type = valid_trace_type(trace_type)
@domain = domain.to_sym
@activation = activation.to_f.clamp(SUBLIMINAL_FLOOR, SUBLIMINAL_CEILING).round(10)
@original_activation = @activation
@influence_target = valid_influence_target(influence_target)
@influence_count = 0
@created_at = Time.now
end
|
Instance Attribute Details
#activation ⇒ Object
Returns the value of attribute activation.
16
17
18
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 16
def activation
@activation
end
|
#content ⇒ Object
Returns the value of attribute content.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.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/attention/subliminal/helpers/subliminal_trace.rb', line 14
def created_at
@created_at
end
|
#domain ⇒ Object
Returns the value of attribute domain.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 14
def domain
@domain
end
|
#id ⇒ Object
Returns the value of attribute id.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 14
def id
@id
end
|
#influence_count ⇒ Object
Returns the value of attribute influence_count.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 14
def influence_count
@influence_count
end
|
#influence_target ⇒ Object
Returns the value of attribute influence_target.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 14
def influence_target
@influence_target
end
|
#original_activation ⇒ Object
Returns the value of attribute original_activation.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 14
def original_activation
@original_activation
end
|
#trace_type ⇒ Object
Returns the value of attribute trace_type.
14
15
16
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 14
def trace_type
@trace_type
end
|
Instance Method Details
#activation_label ⇒ Object
#active? ⇒ Boolean
52
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 52
def active? = @activation >= SUBLIMINAL_FLOOR
|
#boost!(amount: ACTIVATION_BOOST) ⇒ Object
31
32
33
34
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 31
def boost!(amount: ACTIVATION_BOOST)
@activation = (@activation + amount).clamp(0.0, SUBLIMINAL_CEILING).round(10)
self
end
|
#breached_threshold? ⇒ Boolean
56
57
58
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 56
def breached_threshold?
@activation >= CONSCIOUS_THRESHOLD
end
|
#decay! ⇒ Object
36
37
38
39
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 36
def decay!
@activation = (@activation - ACTIVATION_DECAY).clamp(0.0, 1.0).round(10)
self
end
|
#exert_influence! ⇒ Object
41
42
43
44
45
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 41
def exert_influence!
@influence_count += 1
@activation = (@activation - (INFLUENCE_STRENGTH * 0.5)).clamp(0.0, 1.0).round(10)
influence_magnitude
end
|
#extinct? ⇒ Boolean
53
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 53
def extinct? = @activation < EXTINCTION_THRESHOLD
|
#influence_label ⇒ Object
62
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 62
def influence_label = Constants.label_for(INFLUENCE_LABELS, influence_magnitude)
|
#influence_magnitude ⇒ Object
47
48
49
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 47
def influence_magnitude
(@activation * INFLUENCE_STRENGTH).clamp(0.0, MAX_INFLUENCE_PER_DOMAIN).round(10)
end
|
#near_threshold? ⇒ Boolean
51
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 51
def near_threshold? = @activation >= 0.3 && @activation < CONSCIOUS_THRESHOLD
|
#persistence ⇒ Object
60
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 60
def persistence = (@activation / @original_activation).clamp(0.0, 1.0).round(10)
|
#potent? ⇒ Boolean
54
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 54
def potent? = @activation >= 0.2
|
#to_h ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/legion/extensions/agentic/attention/subliminal/helpers/subliminal_trace.rb', line 64
def to_h
{
id: @id,
content: @content,
trace_type: @trace_type,
domain: @domain,
activation: @activation,
original_activation: @original_activation,
influence_target: @influence_target,
influence_count: @influence_count,
influence_magnitude: influence_magnitude,
near_threshold: near_threshold?,
active: active?,
extinct: extinct?,
activation_label: activation_label,
persistence: persistence,
created_at: @created_at.iso8601
}
end
|