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}