40 lines
1.0 KiB
Nix
40 lines
1.0 KiB
Nix
# Per-tool agent sub-modules
|
|
# Each module handles rendering canonical agent.toml definitions
|
|
# for a specific AI coding tool.
|
|
#
|
|
# Also provides the shared coding.agents.skills submodule that writes
|
|
# ~/.agents/skills — the central skills directory used by Pi, OpenCode, etc.
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
shared = import ./shared/shared-options.nix {inherit lib;};
|
|
cfg = config.coding.agents.skills;
|
|
mkIf = lib.mkIf;
|
|
in {
|
|
imports = [
|
|
./opencode.nix
|
|
./claude-code.nix
|
|
./pi.nix
|
|
];
|
|
|
|
options.coding.agents.skills = {
|
|
agentsInput = shared.mkAgentsInputOption ''
|
|
The `agents` flake input (your personal AGENTS repo).
|
|
When set, skills are symlinked to ~/.agents/skills.
|
|
'';
|
|
|
|
externalSkills = shared.externalSkillsOption;
|
|
};
|
|
|
|
config = mkIf (cfg.agentsInput != null) {
|
|
home.file.".agents/skills".source = cfg.agentsInput.lib.mkOpencodeSkills {
|
|
inherit pkgs;
|
|
customSkills = "${cfg.agentsInput}/skills";
|
|
externalSkills = shared.mapExternalSkills cfg.externalSkills;
|
|
};
|
|
};
|
|
}
|