When a schema class is redefined, properties are duplicated in the required array:
irb(main):006* class Person < RubyLLM::Schema
irb(main):007* string :name
irb(main):008> end
=> [:name]
irb(main):009* class Person < RubyLLM::Schema
irb(main):010* string :name
irb(main):011> end
=> [:name, :name]
This results in invalid JSON schema with duplicate required fields:
{
"name": "Person",
"description": null,
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"required": [
"name",
"name"
],
"additionalProperties": false,
"strict": true,
"$defs": {}
}
}
Expected behavior: When a class is redefined, properties should not be duplicated in the schema.
When a schema class is redefined, properties are duplicated in the required array:
This results in invalid JSON schema with duplicate required fields:
{ "name": "Person", "description": null, "schema": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name", "name" ], "additionalProperties": false, "strict": true, "$defs": {} } }Expected behavior: When a class is redefined, properties should not be duplicated in the schema.