Skip to content

Commit 83c8ab5

Browse files
authored
Add missing fields to server catalog data. (#332)
1 parent bb7217c commit 83c8ab5

1 file changed

Lines changed: 27 additions & 4 deletions

File tree

pkg/catalog/types.go

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type Server struct {
2121
Description string `yaml:"description,omitempty" json:"description,omitempty"`
2222
Title string `yaml:"title,omitempty" json:"title,omitempty"`
2323
Icon string `yaml:"icon,omitempty" json:"icon,omitempty"`
24+
ReadmeURL string `yaml:"readme,omitempty" json:"readme,omitempty"`
2425
LongLived bool `yaml:"longLived,omitempty" json:"longLived,omitempty"`
2526
Remote Remote `yaml:"remote" json:"remote"`
2627
SSEEndpoint string `yaml:"sseEndpoint,omitempty" json:"sseEndpoint,omitempty"` // Deprecated: Use Remote instead
@@ -107,10 +108,16 @@ type ToolGroup struct {
107108
}
108109

109110
type Tool struct {
110-
Name string `yaml:"name" json:"name" validate:"required,min=1"`
111-
Description string `yaml:"description" json:"description"`
112-
Container Container `yaml:"container" json:"container"`
113-
Parameters Parameters `yaml:"parameters" json:"parameters"`
111+
Name string `yaml:"name" json:"name" validate:"required,min=1"`
112+
Description string `yaml:"description" json:"description"`
113+
114+
// These will only be set for oci catalogs (not legacy catalogs)
115+
Arguments *[]ToolArgument `yaml:"arguments,omitempty" json:"arguments,omitempty"`
116+
Annotations *ToolAnnotations `yaml:"annotations,omitempty" json:"annotations,omitempty"`
117+
118+
// This is only used for POCIs
119+
Container Container `yaml:"container,omitempty" json:"container,omitempty"`
120+
Parameters Parameters `yaml:"parameters,omitempty" json:"parameters,omitempty"`
114121
}
115122

116123
type Parameters struct {
@@ -156,6 +163,22 @@ func (p *Properties) ToMap() map[string]any {
156163
return m
157164
}
158165

166+
type ToolArgument struct {
167+
Name string `json:"name" yaml:"name"`
168+
Type string `json:"type" yaml:"type"`
169+
Items *Items `json:"items,omitempty" yaml:"items,omitempty"`
170+
Description string `json:"desc" yaml:"desc"`
171+
Optional bool `json:"optional,omitempty" yaml:"optional,omitempty"`
172+
}
173+
174+
type ToolAnnotations struct {
175+
Title string `json:"title,omitempty" yaml:"title,omitempty"`
176+
ReadOnlyHint *bool `json:"readOnlyHint,omitempty" yaml:"readOnlyHint,omitempty"`
177+
DestructiveHint *bool `json:"destructiveHint,omitempty" yaml:"destructiveHint,omitempty"`
178+
IdempotentHint *bool `json:"idempotentHint,omitempty" yaml:"idempotentHint,omitempty"`
179+
OpenWorldHint *bool `json:"openWorldHint,omitempty" yaml:"openWorldHint,omitempty"`
180+
}
181+
159182
// Config
160183

161184
type ServerConfig struct {

0 commit comments

Comments
 (0)