diff --git a/lib/ruby_llm/schema/dsl.rb b/lib/ruby_llm/schema/dsl.rb index 7c52745..d7b9489 100644 --- a/lib/ruby_llm/schema/dsl.rb +++ b/lib/ruby_llm/schema/dsl.rb @@ -81,7 +81,8 @@ def define(name, &) definitions[name] = { type: "object", properties: sub_schema.properties, - required: sub_schema.required_properties + required: sub_schema.required_properties, + additionalProperties: sub_schema.additional_properties } end @@ -139,7 +140,7 @@ def build_property_schema(type, **options, &) type: "object", properties: sub_schema.properties, required: sub_schema.required_properties, - additionalProperties: additional_properties, + additionalProperties: sub_schema.additional_properties, description: options[:description] }.compact end diff --git a/spec/ruby_llm/schema_spec.rb b/spec/ruby_llm/schema_spec.rb index 4725b2a..19817e3 100644 --- a/spec/ruby_llm/schema_spec.rb +++ b/spec/ruby_llm/schema_spec.rb @@ -244,7 +244,8 @@ street: {type: "string"}, city: {type: "string"} }, - required: %i[street city] + required: %i[street city], + additionalProperties: false }) end @@ -269,7 +270,8 @@ street: {type: "string"}, city: {type: "string"} }, - required: %i[street city] + required: %i[street city], + additionalProperties: false }) end end