Files
picoclaw/pkg/agent/tool_allowlist.go
T
2026-03-29 23:22:47 +02:00

46 lines
1.1 KiB
Go

package agent
import (
"sort"
"strings"
)
func resolveAgentToolAllowlist(definition AgentContextDefinition) []string {
if definition.Agent == nil || definition.Agent.Frontmatter.Tools == nil {
return nil
}
allowlist := make(map[string]struct{}, len(definition.Agent.Frontmatter.Tools))
for _, raw := range definition.Agent.Frontmatter.Tools {
trimmed := strings.ToLower(strings.TrimSpace(raw))
if trimmed == "" {
continue
}
allowlist[trimmed] = struct{}{}
}
result := make([]string, 0, len(allowlist))
for name := range allowlist {
result = append(result, name)
}
sort.Strings(result)
return result
}
func resolveAgentMCPServerAllowlist(definition AgentContextDefinition) map[string]struct{} {
if definition.Agent == nil || definition.Agent.Frontmatter.MCPServers == nil {
return nil
}
allowlist := make(map[string]struct{}, len(definition.Agent.Frontmatter.MCPServers))
for _, raw := range definition.Agent.Frontmatter.MCPServers {
trimmed := strings.ToLower(strings.TrimSpace(raw))
if trimmed == "" {
continue
}
allowlist[trimmed] = struct{}{}
}
return allowlist
}