~ruther/agent-environments

agent-environments/examples/basic/flake.nix -rw-r--r-- 2.0 KiB
8a0ec343 — František Boháček Update codex and claude-code inputs a month ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
  description = "agent-environments example: one environment with instructions and skills";

  inputs = {
    # In your own flake: github:<owner>/agent-environments
    agent-environments.url = "path:../..";
    nixpkgs.follows = "agent-environments/nixpkgs";
  };

  outputs =
    { agent-environments, nixpkgs, ... }:
    let
      forAllSystems = nixpkgs.lib.genAttrs [
        "x86_64-linux"
        "aarch64-linux"
        "x86_64-darwin"
        "aarch64-darwin"
      ];
      inherit (agent-environments.lib) mkEnvironment mkSkill mkSkillModule;
    in
    {
      packages = forAllSystems (
        system:
        let
          pkgs = nixpkgs.legacyPackages.${system};

          ripgrep-search = mkSkill {
            inherit pkgs;
            name = "ripgrep-search";
            src = ./skills/ripgrep-search;
            runtimeInputs = [ pkgs.ripgrep ];
          };
          # Depends on ripgrep-search: enabling code-review links both skills.
          code-review = mkSkill {
            inherit pkgs;
            name = "code-review";
            src = ./skills/code-review;
            skills = [ ripgrep-search ];
          };

          env = mkEnvironment {
            inherit pkgs;
            modules = [
              (mkSkillModule ripgrep-search)
              (mkSkillModule code-review)
              {
                claude.enable = true;
                codex.enable = true;

                modules.skills.code-review.enable = true;

                instructions.style.text = ''
                  # Style
                  - Prefer small, focused commits.
                  - Explain *why* in commit messages.
                '';

                claude.settings.includeCoAuthoredBy = false;
                codex.settings.approval_policy = "on-request";

                launchers = {
                  claude-basic.agent = "claude";
                  codex-basic.agent = "codex";
                };
              }
            ];
          };
        in
        {
          default = env.package;
        }
      );
    };
}