1package agent
2
3import (
4 "context"
5 _ "embed"
6
7 "git.secluded.site/crush/internal/agent/prompt"
8 "git.secluded.site/crush/internal/config"
9)
10
11//go:embed templates/coder.md.tpl
12var coderPromptTmpl []byte
13
14//go:embed templates/task.md.tpl
15var taskPromptTmpl []byte
16
17//go:embed templates/initialize.md.tpl
18var initializePromptTmpl []byte
19
20func coderPrompt(opts ...prompt.Option) (*prompt.Prompt, error) {
21 systemPrompt, err := prompt.NewPrompt("coder", string(coderPromptTmpl), opts...)
22 if err != nil {
23 return nil, err
24 }
25 return systemPrompt, nil
26}
27
28func taskPrompt(opts ...prompt.Option) (*prompt.Prompt, error) {
29 systemPrompt, err := prompt.NewPrompt("task", string(taskPromptTmpl), opts...)
30 if err != nil {
31 return nil, err
32 }
33 return systemPrompt, nil
34}
35
36func InitializePrompt(cfg config.Config) (string, error) {
37 systemPrompt, err := prompt.NewPrompt("initialize", string(initializePromptTmpl))
38 if err != nil {
39 return "", err
40 }
41 return systemPrompt.Build(context.Background(), "", "", cfg)
42}