Files
clawgo/pkg/tools/memory_namespace.go

35 lines
687 B
Go

package tools
import (
"path/filepath"
"strings"
)
func normalizeMemoryNamespace(in string) string {
v := normalizeSubagentIdentifier(in)
if v == "" {
return "main"
}
return v
}
func memoryNamespaceBaseDir(workspace, namespace string) string {
ns := normalizeMemoryNamespace(namespace)
if ns == "main" {
return workspace
}
return filepath.Join(workspace, "agents", ns)
}
func parseMemoryNamespaceArg(args map[string]interface{}) string {
return normalizeMemoryNamespace(MapStringArg(args, "namespace"))
}
func isPathUnder(parent, child string) bool {
rel, err := filepath.Rel(parent, child)
if err != nil {
return false
}
return !strings.HasPrefix(rel, "..")
}