Files
project-orchestrator/flake.nix
autonomic-bot 346ed31acb feat: project-orchestrator — engine@v0.1.0 submodule, PO config, fleet.toml registry, mgmt scripts, docs, Nix
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>
2026-06-13 19:15:47 +00:00

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;
});
};
}