Move prompts into embedded Markdown assets

This commit is contained in:
2026-05-13 18:49:06 +00:00
parent d6126bf52b
commit 037121e9ce
43 changed files with 940 additions and 173 deletions

View File

@@ -0,0 +1,24 @@
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
}