package prompts import ( "bytes" "fmt" "strings" ) func RenderUserSystem(promptID string, data any) (system string, user string, metadata Metadata, err error) { cp, ok := promptRegistry[strings.TrimSpace(promptID)] if !ok { return "", "", Metadata{}, fmt.Errorf("unknown prompt id %q", promptID) } var systemBuf bytes.Buffer if err := cp.systemTmpl.Execute(&systemBuf, data); err != nil { return "", "", Metadata{}, fmt.Errorf("render system prompt %q: %w", promptID, err) } var userBuf bytes.Buffer if err := cp.userTmpl.Execute(&userBuf, data); err != nil { return "", "", Metadata{}, fmt.Errorf("render user prompt %q: %w", promptID, err) } return strings.TrimSpace(systemBuf.String()), strings.TrimSpace(userBuf.String()), cp.metadata, nil }