Module: Legion::Extensions::Agentic::Learning::Scaffolding::Runners::CognitiveScaffolding

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

Instance Method Summary collapse

Instance Method Details

#adjust_scaffold_support(scaffold_id:, direction:) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 64

def adjust_scaffold_support(scaffold_id:, direction:, **)
  scaffold = engine.adjust_support(scaffold_id: scaffold_id, direction: direction)
  unless scaffold
    log.debug "[cognitive_scaffolding] adjust_support: scaffold_id=#{scaffold_id} not found"
    return { success: false, reason: :not_found, scaffold_id: scaffold_id }
  end

  log.debug "[cognitive_scaffolding] adjust_support: skill=#{scaffold.skill_name} " \
            "direction=#{direction} support=#{scaffold.support_level}"
  { success: true, scaffold: scaffold.to_h }
end

#attempt_scaffolded_task(scaffold_id:, difficulty:, success:) ⇒ Object



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

def attempt_scaffolded_task(scaffold_id:, difficulty:, success:, **)
  scaffold = engine.attempt_scaffolded_task(scaffold_id: scaffold_id, difficulty: difficulty, success: success)
  unless scaffold
    log.debug "[cognitive_scaffolding] attempt: scaffold_id=#{scaffold_id} not found"
    return { success: false, reason: :not_found, scaffold_id: scaffold_id }
  end

  log.debug "[cognitive_scaffolding] attempt: skill=#{scaffold.skill_name} " \
            "difficulty=#{difficulty.round(2)} success=#{success} " \
            "competence=#{scaffold.competence.round(2)} zone=#{scaffold.current_zone}"
  { success: true, scaffold: scaffold.to_h }
end

#cognitive_scaffolding_statsObject



89
90
91
92
93
94
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 89

def cognitive_scaffolding_stats(**)
  stats = engine.to_h
  log.debug "[cognitive_scaffolding] stats: total=#{stats[:total_scaffolds]} " \
            "mastered=#{stats[:mastered_count]} zpd=#{stats[:zpd_count]}"
  { success: true, stats: stats }
end

#create_scaffold(skill_name:, domain:, competence: nil) ⇒ Object



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

def create_scaffold(skill_name:, domain:, competence: nil, **)
  comp = competence || Helpers::Constants::DEFAULT_COMPETENCE
  scaffold = engine.create_scaffold(skill_name: skill_name, domain: domain, competence: comp)
  log.debug "[cognitive_scaffolding] created: skill=#{skill_name} domain=#{domain} " \
            "competence=#{scaffold.competence.round(2)} zone=#{scaffold.current_zone}"
  { success: true, scaffold: scaffold.to_h }
end

#domain_scaffolds(domain:) ⇒ Object



58
59
60
61
62
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 58

def domain_scaffolds(domain:, **)
  scaffolds = engine.by_domain(domain: domain)
  log.debug "[cognitive_scaffolding] domain: domain=#{domain} count=#{scaffolds.size}"
  { success: true, domain: domain, scaffolds: scaffolds.map(&:to_h), count: scaffolds.size }
end

#mastered_scaffolded_skillsObject



46
47
48
49
50
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 46

def mastered_scaffolded_skills(**)
  skills = engine.mastered_skills
  log.debug "[cognitive_scaffolding] mastered: count=#{skills.size}"
  { success: true, skills: skills.map(&:to_h), count: skills.size }
end

#overall_scaffolded_competenceObject



76
77
78
79
80
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 76

def overall_scaffolded_competence(**)
  overall = engine.overall_competence
  log.debug "[cognitive_scaffolding] overall_competence: #{overall.round(3)}"
  { success: true, overall_competence: overall.round(4) }
end

#recommend_scaffolded_task(scaffold_id:) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 34

def recommend_scaffolded_task(scaffold_id:, **)
  recommendation = engine.recommend_task(scaffold_id: scaffold_id)
  unless recommendation
    log.debug "[cognitive_scaffolding] recommend: scaffold_id=#{scaffold_id} not found"
    return { success: false, reason: :not_found, scaffold_id: scaffold_id }
  end

  log.debug "[cognitive_scaffolding] recommend: difficulty=#{recommendation[:difficulty].round(2)} " \
            "support=#{recommendation[:support_level]} zone=#{recommendation[:zone]}"
  { success: true, recommendation: recommendation }
end

#update_cognitive_scaffoldingObject



82
83
84
85
86
87
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 82

def update_cognitive_scaffolding(**)
  count = engine.decay_all
  overall = engine.overall_competence
  log.debug "[cognitive_scaffolding] decay: scaffolds=#{count} overall=#{overall.round(3)}"
  { success: true, action: :decay, scaffold_count: count, overall_competence: overall.round(4) }
end

#zpd_skillsObject



52
53
54
55
56
# File 'lib/legion/extensions/agentic/learning/scaffolding/runners/cognitive_scaffolding.rb', line 52

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