chore(repo): reinitialize repository
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package runtimeconfig
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"inbox/internal/domain/role"
|
||||
)
|
||||
|
||||
// RenderInstructions flattens the resolved system prompt and bound skills into
|
||||
// the markdown instructions that should be given to the runtime.
|
||||
func RenderInstructions(resolved ResolvedRole, fallbackSystemPrompt string) string {
|
||||
var builder strings.Builder
|
||||
|
||||
systemPrompt := strings.TrimSpace(fallbackSystemPrompt)
|
||||
if prompt, ok := resolved.Prompts[role.PromptSystem]; ok && strings.TrimSpace(prompt.ContentMarkdown) != "" {
|
||||
systemPrompt = strings.TrimSpace(prompt.ContentMarkdown)
|
||||
}
|
||||
if systemPrompt != "" {
|
||||
builder.WriteString(systemPrompt)
|
||||
}
|
||||
|
||||
if len(resolved.Skills) > 0 {
|
||||
if builder.Len() > 0 {
|
||||
builder.WriteString("\n\n")
|
||||
}
|
||||
builder.WriteString("## Skills\n")
|
||||
for _, item := range resolved.Skills {
|
||||
name := strings.TrimSpace(item.Skill.Name)
|
||||
if name == "" {
|
||||
name = strings.TrimSpace(item.Skill.SkillKey)
|
||||
}
|
||||
if name == "" {
|
||||
name = strings.TrimSpace(item.Skill.ID)
|
||||
}
|
||||
builder.WriteString(fmt.Sprintf("### %s\n%s\n", name, strings.TrimSpace(item.Skill.ContentMarkdown)))
|
||||
}
|
||||
}
|
||||
|
||||
return strings.TrimSpace(builder.String())
|
||||
}
|
||||
Reference in New Issue
Block a user