@@ -299,6 +299,7 @@ type ToolDefinition struct {
299299 Toolkit ToolDefinitionToolkit `json:"toolkit,required"`
300300 Description string `json:"description"`
301301 FormattedSchema map [string ]interface {} `json:"formatted_schema"`
302+ Metadata ToolDefinitionMetadata `json:"metadata"`
302303 Output ToolDefinitionOutput `json:"output"`
303304 Requirements ToolDefinitionRequirements `json:"requirements"`
304305 JSON toolDefinitionJSON `json:"-"`
@@ -313,6 +314,7 @@ type toolDefinitionJSON struct {
313314 Toolkit apijson.Field
314315 Description apijson.Field
315316 FormattedSchema apijson.Field
317+ Metadata apijson.Field
316318 Output apijson.Field
317319 Requirements apijson.Field
318320 raw string
@@ -402,6 +404,81 @@ func (r toolDefinitionToolkitJSON) RawJSON() string {
402404 return r .raw
403405}
404406
407+ type ToolDefinitionMetadata struct {
408+ Behavior ToolDefinitionMetadataBehavior `json:"behavior"`
409+ Classification ToolDefinitionMetadataClassification `json:"classification"`
410+ Extras map [string ]interface {} `json:"extras"`
411+ JSON toolDefinitionMetadataJSON `json:"-"`
412+ }
413+
414+ // toolDefinitionMetadataJSON contains the JSON metadata for the struct
415+ // [ToolDefinitionMetadata]
416+ type toolDefinitionMetadataJSON struct {
417+ Behavior apijson.Field
418+ Classification apijson.Field
419+ Extras apijson.Field
420+ raw string
421+ ExtraFields map [string ]apijson.Field
422+ }
423+
424+ func (r * ToolDefinitionMetadata ) UnmarshalJSON (data []byte ) (err error ) {
425+ return apijson .UnmarshalRoot (data , r )
426+ }
427+
428+ func (r toolDefinitionMetadataJSON ) RawJSON () string {
429+ return r .raw
430+ }
431+
432+ type ToolDefinitionMetadataBehavior struct {
433+ Destructive bool `json:"destructive"`
434+ Idempotent bool `json:"idempotent"`
435+ OpenWorld bool `json:"open_world"`
436+ Operations []string `json:"operations"`
437+ ReadOnly bool `json:"read_only"`
438+ JSON toolDefinitionMetadataBehaviorJSON `json:"-"`
439+ }
440+
441+ // toolDefinitionMetadataBehaviorJSON contains the JSON metadata for the struct
442+ // [ToolDefinitionMetadataBehavior]
443+ type toolDefinitionMetadataBehaviorJSON struct {
444+ Destructive apijson.Field
445+ Idempotent apijson.Field
446+ OpenWorld apijson.Field
447+ Operations apijson.Field
448+ ReadOnly apijson.Field
449+ raw string
450+ ExtraFields map [string ]apijson.Field
451+ }
452+
453+ func (r * ToolDefinitionMetadataBehavior ) UnmarshalJSON (data []byte ) (err error ) {
454+ return apijson .UnmarshalRoot (data , r )
455+ }
456+
457+ func (r toolDefinitionMetadataBehaviorJSON ) RawJSON () string {
458+ return r .raw
459+ }
460+
461+ type ToolDefinitionMetadataClassification struct {
462+ ServiceDomains []string `json:"service_domains"`
463+ JSON toolDefinitionMetadataClassificationJSON `json:"-"`
464+ }
465+
466+ // toolDefinitionMetadataClassificationJSON contains the JSON metadata for the
467+ // struct [ToolDefinitionMetadataClassification]
468+ type toolDefinitionMetadataClassificationJSON struct {
469+ ServiceDomains apijson.Field
470+ raw string
471+ ExtraFields map [string ]apijson.Field
472+ }
473+
474+ func (r * ToolDefinitionMetadataClassification ) UnmarshalJSON (data []byte ) (err error ) {
475+ return apijson .UnmarshalRoot (data , r )
476+ }
477+
478+ func (r toolDefinitionMetadataClassificationJSON ) RawJSON () string {
479+ return r .raw
480+ }
481+
405482type ToolDefinitionOutput struct {
406483 AvailableModes []string `json:"available_modes"`
407484 Description string `json:"description"`
0 commit comments