The PO is itself a project using the agent-orchestrator harness (engine/ submodule pinned at v0.1.0). Adds: agents.toml (one persistent fleet-management agent) + prompts/; fleet.toml (the sole project<->harness<->ref registry) + docs/fleet-registry.md; scripts/ (fleet.py + create/start/stop/update-project.sh); docs/manage-projects.md + docs/bootstrap.md; flake.nix/.lock devShell (python311+tmux+git); README. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
42 lines
1.8 KiB
Nix
42 lines
1.8 KiB
Nix
{
|
|
description = "project-orchestrator — a project that uses the agent-orchestrator harness to manage a fleet of projects";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/50ab793786d9de88ee30ec4e4c24fb4236fc2674";
|
|
};
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
|
forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
|
|
in
|
|
{
|
|
# Reproducible devShell for the PO. Everything the PO needs to run itself + drive the fleet:
|
|
# - python311 : stdlib tomllib (>=3.11) — engine/agents.py and scripts/fleet.py import it
|
|
# - tmux : the harness runs every agent/watchdog in tmux
|
|
# - git : the engine submodule + create/update flows need git (incl. submodule support)
|
|
# The agent CLI the PO agent uses (claude) is an external, non-Nix tool — install it per its
|
|
# own docs and put it on PATH before `engine/agents.py up`.
|
|
devShells = forAllSystems (pkgs: {
|
|
default = pkgs.mkShell {
|
|
packages = [
|
|
pkgs.python311 # tomllib (>=3.11)
|
|
pkgs.tmux # harness sessions + watchdog
|
|
pkgs.git # engine submodule + project create/update flows
|
|
pkgs.coreutils
|
|
pkgs.bash
|
|
];
|
|
shellHook = ''
|
|
echo "project-orchestrator devShell — $(python3 --version), $(tmux -V), $(git --version)"
|
|
echo "try: python3 engine/agents.py status | python3 scripts/fleet.py status"
|
|
'';
|
|
};
|
|
});
|
|
|
|
# `nix flake check` evaluates this — a cheap smoke that the devShell builds.
|
|
checks = forAllSystems (pkgs: {
|
|
devshell-builds = self.devShells.${pkgs.system}.default;
|
|
});
|
|
};
|
|
}
|