@@ -18,6 +18,7 @@ import {
1818 generateDefaultValue ,
1919 isPropertyRequired ,
2020 normalizeUnionType ,
21+ resolveRef ,
2122} from "@/utils/schemaUtils" ;
2223import {
2324 CompatibilityCallToolResult ,
@@ -90,14 +91,21 @@ const ToolsTab = ({
9091 useEffect ( ( ) => {
9192 const params = Object . entries (
9293 selectedTool ?. inputSchema . properties ?? [ ] ,
93- ) . map ( ( [ key , value ] ) => [
94- key ,
95- generateDefaultValue (
94+ ) . map ( ( [ key , value ] ) => {
95+ // First resolve any $ref references
96+ const resolvedValue = resolveRef (
9697 value as JsonSchemaType ,
97- key ,
9898 selectedTool ?. inputSchema as JsonSchemaType ,
99- ) ,
100- ] ) ;
99+ ) ;
100+ return [
101+ key ,
102+ generateDefaultValue (
103+ resolvedValue ,
104+ key ,
105+ selectedTool ?. inputSchema as JsonSchemaType ,
106+ ) ,
107+ ] ;
108+ } ) ;
101109 setParams ( Object . fromEntries ( params ) ) ;
102110
103111 // Reset validation errors when switching tools
@@ -154,7 +162,12 @@ const ToolsTab = ({
154162 </ p >
155163 { Object . entries ( selectedTool . inputSchema . properties ?? [ ] ) . map (
156164 ( [ key , value ] ) => {
157- const prop = normalizeUnionType ( value as JsonSchemaType ) ;
165+ // First resolve any $ref references
166+ const resolvedValue = resolveRef (
167+ value as JsonSchemaType ,
168+ selectedTool . inputSchema as JsonSchemaType ,
169+ ) ;
170+ const prop = normalizeUnionType ( resolvedValue ) ;
158171 const inputSchema =
159172 selectedTool . inputSchema as JsonSchemaType ;
160173 const required = isPropertyRequired ( key , inputSchema ) ;
@@ -181,16 +194,18 @@ const ToolsTab = ({
181194 ...params ,
182195 [ key ] : checked
183196 ? null
184- : prop . default !== null
185- ? prop . default
186- : prop . type === "boolean"
187- ? false
188- : prop . type === "string"
189- ? ""
190- : prop . type === "number" ||
191- prop . type === "integer"
192- ? undefined
193- : undefined ,
197+ : prop . type === "array"
198+ ? undefined
199+ : prop . default !== null
200+ ? prop . default
201+ : prop . type === "boolean"
202+ ? false
203+ : prop . type === "string"
204+ ? ""
205+ : prop . type === "number" ||
206+ prop . type === "integer"
207+ ? undefined
208+ : undefined ,
194209 } )
195210 }
196211 />
0 commit comments