package prompts

import (
	"embed"
	"fmt"
	"strings"
	"text/template"
)

//go:embed planner/default.tmpl judge/default.tmpl implementer/default.tmpl
var templates embed.FS

// Render renders a template with the given variables.
func Render(templateRef string, variables map[string]any) (string, error) {
	// Load template from embedded files
	tmpl, err := template.ParseFS(templates, templateRef)
	if err != nil {
		return "", fmt.Errorf("failed to parse template %s: %w", templateRef, err)
	}

	// Render the template
	var result strings.Builder
	if err := tmpl.Execute(&result, variables); err != nil {
		return "", fmt.Errorf("failed to render template %s: %w", templateRef, err)
	}

	return result.String(), nil
}
