prompts.go

 1package agent
 2
 3import (
 4	_ "embed"
 5
 6	"github.com/charmbracelet/crush/internal/agent/prompt"
 7)
 8
 9//go:embed templates/coder.gotmpl
10var coderPromptTmpl []byte
11
12//go:embed templates/task.gotmpl
13var taskPromptTmpl []byte
14
15//go:embed templates/initialize.md
16var initializePrompt []byte
17
18func coderPrompt(opts ...prompt.Option) (*prompt.Prompt, error) {
19	systemPrompt, err := prompt.NewPrompt("coder", string(coderPromptTmpl), opts...)
20	if err != nil {
21		return nil, err
22	}
23	return systemPrompt, nil
24}
25
26func taskPrompt(opts ...prompt.Option) (*prompt.Prompt, error) {
27	systemPrompt, err := prompt.NewPrompt("task", string(taskPromptTmpl), opts...)
28	if err != nil {
29		return nil, err
30	}
31	return systemPrompt, nil
32}
33
34func InitializePrompt() string {
35	return string(initializePrompt)
36}