Module: Antigravity::Tool::ClassMethods
- Defined in:
- lib/antigravity/tool.rb
Instance Method Summary collapse
- #desc(val = nil) ⇒ Object (also: #tool_description)
- #name(val = nil, desc: nil) ⇒ Object (also: #tool_name)
- #param(name, type: :string, description: "", required: true) ⇒ Object
- #parameters ⇒ Object
- #to_json_schema ⇒ Object
Instance Method Details
#desc(val = nil) ⇒ Object Also known as: tool_description
22 23 24 25 |
# File 'lib/antigravity/tool.rb', line 22 def desc(val = nil) @tool_description = val if val @tool_description || "" end |
#name(val = nil, desc: nil) ⇒ Object Also known as: tool_name
13 14 15 16 17 18 19 |
# File 'lib/antigravity/tool.rb', line 13 def name(val = nil, desc: nil) if val @tool_name = val.to_s @tool_description = desc if desc end @tool_name || self.name&.split("::")&.last&.gsub(/(.)([A-Z])/, '\1_\2')&.downcase || "custom_tool" end |
#param(name, type: :string, description: "", required: true) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/antigravity/tool.rb', line 28 def param(name, type: :string, description: "", required: true) @parameters ||= {} @parameters[name.to_sym] = { type: type.to_s, description: description, required: required } end |
#parameters ⇒ Object
37 38 39 |
# File 'lib/antigravity/tool.rb', line 37 def parameters @parameters || {} end |
#to_json_schema ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/antigravity/tool.rb', line 41 def to_json_schema properties = {} required_params = [] parameters.each do |param_name, spec| properties[param_name] = { type: spec[:type], description: spec[:description] } required_params << param_name.to_s if spec[:required] end { name: name, description: desc, parameters: { type: "object", properties: properties, required: required_params } } end |