fix(utils): improve JSON schema tool input prompting#28
Open
syf2211 wants to merge 2 commits into
Open
Conversation
Normalize property paths from anyOf/oneOf variants and deduplicate prompts by property key. Resolve required flags from the owning object schema so anyOf variants still honor required fields. Fixes wong2#24
Handle properties whose type is an array of JSON Schema types (e.g. object/array/string/number/boolean/null) by prompting for a JSON value, validating parse errors, and parsing it before calling the tool. Also add a package test script for node:test. Fixes wong2#2
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.
Summary
Improves interactive tool argument prompting for JSON Schema edge cases in
readJSONSchemaInputs.Motivation
readJSONSchemaInputsbehaves incorrectly foranyOf#24: Properties usinganyOf/oneOfwere traversed multiple times, causing duplicate prompts for the same field.typeis an array of JSON Schema types (e.g.["object","array","string","number","boolean","null"]) were skipped entirely, so tools like memorystorenever collected thevalueargument.Changes
buildJSONSchemaQuestionswith deduplication via normalized property keysrequireddetection by walking the root schema instead of theanyOfvariant parentresolvePromptTypeto handle multi-type arrays and prompt for JSON values when needednode:testcoverage and apnpm testscriptTests
node --test src/utils.test.js— 3 tests, all passpnpm test— all passNotes
(JSON)hint in the prompt messageFixes #24
Fixes #2