mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-11-15 16:57:08 +01:00
37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
// AgentRuntimeConfig keeps runtime selection separate from model/provider selection.
|
|
type AgentRuntimeConfig struct {
|
|
Engine string `yaml:"engine,omitempty" json:"engine,omitempty"`
|
|
NodePath string `yaml:"node_path,omitempty" json:"node_path,omitempty"`
|
|
WorkerPath string `yaml:"worker_path,omitempty" json:"worker_path,omitempty"`
|
|
SessionDir string `yaml:"session_dir,omitempty" json:"session_dir,omitempty"`
|
|
}
|
|
|
|
// AgentSessionDir is shared by the runner and conversation cleanup, including
|
|
// configurations that omit database.path or restore the default session root.
|
|
func (c *Config) AgentSessionDir() string {
|
|
if dir := strings.TrimSpace(c.AgentRuntime.SessionDir); dir != "" {
|
|
return dir
|
|
}
|
|
dbPath := strings.TrimSpace(c.Database.Path)
|
|
if dbPath == "" {
|
|
dbPath = "data/conversations.db"
|
|
}
|
|
return filepath.Join(filepath.Dir(dbPath), "pi-sessions")
|
|
}
|
|
|
|
func (c AgentRuntimeConfig) Validate() error {
|
|
engine := strings.ToLower(strings.TrimSpace(c.Engine))
|
|
if engine != "" && engine != "pi" {
|
|
return fmt.Errorf("unsupported agent runtime %q: this version only supports pi", c.Engine)
|
|
}
|
|
return nil
|
|
}
|