Centralize message role invariants

This commit is contained in:
2026-08-26 02:07:15 +00:00
parent 8745d256bd
commit 5064cf833d
8 changed files with 292 additions and 36 deletions

View File

@@ -68,8 +68,9 @@ func (r *goRenderer) Render(ctx context.Context, definition *domain.PromptDefini
return nil, err
}
if tmplMsg.Role == "" {
return nil, fmt.Errorf("%w: message %d", ErrInvalidMessageRole, i)
role, err := domain.NormalizeMessageRole(tmplMsg.Role)
if err != nil {
return nil, fmt.Errorf("%w: message %d: %v", ErrInvalidMessageRole, i, err)
}
if err := ctx.Err(); err != nil {
@@ -96,7 +97,7 @@ func (r *goRenderer) Render(ctx context.Context, definition *domain.PromptDefini
}
renderedMessages = append(renderedMessages, domain.RenderedMessage{
Role: tmplMsg.Role,
Role: role,
Content: buf.String(),
CacheControl: cloneCacheControl(tmplMsg.CacheControl),
})