diff --git a/home/modules/ai-tools/claude-code.nix b/home/modules/ai-tools/claude-code.nix index f638dbb..e39eea2 100644 --- a/home/modules/ai-tools/claude-code.nix +++ b/home/modules/ai-tools/claude-code.nix @@ -9,8 +9,6 @@ let rtk-version = "0.18.1"; in { - options.ai-tools.claude-code.enable = lib.mkEnableOption "claude code with rtk and ccline"; - config = lib.mkIf cfg.enable { programs.claude-code.enable = true; diff --git a/home/modules/ai-tools/default.nix b/home/modules/ai-tools/default.nix index 9ee6c47..aab60b3 100644 --- a/home/modules/ai-tools/default.nix +++ b/home/modules/ai-tools/default.nix @@ -1,4 +1,33 @@ +{ lib, ... }: + +let + skillType = lib.types.submodule { + options = { + owner = lib.mkOption { type = lib.types.str; }; + repo = lib.mkOption { type = lib.types.str; }; + rev = lib.mkOption { type = lib.types.str; }; + hash = lib.mkOption { type = lib.types.str; }; + skill = lib.mkOption { type = lib.types.str; }; + }; + }; +in { + options.ai-tools = { + claude-code = { + enable = lib.mkEnableOption "claude code with rtk and ccline"; + skills = lib.mkOption { + type = lib.types.listOf skillType; + default = [ ]; + }; + }; + opencode = { + enable = lib.mkEnableOption "opencode"; + }; + tirith = { + enable = lib.mkEnableOption "tirith"; + }; + }; + imports = [ ./claude-code.nix ./opencode.nix diff --git a/home/modules/ai-tools/opencode.nix b/home/modules/ai-tools/opencode.nix index 5eba098..0af37db 100644 --- a/home/modules/ai-tools/opencode.nix +++ b/home/modules/ai-tools/opencode.nix @@ -8,10 +8,6 @@ let cfg = config.ai-tools.opencode; in { - options.ai-tools.opencode = { - enable = lib.mkEnableOption "opencode"; - }; - config = lib.mkIf cfg.enable { home.packages = [ pkgs.opencode ]; diff --git a/home/modules/ai-tools/skills.nix b/home/modules/ai-tools/skills.nix index 84d40a1..1fc9974 100644 --- a/home/modules/ai-tools/skills.nix +++ b/home/modules/ai-tools/skills.nix @@ -7,16 +7,6 @@ let cfg = config.ai-tools.claude-code; - skillType = lib.types.submodule { - options = { - owner = lib.mkOption { type = lib.types.str; }; - repo = lib.mkOption { type = lib.types.str; }; - rev = lib.mkOption { type = lib.types.str; }; - hash = lib.mkOption { type = lib.types.str; }; - skill = lib.mkOption { type = lib.types.str; }; - }; - }; - fetchSkill = skill: let @@ -38,11 +28,6 @@ let }; in { - options.ai-tools.claude-code.skills = lib.mkOption { - type = lib.types.listOf skillType; - default = [ ]; - }; - config = lib.mkIf cfg.enable { home.file = builtins.listToAttrs (map fetchSkill cfg.skills); }; diff --git a/home/modules/ai-tools/tirith.nix b/home/modules/ai-tools/tirith.nix index 87565ca..5528f6e 100644 --- a/home/modules/ai-tools/tirith.nix +++ b/home/modules/ai-tools/tirith.nix @@ -8,10 +8,6 @@ let cfg = config.ai-tools.tirith; in { - options.ai-tools.tirith = { - enable = lib.mkEnableOption "tirith"; - }; - config = lib.mkMerge [ (lib.mkIf cfg.enable { home.packages = [ pkgs.tirith ];