feat: add subagent profiles, memory namespaces, and webui management

This commit is contained in:
lpf
2026-03-05 21:05:29 +08:00
parent 1eacfaba41
commit 29d6480058
22 changed files with 2051 additions and 49 deletions

View File

@@ -0,0 +1,38 @@
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 {
if args == nil {
return "main"
}
raw, _ := args["namespace"].(string)
return normalizeMemoryNamespace(raw)
}
func isPathUnder(parent, child string) bool {
rel, err := filepath.Rel(parent, child)
if err != nil {
return false
}
return !strings.HasPrefix(rel, "..")
}