{ lib, config, inputs, ... }: let inherit (lib) mkIf; inherit (lib.metacfg) mkBoolOpt; cfg = config.metacfg.cli-apps.opencode; obsidianSkills = lib.mapAttrs' ( name: _: lib.nameValuePair ".agents/skills/${name}" { source = "${inputs.obsidian-skills}/skills/${name}"; recursive = true; } ) ( lib.filterAttrs (_: type: type == "directory") (builtins.readDir "${inputs.obsidian-skills}/skills") ); in { options.metacfg.cli-apps.opencode = { enable = mkBoolOpt true "Enable opencode config."; }; config = mkIf cfg.enable { xdg.configFile."opencode" = { source = ../../../../config/opencode; recursive = true; }; home.file = { ".agents/skills" = { source = ../../../../config/agents/skills; recursive = true; }; } // obsidianSkills; }; }