fix(store): report a tool inputSchema that is not an object schema - #216
Merged
kerlenton merged 3 commits intoAug 8, 2026
Merged
Conversation
Clients reject such a tool at registration, so a capture shows a clean tools/list and then no tools/call. analyzeSchema walked subschemas but never read the root type, so the one finding here that is a violation was the one it could not report. An absent inputSchema fails the same rule. The TUI ranks it first, since every other finding is an observation rather than a violation. Refs kerlenton#199
Owner
|
LGTM! Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Part 1 of #199.
A tool whose
inputSchemahas no root type is rejected by clients atregistration.
analyzeSchemawalked subschemas for constructs that travelbadly but never read the root type, so the one condition here that is a
violation was the one it could not report.
Adds a
nonObjectRootfinding, set wheninputSchemais absent, is not a JSONobject, or has a root type that is not
"object". Nothing is resolved and nodialect is interpreted. The TUI ranks it above every existing kind, since the
others say a schema may be read differently across clients and this one says a
conforming client refuses the tool.
Nine existing fixtures were rootless schemas used to test construct detection,
so they trip the new finding too. I gave each a valid object root rather than
adding the new kind to every
want, so each test keeps isolating one thing.Reporting this on the
tools/listframe so thatcheckfails is a follow-up,kept separate to keep this reviewable.