fix: include empty properties in get_me schema for OpenAI compatibility #1553
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #1553
Summary
OpenAI strict mode requires the
propertiesfield to be present in object schemas, even when empty. Theget_metool has no input parameters, so its schema was{"type": "object"}without apropertiesfield.Problem
The
jsonschemalibrary'sSchemastruct usesomitemptyJSON tags, causing empty maps to be omitted during JSON serialization. Even when settingProperties: map[string]*jsonschema.Schema{}, the output remains{"type": "object"}.Error from OpenAI:
Solution
Use
json.RawMessageto bypass the library's serialization and explicitly include"properties": {}in the output:This ensures OpenAI strict mode compatibility while maintaining the same logical schema.
Testing
script/lint- 0 issuesscript/test- all tests pass"properties": {}Fixes #1548