Module: Legion::Extensions::Agentic::Homeostasis::Weathering::Helpers::Constants

Included in:
Stressor, WeatheringEngine
Defined in:
lib/legion/extensions/agentic/homeostasis/weathering/helpers/constants.rb

Constant Summary collapse

MAX_STRESSORS =
200
MAX_EVENTS =
500
DEFAULT_INTEGRITY =
1.0
WEAR_RATE =
0.02
RECOVERY_RATE =
0.01
TEMPERING_RATE =
0.03
TEMPERING_THRESHOLD =
0.4
CRITICAL_INTEGRITY =
0.3
BREAKDOWN_INTEGRITY =
0.1
STRESSOR_TYPES =
%i[
  cognitive_overload
  emotional_strain
  decision_fatigue
  conflict_exposure
  uncertainty
  time_pressure
  monotony
  complexity
].freeze
INTEGRITY_LABELS =
[
  { range: (0.8..1.0),  label: 'pristine' },
  { range: (0.6...0.8), label: 'strong'   },
  { range: (0.4...0.6), label: 'worn'     },
  { range: (0.2...0.4), label: 'fragile'  },
  { range: (0.0...0.2), label: 'breaking' }
].freeze
WEATHERING_LABELS =
[
  { range: (0.7..1.0),  label: 'tempered' },
  { range: (0.5...0.7), label: 'resilient'  },
  { range: (0.3...0.5), label: 'stable'     },
  { range: (0.1...0.3), label: 'weathered'  },
  { range: (0.0...0.1), label: 'eroded'     }
].freeze

Class Method Summary collapse

Class Method Details

.integrity_label(integrity) ⇒ Object



51
52
53
54
# File 'lib/legion/extensions/agentic/homeostasis/weathering/helpers/constants.rb', line 51

def integrity_label(integrity)
  entry = INTEGRITY_LABELS.find { |e| e[:range].cover?(integrity) }
  entry ? entry[:label] : 'breaking'
end

.weathering_label(tempering_level) ⇒ Object



56
57
58
59
# File 'lib/legion/extensions/agentic/homeostasis/weathering/helpers/constants.rb', line 56

def weathering_label(tempering_level)
  entry = WEATHERING_LABELS.find { |e| e[:range].cover?(tempering_level) }
  entry ? entry[:label] : 'eroded'
end