Module: Legion::Extensions::Agentic::Learning::Procedural::Runners::ProceduralLearning

Includes:
Helpers::Lex
Included in:
Client
Defined in:
lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb

Instance Method Summary collapse

Instance Method Details

#add_skill_production(skill_id:, condition:, action:, domain:) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 21

def add_skill_production(skill_id:, condition:, action:, domain:, **)
  result = engine.add_production(
    skill_id: skill_id, condition: condition,
    action: action, domain: domain
  )

  return result unless result.is_a?(Helpers::Production)

  log.debug '[procedural_learning] production added ' \
            "skill=#{skill_id[0..7]} condition=#{condition}"
  { success: true, production_id: result.id, skill_id: skill_id }
end

#autonomous_skillsObject



60
61
62
63
64
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 60

def autonomous_skills(**)
  skills = engine.autonomous_skills
  log.debug "[procedural_learning] autonomous count=#{skills.size}"
  { success: true, skills: skills.map(&:to_h), count: skills.size }
end

#compiled_skillsObject



54
55
56
57
58
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 54

def compiled_skills(**)
  skills = engine.compiled_skills
  log.debug "[procedural_learning] compiled count=#{skills.size}"
  { success: true, skills: skills.map(&:to_h), count: skills.size }
end

#create_skill(name:, domain:) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 13

def create_skill(name:, domain:, **)
  skill = engine.create_skill(name: name, domain: domain)
  log.debug "[procedural_learning] created skill=#{name} " \
            "domain=#{domain} id=#{skill.id[0..7]}"
  { success: true, skill_id: skill.id, name: name, domain: domain,
    proficiency: skill.proficiency, stage: skill.stage }
end

#execute_production(production_id:, success:) ⇒ Object



41
42
43
44
45
46
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 41

def execute_production(production_id:, success:, **)
  result = engine.execute_production(production_id: production_id, success: success)
  log.debug "[procedural_learning] execute production=#{production_id[0..7]} " \
            "success=#{success}"
  result
end

#most_practiced_skills(limit: 5) ⇒ Object



66
67
68
69
70
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 66

def most_practiced_skills(limit: 5, **)
  skills = engine.most_practiced(limit: limit)
  log.debug "[procedural_learning] most_practiced limit=#{limit}"
  { success: true, skills: skills.map(&:to_h), count: skills.size }
end

#practice_skill(skill_id:, success:) ⇒ Object



34
35
36
37
38
39
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 34

def practice_skill(skill_id:, success:, **)
  result = engine.practice_skill(skill_id: skill_id, success: success)
  log.debug "[procedural_learning] practice skill=#{skill_id[0..7]} " \
            "success=#{success} proficiency=#{result[:proficiency]&.round(3)}"
  result
end

#procedural_learning_statsObject



79
80
81
82
83
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 79

def procedural_learning_stats(**)
  stats = engine.to_h
  log.debug "[procedural_learning] stats total=#{stats[:total_skills]}"
  { success: true }.merge(stats)
end

#skill_assessment(skill_id:) ⇒ Object



48
49
50
51
52
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 48

def skill_assessment(skill_id:, **)
  result = engine.skill_assessment(skill_id: skill_id)
  log.debug "[procedural_learning] assessment skill=#{skill_id[0..7]}"
  result
end

#update_procedural_learningObject



72
73
74
75
76
77
# File 'lib/legion/extensions/agentic/learning/procedural/runners/procedural_learning.rb', line 72

def update_procedural_learning(**)
  engine.decay_all
  pruned = engine.prune_stale
  log.debug "[procedural_learning] decay+prune pruned=#{pruned}"
  { success: true, pruned: pruned }
end