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
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
-
#attempt_transition(to_state:, engine: nil, force: 0.5) ⇒ Object
-
#average_friction(engine: nil) ⇒ Object
-
#force_transition(to_state:, engine: nil) ⇒ Object
-
#friction_report(engine: nil) ⇒ Object
-
#get_friction(from_state:, to_state:, engine: nil) ⇒ Object
-
#highest_friction_paths(engine: nil, limit: 5) ⇒ Object
-
#set_current_state(state:, engine: nil) ⇒ Object
-
#set_friction(from_state:, to_state:, friction:, engine: nil) ⇒ Object
-
#success_rate(engine: nil) ⇒ Object
-
#transition_history(engine: nil, limit: 10) ⇒ Object
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
|