atagen

roundabout

public
Star0
Watch0
caac091f257ad8d53409925aac0d377b716994f8
1
ssh://brewery@pls.lobotomise.me:33/atagen/roundabout.git

Blame: nix/codex-plugin.nix

4e5ca2e20401atagen2026-09-28 11:42 UTC1
{
4e5ca2e20401atagen2026-09-28 11:42 UTC2
  lib,
4e5ca2e20401atagen2026-09-28 11:42 UTC3
  runCommand,
4e5ca2e20401atagen2026-09-28 11:42 UTC4
  writeText,
4e5ca2e20401atagen2026-09-28 11:42 UTC5
  roundabout,
4e5ca2e20401atagen2026-09-28 11:42 UTC6
}:
4e5ca2e20401atagen2026-09-28 11:42 UTC7
4e5ca2e20401atagen2026-09-28 11:42 UTC8
let
4e5ca2e20401atagen2026-09-28 11:42 UTC9
  hooks = writeText "hooks.json" (
4e5ca2e20401atagen2026-09-28 11:42 UTC10
    builtins.toJSON {
4e5ca2e20401atagen2026-09-28 11:42 UTC11
      hooks = import ./codex-hooks.nix { inherit lib roundabout; };
4e5ca2e20401atagen2026-09-28 11:42 UTC12
    }
4e5ca2e20401atagen2026-09-28 11:42 UTC13
  );
4e5ca2e20401atagen2026-09-28 11:42 UTC14
  plugin = writeText "plugin.json" (
4e5ca2e20401atagen2026-09-28 11:42 UTC15
    builtins.toJSON {
4e5ca2e20401atagen2026-09-28 11:42 UTC16
      name = "roundabout";
4e5ca2e20401atagen2026-09-28 11:42 UTC17
      version = roundabout.version;
4e5ca2e20401atagen2026-09-28 11:42 UTC18
      description = "build admission for agents sharing a machine";
4e5ca2e20401atagen2026-09-28 11:42 UTC19
      author.name = "atagen";
4e5ca2e20401atagen2026-09-28 11:42 UTC20
      skills = "./skills/";
4e5ca2e20401atagen2026-09-28 11:42 UTC21
      interface = {
4e5ca2e20401atagen2026-09-28 11:42 UTC22
        displayName = "Roundabout";
4e5ca2e20401atagen2026-09-28 11:42 UTC23
        shortDescription = "Give shared builds room to run";
4e5ca2e20401atagen2026-09-28 11:42 UTC24
        longDescription = "Queue builds, notice overdue leases and keep artifacts within budget.";
4e5ca2e20401atagen2026-09-28 11:42 UTC25
        developerName = "atagen";
4e5ca2e20401atagen2026-09-28 11:42 UTC26
        category = "Productivity";
4e5ca2e20401atagen2026-09-28 11:42 UTC27
        capabilities = [ ];
4e5ca2e20401atagen2026-09-28 11:42 UTC28
        defaultPrompt = "Help me run builds through Roundabout.";
4e5ca2e20401atagen2026-09-28 11:42 UTC29
      };
4e5ca2e20401atagen2026-09-28 11:42 UTC30
    }
4e5ca2e20401atagen2026-09-28 11:42 UTC31
  );
4e5ca2e20401atagen2026-09-28 11:42 UTC32
  marketplace = writeText "marketplace.json" (
4e5ca2e20401atagen2026-09-28 11:42 UTC33
    builtins.toJSON {
4e5ca2e20401atagen2026-09-28 11:42 UTC34
      name = "roundabout";
4e5ca2e20401atagen2026-09-28 11:42 UTC35
      interface.displayName = "Roundabout";
4e5ca2e20401atagen2026-09-28 11:42 UTC36
      plugins = [
4e5ca2e20401atagen2026-09-28 11:42 UTC37
        {
4e5ca2e20401atagen2026-09-28 11:42 UTC38
          name = "roundabout";
4e5ca2e20401atagen2026-09-28 11:42 UTC39
          source = {
4e5ca2e20401atagen2026-09-28 11:42 UTC40
            source = "local";
4e5ca2e20401atagen2026-09-28 11:42 UTC41
            path = "./plugins/roundabout";
4e5ca2e20401atagen2026-09-28 11:42 UTC42
          };
4e5ca2e20401atagen2026-09-28 11:42 UTC43
          policy = {
4e5ca2e20401atagen2026-09-28 11:42 UTC44
            installation = "AVAILABLE";
4e5ca2e20401atagen2026-09-28 11:42 UTC45
            authentication = "ON_INSTALL";
4e5ca2e20401atagen2026-09-28 11:42 UTC46
          };
4e5ca2e20401atagen2026-09-28 11:42 UTC47
          category = "Productivity";
4e5ca2e20401atagen2026-09-28 11:42 UTC48
        }
4e5ca2e20401atagen2026-09-28 11:42 UTC49
      ];
4e5ca2e20401atagen2026-09-28 11:42 UTC50
    }
4e5ca2e20401atagen2026-09-28 11:42 UTC51
  );
4e5ca2e20401atagen2026-09-28 11:42 UTC52
in
4e5ca2e20401atagen2026-09-28 11:42 UTC53
runCommand "roundabout-codex-plugin-${roundabout.version}" { } ''
4e5ca2e20401atagen2026-09-28 11:42 UTC54
  p=$out/plugins/roundabout
4e5ca2e20401atagen2026-09-28 11:42 UTC55
  mkdir -p $out/.agents/plugins $p/.codex-plugin $p/hooks $p/skills
4e5ca2e20401atagen2026-09-28 11:42 UTC56
  cp ${marketplace} $out/.agents/plugins/marketplace.json
4e5ca2e20401atagen2026-09-28 11:42 UTC57
  cp ${plugin} $p/.codex-plugin/plugin.json
4e5ca2e20401atagen2026-09-28 11:42 UTC58
  cp ${hooks} $p/hooks/hooks.json
4e5ca2e20401atagen2026-09-28 11:42 UTC59
  cp -r ${../plugin/skills}/. $p/skills/
4e5ca2e20401atagen2026-09-28 11:42 UTC60
''