// Code generated by mcp-framework generate. DO NOT EDIT. package mcpgen import ( "flag" "strings" fwcli "forge.lclr.dev/AI/mcp-framework/cli" ) type ConfigFlags struct { values map[string]*string } func AddConfigFlags(fs *flag.FlagSet) ConfigFlags { if fs == nil { fs = flag.CommandLine } flags := ConfigFlags{ values: make(map[string]*string), } return flags } func ConfigFlagValues(flags ConfigFlags) map[string]string { values := make(map[string]string) for name, value := range flags.values { if value == nil { continue } if trimmed := strings.TrimSpace(*value); trimmed != "" { values[name] = trimmed } } return values } func ResolveFieldSpecs(profile string) []fwcli.FieldSpec { return []fwcli.FieldSpec{ {Name: "host", Required: true, DefaultValue: "", Sources: []fwcli.ValueSource{fwcli.SourceEnv, fwcli.SourceConfig}, FlagKey: "", EnvKey: "EMAIL_MCP_HOST", ConfigKey: "host", SecretKey: replaceProfile("", profile)}, {Name: "username", Required: true, DefaultValue: "", Sources: []fwcli.ValueSource{fwcli.SourceEnv, fwcli.SourceConfig}, FlagKey: "", EnvKey: "EMAIL_MCP_USERNAME", ConfigKey: "username", SecretKey: replaceProfile("", profile)}, {Name: "password", Required: true, DefaultValue: "", Sources: []fwcli.ValueSource{fwcli.SourceEnv, fwcli.SourceSecret}, FlagKey: "", EnvKey: "EMAIL_MCP_PASSWORD", ConfigKey: "", SecretKey: replaceProfile("imap-password/{profile}", profile)}, } } func SetupFields(existing map[string]string) []fwcli.SetupField { if existing == nil { existing = map[string]string{} } return []fwcli.SetupField{ {Name: "host", Label: "IMAP host", Type: fwcli.SetupFieldString, Required: true, Default: "", ExistingSecret: existing["host"]}, {Name: "username", Label: "Username", Type: fwcli.SetupFieldString, Required: true, Default: "", ExistingSecret: existing["username"]}, {Name: "password", Label: "Password", Type: fwcli.SetupFieldSecret, Required: true, Default: "", ExistingSecret: existing["password"]}, } } func replaceProfile(value, profile string) string { return strings.ReplaceAll(value, "{profile}", strings.TrimSpace(profile)) }