agent/pkg/agentic/paths.go

53 lines
1.3 KiB
Go
Raw Normal View History

// SPDX-License-Identifier: EUPL-1.2
package agentic
import (
"os"
"strings"
"path/filepath"
)
// WorkspaceRoot returns the root directory for agent workspaces.
// Checks CORE_WORKSPACE env var first, falls back to ~/Code/.core/workspace.
func WorkspaceRoot() string {
return filepath.Join(CoreRoot(), "workspace")
}
// CoreRoot returns the root directory for core ecosystem files.
// Checks CORE_WORKSPACE env var first, falls back to ~/Code/.core.
func CoreRoot() string {
if root := os.Getenv("CORE_WORKSPACE"); root != "" {
return root
}
home, _ := os.UserHomeDir()
return filepath.Join(home, "Code", ".core")
}
// PlansRoot returns the root directory for agent plans.
func PlansRoot() string {
return filepath.Join(CoreRoot(), "plans")
}
// AgentName returns the name of this agent based on hostname.
// Checks AGENT_NAME env var first.
func AgentName() string {
if name := os.Getenv("AGENT_NAME"); name != "" {
return name
}
hostname, _ := os.Hostname()
h := strings.ToLower(hostname)
if strings.Contains(h, "snider") || strings.Contains(h, "studio") || strings.Contains(h, "mac") {
return "cladius"
}
return "charon"
}
// GitHubOrg returns the GitHub org for mirror operations.
func GitHubOrg() string {
if org := os.Getenv("GITHUB_ORG"); org != "" {
return org
}
return "dAppCore"
}