Module: Smith::Context::ObservationMasking

Defined in:
lib/smith/context/observation_masking.rb

Constant Summary collapse

SYSTEM_ROLES =
%i[system].push("system").freeze

Class Method Summary collapse

Class Method Details

.apply(messages, strategy:, seed_message_count: 0) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/smith/context/observation_masking.rb', line 8

def self.apply(messages, strategy:, seed_message_count: 0)
  return messages unless strategy

  window = strategy[:window]
  return messages unless window

  prefix_count = strategy[:preserve_seed] == true ? seed_message_count : 0
  prefix = messages.first(prefix_count)
  dynamic_messages = messages.drop(prefix_count)

  prefix + system_messages(dynamic_messages) + recent_observations(dynamic_messages, window)
end