File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -17,10 +17,23 @@ const { AgentCoreProjectSpecSchema } = await import('../dist/schema/schemas/agen
1717
1818const schema = z . toJSONSchema ( AgentCoreProjectSpecSchema , { target : 'draft-07' } ) ;
1919
20- // Fields with defaults should not be required — Zod's toJSONSchema marks them required anyway
21- if ( schema . required && schema . properties ) {
22- schema . required = schema . required . filter ( field => ! ( 'default' in schema . properties [ field ] ) ) ;
20+ // Fields with defaults should not be required — Zod's toJSONSchema marks them required anyway.
21+ // Walk the entire schema tree so nested objects are fixed too.
22+ function stripDefaultsFromRequired ( node ) {
23+ if ( typeof node !== 'object' || node === null ) return ;
24+ if ( Array . isArray ( node ) ) {
25+ node . forEach ( stripDefaultsFromRequired ) ;
26+ return ;
27+ }
28+ if ( Array . isArray ( node . required ) && node . properties ) {
29+ node . required = node . required . filter ( field => ! ( 'default' in ( node . properties [ field ] ?? { } ) ) ) ;
30+ if ( node . required . length === 0 ) delete node . required ;
31+ }
32+ for ( const value of Object . values ( node ) ) {
33+ stripDefaultsFromRequired ( value ) ;
34+ }
2335}
36+ stripDefaultsFromRequired ( schema ) ;
2437
2538mkdirSync ( dirname ( outPath ) , { recursive : true } ) ;
2639writeFileSync ( outPath , JSON . stringify ( schema , null , 2 ) + '\n' ) ;
You can’t perform that action at this time.
0 commit comments