package seed import ( _ "embed" "encoding/json" "fmt" ) //go:embed defaults.json var defaultsJSON []byte type Prompt struct { Key string `json:"key"` Kind string `json:"kind"` APIType string `json:"api_type"` Name string `json:"name"` Version uint `json:"version"` Template string `json:"template"` } type Provider struct { Slug string `json:"slug"` Name string `json:"name"` } type Model struct { Name string `json:"name"` ModelID string `json:"model_id"` APIType string `json:"api_type"` Kind string `json:"kind"` } type Defaults struct { Prompts []Prompt `json:"prompts"` Provider Provider `json:"provider"` Models []Model `json:"models"` } func LoadDefaults() (Defaults, error) { var defaults Defaults if err := json.Unmarshal(defaultsJSON, &defaults); err != nil { return Defaults{}, fmt.Errorf("decode embedded seed data: %w", err) } if len(defaults.Prompts) != 2 || len(defaults.Models) != 2 || defaults.Provider.Slug == "" { return Defaults{}, fmt.Errorf("embedded seed data is incomplete") } return defaults, nil }