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
This commit is contained in:
parent
c7683b464a
commit
37acee9283
1 changed files with 28 additions and 15 deletions
|
|
@ -191,6 +191,16 @@ export function normalizeUnionType(schema: JsonSchemaType): JsonSchemaType {
|
|||
return { ...schema, type: "integer", anyOf: undefined, nullable: true };
|
||||
}
|
||||
|
||||
// Handle anyOf with exactly array and null (FastMCP pattern)
|
||||
if (
|
||||
schema.anyOf &&
|
||||
schema.anyOf.length === 2 &&
|
||||
schema.anyOf.some((t) => (t as JsonSchemaType).type === "array") &&
|
||||
schema.anyOf.some((t) => (t as JsonSchemaType).type === "null")
|
||||
) {
|
||||
return { ...schema, type: "array", anyOf: undefined, nullable: true };
|
||||
}
|
||||
|
||||
// Handle array type with exactly string and null
|
||||
if (
|
||||
Array.isArray(schema.type) &&
|
||||
|
|
|
|||
Loading…
Reference in a new issue