package config import ( "os" "path/filepath" ) type Config struct { DataDir string `toml:"data_dir"` DBPath string `toml:"-"` LogDir string `toml:"-"` ClaudeBinaryPath string `toml:"claude_binary_path"` MaxConcurrent int `toml:"max_concurrent"` DefaultTimeout string `toml:"default_timeout"` ServerAddr string `toml:"server_addr"` WebhookURL string `toml:"webhook_url"` } func Default() *Config { home, _ := os.UserHomeDir() dataDir := filepath.Join(home, ".claudomator") return &Config{ DataDir: dataDir, DBPath: filepath.Join(dataDir, "claudomator.db"), LogDir: filepath.Join(dataDir, "executions"), ClaudeBinaryPath: "claude", MaxConcurrent: 3, DefaultTimeout: "15m", ServerAddr: ":8484", } } // EnsureDirs creates the data directory structure. func (c *Config) EnsureDirs() error { for _, dir := range []string{c.DataDir, c.LogDir} { if err := os.MkdirAll(dir, 0700); err != nil { return err } } return nil }