prompts.go

 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}