Module: Legion::Extensions::Agentic::Inference::Intuition::Runners::Intuition

Includes:
Helpers::Constants, Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb

Constant Summary

Constants included from Helpers::Constants

Helpers::Constants::CONFIDENCE_CEILING, Helpers::Constants::CONFIDENCE_FLOOR, Helpers::Constants::CONFIDENCE_LABELS, Helpers::Constants::DECAY_RATE, Helpers::Constants::DEFAULT_CONFIDENCE, Helpers::Constants::HEURISTIC_TYPES, Helpers::Constants::INTUITION_MODES, Helpers::Constants::MAX_HEURISTICS, Helpers::Constants::MAX_HISTORY, Helpers::Constants::MAX_PATTERNS, Helpers::Constants::PATTERN_STATES, Helpers::Constants::RECOGNITION_THRESHOLD, Helpers::Constants::REINFORCEMENT_RATE, Helpers::Constants::SPEED_MULTIPLIER, Helpers::Constants::STATE_THRESHOLDS

Instance Method Summary collapse

Instance Method Details

#add_intuitive_heuristic(name:, heuristic_type:, domain: :general) ⇒ Object



43
44
45
46
47
48
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 43

def add_intuitive_heuristic(name:, heuristic_type:, domain: :general, **)
  heuristic = engine.add_heuristic(name: name, heuristic_type: heuristic_type, domain: domain)
  return { success: false, reason: :limit_reached } unless heuristic

  { success: true, heuristic_id: heuristic.id }
end

#apply_intuitive_heuristic(heuristic_id:) ⇒ Object



50
51
52
53
54
55
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 50

def apply_intuitive_heuristic(heuristic_id:, **)
  result = engine.apply_heuristic(heuristic_id: heuristic_id)
  return { success: false, reason: :not_found } unless result

  { success: true }.merge(result)
end

#expert_intuitionsObject



62
63
64
65
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 62

def expert_intuitions(**)
  patterns = engine.expert_patterns
  { success: true, patterns: patterns, count: patterns.size }
end

#intuit_response(input_cue:, domain: nil) ⇒ Object



29
30
31
32
33
34
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 29

def intuit_response(input_cue:, domain: nil, **)
  result = engine.intuit(input_cue: input_cue, domain: domain)
  return { success: false, reason: :no_match } unless result

  { success: true }.merge(result)
end

#intuition_statsObject



72
73
74
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 72

def intuition_stats(**)
  { success: true }.merge(engine.to_h)
end

#intuitive_recognize(input_cue:, domain: nil) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 20

def intuitive_recognize(input_cue:, domain: nil, **)
  matches = engine.recognize(input_cue: input_cue, domain: domain)
  {
    success: true,
    matches: matches.map { |m| { pattern_id: m[:pattern].id, score: m[:score].round(4) } },
    count:   matches.size
  }
end

#learn_intuitive_pattern(cue:, response:, domain: :general, strength: DEFAULT_CONFIDENCE) ⇒ Object



13
14
15
16
17
18
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 13

def learn_intuitive_pattern(cue:, response:, domain: :general, strength: DEFAULT_CONFIDENCE, **)
  pattern = engine.learn_pattern(cue: cue, response: response, domain: domain, strength: strength)
  return { success: false, reason: :limit_reached } unless pattern

  { success: true, pattern_id: pattern.id, strength: pattern.strength }
end

#reinforce_intuition(pattern_id:, success:) ⇒ Object



36
37
38
39
40
41
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 36

def reinforce_intuition(pattern_id:, success:, **)
  result = engine.reinforce_pattern(pattern_id: pattern_id, success: success)
  return { success: false, reason: :not_found } unless result

  { success: true, pattern_id: pattern_id, strength: result.round(4) }
end

#reliable_intuitionsObject



57
58
59
60
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 57

def reliable_intuitions(**)
  patterns = engine.reliable_patterns
  { success: true, patterns: patterns, count: patterns.size }
end

#update_intuitionObject



67
68
69
70
# File 'lib/legion/extensions/agentic/inference/intuition/runners/intuition.rb', line 67

def update_intuition(**)
  engine.decay_all
  { success: true }.merge(engine.to_h)
end