Module: Legion::Extensions::Builder::Skills
- Includes:
- Base
- Included in:
- Core
- Defined in:
- lib/legion/extensions/builders/skills.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Base
#const_defined_two?, #define_constant_two, #define_get, #find_files, #require_files
Instance Attribute Details
#skills ⇒ Object
Returns the value of attribute skills.
11
12
13
|
# File 'lib/legion/extensions/builders/skills.rb', line 11
def skills
@skills
end
|
Instance Method Details
#build_skill_list ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/legion/extensions/builders/skills.rb', line 26
def build_skill_list
skill_files.each do |file|
skill_name = file.split('/').last.sub('.rb', '')
skill_class_name = "#{lex_class}::Skills::#{skill_name.split('_').collect(&:capitalize).join}"
loaded_skill = Kernel.const_get(skill_class_name)
Legion::LLM::Skills::Registry.register(loaded_skill)
@skills[skill_name.to_sym] = {
skill_class: skill_class_name,
skill_module: loaded_skill
}
Legion::Logging.debug "[Skills] registered: #{skill_class_name}" if defined?(Legion::Logging)
end
end
|
#build_skills ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/legion/extensions/builders/skills.rb', line 13
def build_skills
return unless Object.const_defined?('Legion::LLM::Skills', false)
return unless Object.const_defined?('Legion::LLM', false) &&
Legion::LLM.respond_to?(:started?) && Legion::LLM.started?
return if Legion::LLM.settings.dig(:skills, :enabled) == false
@skills = {}
lex_mod = lex_class.is_a?(::Module) ? lex_class : ::Kernel.const_get(lex_class.to_s)
lex_mod.const_set(:Skills, ::Module.new) unless lex_mod.const_defined?(:Skills, false)
require_files(skill_files)
build_skill_list
end
|
#skill_files ⇒ Object
40
41
42
|
# File 'lib/legion/extensions/builders/skills.rb', line 40
def skill_files
@skill_files ||= find_files('skills')
end
|