diff --git a/internal/config/schema.go b/internal/config/schema.go index 0560fad..82dd583 100644 --- a/internal/config/schema.go +++ b/internal/config/schema.go @@ -18,6 +18,7 @@ type AgentConfig struct { Resilience ResilienceCfg `yaml:"resilience"` Storage StorageCfg `yaml:"storage"` Memory MemoryCfg `yaml:"memory"` + Skills SkillsCfg `yaml:"skills"` } // ── Identity ────────────────────────────────────────────────────────────── @@ -130,6 +131,7 @@ type ToolsCfg struct { Memory MemoryToolCfg `yaml:"memory"` Knowledge KnowledgeToolCfg `yaml:"knowledge"` SharedKnowledge SharedKnowledgeToolCfg `yaml:"shared_knowledge"` + Skills SkillsToolCfg `yaml:"skills"` } type MatrixToolCfg struct { @@ -478,6 +480,19 @@ type MemoryToolCfg struct { Enabled bool `yaml:"enabled"` } +// ── Skills ──────────────────────────────────────────────────────────────── + +type SkillsCfg struct { + Enabled bool `yaml:"enabled"` // enable skills system (default false) + SkillsPath string `yaml:"path"` // path to skills directory (default: "skills/") + Categories []string `yaml:"categories"` // filter: only load skills from these categories (empty = all) + Timeout time.Duration `yaml:"timeout"` // timeout for script execution (default: 60s) +} + +type SkillsToolCfg struct { + AllowedInterpreters []string `yaml:"allowed_interpreters"` // allowlist for skill script execution (default: ["bash", "sh"]) +} + // ── Special Agents ──────────────────────────────────────────────────────── // SpecialConfig is the root configuration for a special agent (no Matrix identity).