Module: Legion::Extensions::Agentic::Defense::Friction::Runners::CognitiveFriction

Includes:
Helpers::Constants, Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb

Constant Summary

Constants included from Helpers::Constants

Helpers::Constants::DEFAULT_FRICTION, Helpers::Constants::FRICTION_BOOST, Helpers::Constants::FRICTION_DECAY, Helpers::Constants::FRICTION_LABELS, Helpers::Constants::INERTIA_THRESHOLD, Helpers::Constants::MAX_TRANSITIONS, Helpers::Constants::MOMENTUM_THRESHOLD, Helpers::Constants::STATE_TYPES, Helpers::Constants::TRANSITION_OUTCOMES

Instance Method Summary collapse

Instance Method Details

#attempt_transition(to_state:, engine: nil, force: 0.5) ⇒ Object



32
33
34
35
36
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 32

def attempt_transition(to_state:, engine: nil, force: 0.5, **)
  eng = engine || default_engine
  transition = eng.attempt_transition(to_state: to_state, force: force)
  { success: true, transition: transition.to_h, current_state: eng.current_state }
end

#average_friction(engine: nil) ⇒ Object



55
56
57
58
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 55

def average_friction(engine: nil, **)
  eng = engine || default_engine
  { success: true, average_friction: eng.average_friction }
end

#force_transition(to_state:, engine: nil) ⇒ Object



38
39
40
41
42
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 38

def force_transition(to_state:, engine: nil, **)
  eng = engine || default_engine
  transition = eng.force_transition(to_state: to_state)
  { success: true, transition: transition.to_h, current_state: eng.current_state }
end

#friction_report(engine: nil) ⇒ Object



66
67
68
69
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 66

def friction_report(engine: nil, **)
  eng = engine || default_engine
  { success: true, report: eng.friction_report }
end

#get_friction(from_state:, to_state:, engine: nil) ⇒ Object



26
27
28
29
30
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 26

def get_friction(from_state:, to_state:, engine: nil, **)
  eng = engine || default_engine
  friction = eng.get_friction(from_state: from_state, to_state: to_state)
  { success: true, from_state: from_state, to_state: to_state, friction: friction }
end

#highest_friction_paths(engine: nil, limit: 5) ⇒ Object



60
61
62
63
64
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 60

def highest_friction_paths(engine: nil, limit: 5, **)
  eng = engine || default_engine
  paths = eng.highest_friction_paths(limit: limit)
  { success: true, paths: paths, count: paths.size }
end

#set_current_state(state:, engine: nil) ⇒ Object



14
15
16
17
18
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 14

def set_current_state(state:, engine: nil, **)
  eng = engine || default_engine
  eng.set_current_state(state: state)
  { success: true, state: eng.current_state }
end

#set_friction(from_state:, to_state:, friction:, engine: nil) ⇒ Object



20
21
22
23
24
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 20

def set_friction(from_state:, to_state:, friction:, engine: nil, **)
  eng = engine || default_engine
  eng.set_friction(from_state: from_state, to_state: to_state, friction: friction)
  { success: true, from_state: from_state, to_state: to_state, friction: friction }
end

#success_rate(engine: nil) ⇒ Object



50
51
52
53
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 50

def success_rate(engine: nil, **)
  eng = engine || default_engine
  { success: true, success_rate: eng.success_rate }
end

#transition_history(engine: nil, limit: 10) ⇒ Object



44
45
46
47
48
# File 'lib/legion/extensions/agentic/defense/friction/runners/cognitive_friction.rb', line 44

def transition_history(engine: nil, limit: 10, **)
  eng = engine || default_engine
  history = eng.transition_history(limit: limit).map(&:to_h)
  { success: true, history: history, count: history.size }
end