@@ -9,42 +9,45 @@ def initialize(tools)
99 end
1010
1111 def translated_tools
12- raw_tools . reduce ( +"" ) do |tools , function |
12+ result = +""
13+
14+ raw_tools . each do |tool |
1315 parameters = +""
14- if function [ : parameters] . present?
15- function [ : parameters] . each do |parameter |
16+ if tool . parameters . present?
17+ tool . parameters . each do |parameter |
1618 parameters << <<~PARAMETER
1719 <parameter>
18- <name>#{ parameter [ : name] } </name>
19- <type>#{ parameter [ : type] } </type>
20- <description>#{ parameter [ : description] } </description>
21- <required>#{ parameter [ : required] } </required>
20+ <name>#{ parameter . name } </name>
21+ <type>#{ parameter . type } </type>
22+ <description>#{ parameter . description } </description>
23+ <required>#{ parameter . required } </required>
2224 PARAMETER
23- if parameter [ :enum ]
24- parameters << "<options >#{ parameter [ :enum ] . join ( "," ) } </options >\n "
25+ if parameter . item_type
26+ parameters << "<array_item_type >#{ parameter . item_type } </array_item_type >\n "
2527 end
28+ parameters << "<options>#{ parameter . enum . join ( "," ) } </options>\n " if parameter . enum
2629 parameters << "</parameter>\n "
2730 end
2831 end
2932
30- tools << <<~TOOLS
33+ result << <<~TOOLS
3134 <tool_description>
32- <tool_name>#{ function [ : name] } </tool_name>
33- <description>#{ function [ : description] } </description>
35+ <tool_name>#{ tool . name } </tool_name>
36+ <description>#{ tool . description } </description>
3437 <parameters>
3538 #{ parameters } </parameters>
3639 </tool_description>
3740 TOOLS
3841 end
42+ result
3943 end
4044
4145 def instructions
4246 return "" if raw_tools . blank?
4347
4448 @instructions ||=
4549 begin
46- has_arrays =
47- raw_tools . any? { |tool | tool [ :parameters ] &.any? { |p | p [ :type ] == "array" } }
50+ has_arrays = raw_tools . any? { |tool | tool . parameters &.any? { |p | p . type == "array" } }
4851
4952 ( <<~TEXT ) . strip
5053 #{ tool_preamble ( include_array_tip : has_arrays ) }
0 commit comments