Skip to content

Commit 363d3a7

Browse files
committed
Normalize tool keyword argument error labels
1 parent e36cbbf commit 363d3a7

2 files changed

Lines changed: 4 additions & 15 deletions

File tree

lib/ruby_llm/tool.rb

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,12 @@ def validate_keyword_arguments(arguments)
133133

134134
argument_keys = arguments.keys
135135
missing_keyword = first_missing_keyword(required_keywords, argument_keys)
136-
return "missing keyword: #{keyword_label(missing_keyword)}" if missing_keyword
136+
return "missing keyword: #{missing_keyword}" if missing_keyword
137137
return nil if accepts_extra_keywords
138138

139139
allowed_keywords = required_keywords + optional_keywords
140140
unknown_keyword = first_unknown_keyword(argument_keys, allowed_keywords)
141-
return "unknown keyword: #{keyword_label(unknown_keyword)}" if unknown_keyword
141+
return "unknown keyword: #{unknown_keyword}" if unknown_keyword
142142

143143
nil
144144
end
@@ -160,12 +160,6 @@ def first_unknown_keyword(argument_keys, allowed_keywords)
160160
(argument_keys - allowed_keywords).first
161161
end
162162

163-
def keyword_label(keyword)
164-
return keyword.to_s if RUBY_ENGINE == 'jruby'
165-
166-
":#{keyword}"
167-
end
168-
169163
# Wraps schema handling for tool parameters, supporting JSON Schema hashes,
170164
# RubyLLM::Schema instances/classes, and DSL blocks.
171165
class SchemaDefinition

spec/ruby_llm/tool_spec.rb

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def execute(questions:)
5252

5353
result = SignatureTool.new.call({ 'questions' => [], 'isOther' => true })
5454

55-
expect(result).to eq({ error: 'Invalid tool arguments: unknown keyword: :isOther' })
55+
expect(result).to eq({ error: 'Invalid tool arguments: unknown keyword: isOther' })
5656
end
5757

5858
it 'returns an error hash for missing required keyword arguments' do
@@ -64,12 +64,7 @@ def execute(questions:)
6464

6565
result = RequiredTool.new.call({})
6666

67-
expected_error = if RUBY_ENGINE == 'jruby'
68-
'Invalid tool arguments: missing keyword: questions'
69-
else
70-
'Invalid tool arguments: missing keyword: :questions'
71-
end
72-
expect(result).to eq({ error: expected_error })
67+
expect(result).to eq({ error: 'Invalid tool arguments: missing keyword: questions' })
7368
end
7469

7570
it 'allows extra keyword arguments when execute accepts keyrest' do

0 commit comments

Comments
 (0)