Commit 9ba528f
Changed files (3)
modules
develop
modules/develop/agents/crush.nix
@@ -8,33 +8,34 @@
];
};
- homeManager = {
- pkgs,
+ hjem = {
config,
+ pkgs,
...
- }: let
- crushCfg = {
- "$schema" = "${pkgs.llm-agents.crush}/share/crush/schema.json";
- lsp = {
- nix = {
- command = "nixd";
+ }: {
+ packages = [pkgs.llm-agents.crush];
+
+ xdg.config.files."crush/crush.json" = {
+ generator = (pkgs.formats.json {}).generate "crush-config.json";
+ value = {
+ "$schema" = "${pkgs.llm-agents.crush}/share/crush/schema.json";
+ lsp = {
+ nix = {
+ command = "nixd";
+ };
};
- };
- mcp = {
- deepwiki = {
- type = "http";
- url = "https://mcp.deepwiki.com/mcp";
+ mcp = {
+ deepwiki = {
+ type = "http";
+ url = "https://mcp.deepwiki.com/mcp";
+ };
};
};
};
- in {
- home.packages = [pkgs.llm-agents.crush];
- xdg.configFile."crush/crush.json".text = builtins.toJSON crushCfg;
-
- systemd.user.tmpfiles.rules = [
- "L+ ${config.xdg.configHome}/crush/skills - - - - ${config.xdg.configHome}/agents/skills"
- ];
+ xdg.config.files."crush/skills" = {
+ source = "${config.xdg.config.directory}/agents/skills";
+ };
};
};
}
modules/develop/agents/default.nix
@@ -1,4 +1,8 @@
-{inputs, ...}: {
+{
+ inputs,
+ lib,
+ ...
+}: {
flake-file.inputs.llm-agents = {
url = "github:numtide/llm-agents.nix";
inputs.flake-parts.follows = "flake-parts";
@@ -15,46 +19,16 @@
)
];
};
- homeManager = {
- pkgs,
- lib,
- ...
- }: let
+ hjem = {pkgs, ...}: let
skills = {
grilling = ./skills/grilling;
jujutsu = ./skills/jujutsu;
open-websearch = "${pkgs.open-websearch.src}/skills/open-websearch";
};
in {
- nixpkgs.overlays = [
- (
- final: prev: {
- llm-agents = inputs.llm-agents.packages.${pkgs.stdenv.hostPlatform.system};
- }
- )
- ];
+ packages = [pkgs.open-websearch];
- home.packages = with pkgs; [
- open-websearch
- ];
-
- xdg.configFile =
- lib.mapAttrs' (
- name: content:
- if lib.hm.strings.isPathLike content && lib.pathIsDirectory content
- then
- lib.nameValuePair "agents/skills/${name}" {
- source = content;
- recursive = true;
- }
- else
- lib.nameValuePair "agents/skills/${name}/SKILL.md" (
- if lib.hm.strings.isPathLike content
- then {source = content;}
- else {text = content;}
- )
- )
- skills;
+ xdg.config.files = lib.mapAttrs' (n: v: lib.nameValuePair "agents/skills/${n}" {source = v;}) skills;
};
};
}
modules/develop/agents/opencode.nix
@@ -15,15 +15,16 @@
];
};
- homeManager = {
- pkgs,
+ hjem = {
config,
+ pkgs,
...
}: {
- programs.opencode = {
- enable = true;
- package = pkgs.llm-agents.opencode;
- settings = {
+ packages = [pkgs.llm-agents.opencode];
+
+ xdg.config.files."opencode/opencode.json" = {
+ generator = (pkgs.formats.json {}).generate "opencode-config.json";
+ value = {
permission = {
external_directory = {
"/nix/store/**" = "allow";
@@ -56,19 +57,21 @@
};
};
- systemd.user.tmpfiles.rules = [
- "L+ ${config.xdg.configHome}/opencode/skills - - - - ${config.xdg.configHome}/agents/skills"
- ];
+ xdg.config.files."opencode/tui.json" = {
+ generator = (pkgs.formats.json {}).generate "opencode-config-tui.json";
+ value = {
+ };
+ };
+
+ xdg.config.files."opencode/skills" = {
+ source = "${config.xdg.config.directory}/agents/skills";
+ };
};
};
den.aspects.develop.opencode.themes = {
catppuccin = {
- homeManager = {
- programs.opencode = {
- tui.theme = "catppuccin";
- };
- };
+ hjem.xdg.config.files."opencode/tui.json".value.theme = "catppuccin";
};
};
}