feat: enum (dropdown selection) type for forms/prompts#893
Draft
feat: enum (dropdown selection) type for forms/prompts#893
Conversation
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.
Targets
mainAdds enum/enum[] types with validation to allow selecting predefined options from a dropdown
RFC: Enum/Dropdown Support for Schema Properties
Summary
This PR adds native enum (dropdown) support to the schema editor and form rendering system, enabling users to define constrained value sets for prompt and interaction parameters.
Motivation
Currently, users who need to limit input values to a predefined set must rely on validation rules or free-text input with instructions. Native enum support provides:
Changes
New Components
EnumInput.tsxSelectBoxEnumValuesDialog.tsxModified Components
ManagedObject.tsManagedProperty(multi-select scalar)Form.tsxenumandenum[]types to the new dropdown components viaScalarFieldPropertyEditor.tsxenumEditableSchemaProperty.tsxenumValuesfromSchemaNodefor the editorjson-schema4-utils.tsManagedSchema.tsenumValuesthrough the schema management layertype-signature.tsenumto theTypeNamesenumUser Experience
Schema Editor:
Form Rendering:
enum→ single-select dropdown with clear optionenum[]→ multi-select dropdownTechnical Details
enumfielditems.enumstring(compatible with JSON Schema spec)[type, "null"]patternScope
This is a basic implementation covering:
Screenshots
Prompts:
Agent Runner: