Commit graph inspector/client/src/components/DynamicJsonForm.tsx
Author SHA1 Message Date
Cliff Hall
fd2def684f
chore: pin prettier to 3.9.5 and run format check after install (#1716)
The "Check formatting" step in main.yml ran `npx prettier --check .`
before `npm install`, so npx fetched the LATEST prettier rather than the
version pinned in package-lock.json. This made the format check
non-deterministic and red on open PRs whenever the latest published
prettier differed from the pinned one.

- Pin prettier to exact 3.9.5 in devDependencies and update the lockfile
- Reformat the repo with the pinned prettier (expected source churn)
- Move the format check after `npm install --no-package-lock` and run it
  via `npm run prettier-check` so CI uses the locally-installed pinned
  prettier


Claude-Session: https://claude.ai/code/session_01HiccCEh9mwCfVzE8qYcop1

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 16:23:23 -04:00
MumuTW
fdbf896a04 Fix decimal input handling in DynamicJsonForm number fields 2026-03-06 05:45:13 +00:00
Murat Dzhulkuttiev
885c8bc732
fix(client): circular function calls leads to memory leak (#1049)
* fix(client): circular function call leads to memory leak

* allow children validation
2026-02-03 10:50:50 -07:00
Dale Seo
6eed736d23 fix: display description for anyOf fields in JSON editor 2025-12-18 16:40:50 -05:00
cliffhall
d0c5b884c6 Fix linter issues in DynamicJsonForm.tsx 2025-12-03 10:08:13 -05:00
cliffhall
fd99d879c5 DynamicJsonForm improvements and full enum schema support
In DynamicJsonForm.tsx,
  - Support all five enum shapes used by MCP SDK:
    - Titled single-select via `oneOf`/`anyOf` with `{ const, title }`
    - Untitled single-select via `enum`
    - Titled legacy single-select with optional `enumNames` for labels
    - Titled multi-select via `items.anyOf`/`oneOf`
    - Untitled multi-select via `items.enum`
  - Show field descriptions for string select fields and boolean checkboxes (consistent help text above inputs).
  - Prefer schema property `title` for object field labels; fall back to the JSON key when missing.
  - Allow top‑level form rendering for objects with properties, arrays with items, and primitive types (was overly strict before).
  - Multi-select UI: sensible list size and `minItems`/`maxItems` helper text when present.
  - JSON editor fallback, copy/format controls, and debounced parsing preserved.
  - apply defaults for optional fields during form init

In schemaUtils.ts
  - `generateDefaultValue` now includes optional properties that declare a `default`, ensuring fields like strings show their defaults on first render.

In jsonUtils.ts
  - Add legacy `enumNames?: string[]` and array constraints `minItems?`/`maxItems?`.
2025-12-02 19:37:28 -05:00
cliffhall
37acee9283 Handle nullable arrays in tool inputSchemas
* In DynamicJsonForm.tsx
  - In debouncedUpdateParent, formatJson, and validateJson,
    - when trimming the JSON value, use ?.trim() in case the field is null

* In jsonUtils.ts
  - in tryParseJson
    - use ?.trim() in case the field is null

* In schemaUtils.ts
  - in normalizeUnionType
    - add condition to handle the case where there is an anyOf with array or null as options

* In ToolsTab.tsx
  - for nullable fields, in null checkbox, in onCheckedChange handler
    - when not checked, if prop type is array, set to undefined (empty input field that can be edited rather than the word "null" as the default could provide

Fixes #846
2025-10-29 14:28:49 -04:00
Nandha Reddy
a3445c93ff Fix ESLint issues in DynamicJsonForm.tsx
- Remove unnecessary escape character in regex pattern
- Add missing schema dependency to useCallback hook
2025-09-24 01:04:24 +10:00
Nandha Reddy
8d149b2673 Add real-time JSON validation and prevent tool execution on invalid input 2025-09-24 00:25:06 +10:00
Nandha Reddy
119922b8b5
Merge branch 'main' into fix/validate-json-on-tool-execution 2025-09-23 20:10:59 +10:00
olaservo
8ce1bbd346 Resolve merge conflicts in DynamicJsonForm.tsx and ToolsTab.tsx
- Merged JSON validation functionality from PR branch with enhanced form features from main
- Preserved validateJson method and DynamicJsonFormRef interface for tool validation
- Added support for oneOf schemas, enum dropdowns, and enhanced string field types
- Integrated meta display functionality and resource content props
- Maintained JSON validation before tool execution to prevent invalid data submission
2025-08-05 05:48:04 -07:00
Mats Julius Funke
fda879ccc1
ci: added test for the DynamicJsonForm 2025-08-04 09:32:24 +02:00
Mats Julius Funke
cc3f9df33c
fix: fix type error by handling array of types in JSON schema validation 2025-08-04 09:26:24 +02:00
Ola Hungerford
144755b369
Merge branch 'main' into feature/elicitations 2025-07-23 21:50:48 -07:00
Nandha Reddy
20d9480aff
Resolve merge conflict in DynamicJsonForm.tsx
Integrate JSON validation with copy JSON functionality:
- Maintain forwardRef structure for validation exposure
- Combine copy button with validation method
- Both features working together without conflicts
2025-07-09 23:38:39 +10:00
Ola Hungerford
7ff70e15b0
Merge branch 'main' into fveiras/copy_json 2025-07-07 04:59:31 -07:00
Nandha Reddy
236dee0dca
Fix code style 2025-07-07 13:53:10 +10:00
Francisco Veiras
9842a6278a fix: Copy JSON button form submission 2025-07-06 12:08:20 -03:00
Alex Andru
efd5f8a17c feat: enum support in dynamic json form 2025-07-04 19:45:55 +02:00
Alex Andru
19ff315dd1 Merge branch 'origin/main' into feature/elicitations
Resolved conflicts by adopting the improved form input handling from main:
- Standardized JsonSchemaType.required to only accept string arrays (JSON Schema standard)
- Adopted enhanced object and array rendering with proper nested support
- Improved boolean field rendering (removed extra wrapper div)
- Enhanced array handling with add/remove functionality
- Simplified required field validation logic

This maintains elicitation functionality while benefiting from the form input fixes.
2025-07-03 16:14:21 +02:00
Nandha Reddy
98580cd5a9
Merge branch 'main' into fix/validate-json-on-tool-execution 2025-07-01 17:25:13 +10:00
Francisco Veiras
d6864b8c71 feat: add copy JSON value 2025-06-27 17:30:30 -03:00
Nandha Reddy
d65ed01922 Add JSON validation to tool execution
Prevents execution of tools with invalid JSON parameters by validating JSON
syntax before tool execution and showing error UI for invalid input.

- Add validateJson method to DynamicJsonForm via forwardRef
- Add validation check in ToolsTab before tool execution
- Reuse existing JsonEditor error display for consistent UX
2025-06-26 23:17:30 +10:00
Alex Andru
e6166a734e feat: add new schema requirements to DynamicJsonForm 2025-06-19 17:39:19 +02:00
olaservo
0a1de24fdf Fix formatting 2025-06-01 21:05:33 -07:00
olaservo
3475670f1d Incorporate nested logic again 2025-06-01 20:53:17 -07:00
olaservo
990bc0f7fd Fix formatting 2025-06-01 15:41:30 -07:00
olaservo
b555e41c0b Address the schema architecture crisis 2025-06-01 09:03:02 -07:00
Nathan Arseneau
29b465fe45 Merge branch 'main' into sampling-form 2025-04-22 22:07:37 -04:00
Nathan Arseneau
5696c19df9 Merge branch 'main' into sampling-form 2025-04-15 21:54:04 -04:00
Maxwell Gerber
2e8cc56744
Merge remote-tracking branch 'theirs/main' into max/default-tool-json 2025-04-11 15:36:25 -07:00
Maxwell Gerber
3e95d9d42a
pr feedback: Only use form if object is simple 2025-04-11 15:34:41 -07:00
yushengchen
fe74dbea74 refactor(json): Consolidate JSON utilities and type definitions
Modified files:
- client/src/components/DynamicJsonForm.tsx
- client/src/components/JsonView.tsx
- client/src/components/ToolsTab.tsx
- client/src/components/__tests__/DynamicJsonForm.test.tsx
- client/src/utils/__tests__/jsonPathUtils.test.ts → client/src/utils/__tests__/jsonUtils.test.ts
- client/src/utils/__tests__/schemaUtils.test.ts
- client/src/utils/jsonPathUtils.ts → client/src/utils/jsonUtils.ts
- client/src/utils/schemaUtils.ts

Descriptions:
- Move JSON type definitions from DynamicJsonForm to centralized jsonUtils
- Consolidate utility functions (getDataType, tryParseJson) into jsonUtils
- Rename jsonPathUtils to jsonUtils for better semantic clarity
- Add comprehensive test coverage for new utility functions
- Update imports across all affected components
- Improve type references consistency throughout the codebase
2025-04-09 09:20:02 +08:00
Maxwell Gerber
4bc44c4d19
fix: When tool type cannot be determined, use DynamicJsonForm 2025-04-08 15:05:57 -07:00
Nathan Arseneau
71bb89ddf2 create sampling response form 2025-04-05 18:36:57 -04:00
cgoing
8180b0bd6f refactor: JsonEditor 2025-03-28 15:16:17 +09:00
Ola Hungerford
e1b015e40d Add comments explaining extra parsing logic 2025-03-16 15:28:07 -07:00
Ola Hungerford
00836dbf9e Fix formatting 2025-03-04 20:55:57 -07:00
Ola Hungerford
f9b105c0ef Use debounce instead 2025-03-04 20:54:13 -07:00
Ola Hungerford
06773bb6dd Fix formatting 2025-02-28 09:13:33 -07:00
Ola Hungerford
b01e386659 Always use JSON mode if the schema type is object and has no properties 2025-02-28 09:06:51 -07:00
Ola Hungerford
82bbe58a46 Fix formatting 2025-02-27 22:08:04 -07:00
Ola Hungerford
44982e6c97 Default to nulls and update tests 2025-02-27 21:33:37 -07:00
Ola Hungerford
238c22830b Fix formatting 2025-02-27 07:21:04 -07:00
Ola Hungerford
426fb87640 Remove comment ans trigger workflow run 2025-02-27 07:15:31 -07:00
Ola Hungerford
0b105b29c1 Extract functions 2025-02-26 19:55:01 -07:00
Ola Hungerford
0e29e2c1cf Resolve issues where JSON fields are not being rendered in form mode 2025-02-26 19:34:33 -07:00
Ola Hungerford
592dacad39 Start adding changes to address json fields 2025-02-26 09:50:47 -07:00
kshern
8267e514ce fix: prettier write 2025-02-25 00:09:04 +08:00
kshern
18438dbdd0 feat: add error handling 2025-02-24 02:52:17 +08:00