Skip to content

Commit 412b9e9

Browse files
committed
fix xml tools
1 parent e6f6304 commit 412b9e9

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

lib/completions/dialects/xml_tools.rb

+17-14
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)