Class: TurnKit::LoadSkillTool

Inherits:
Tool
  • Object
show all
Defined in:
lib/turnkit/load_skill_tool.rb

Constant Summary

Constants inherited from Tool

Tool::NAME_PATTERN, Tool::TYPES

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Tool

call, completion_message, #completion_message, description, #description, ends_turn?, #ends_turn?, input_schema, #input_schema, invoke, parameter, parameters, #parameters, terminal!, tool_name, #tool_name, usage_hint, #usage_hint, validate_arguments, validate_definition!, #validate_definition!

Class Method Details

.for(skills) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/turnkit/load_skill_tool.rb', line 9

def self.for(skills)
  Class.new(self) do
    tool_name "load_skill"
    @skills = Array(skills).to_h { |skill| [ skill.key, skill ] }
    class << self
      attr_reader :skills
    end
  end
end

Instance Method Details

#call(key:, context:) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/turnkit/load_skill_tool.rb', line 19

def call(key:, context:)
  skill = self.class.skills[key]
  unless skill
    available = self.class.skills.keys.join(", ")
    raise ToolError, "unknown skill: #{key}. Available: #{available}"
  end

  { "key" => skill.key, "name" => skill.name, "content" => skill.content }
end