mirror of
https://github.com/YspCoder/clawgo.git
synced 2026-04-13 01:57:28 +08:00
35 lines
687 B
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, "..")
|
|
}
|