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>
This commit is contained in:
19
scripts/_resolve.sh
Executable file
19
scripts/_resolve.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# _resolve.sh — shared helper: given a fleet project name, echo "<location>\t<config>\t<harness>".
|
||||
# Sourced by start/stop/update scripts. Reads the PO's fleet.toml (the only project↔location record).
|
||||
set -euo pipefail
|
||||
PO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
resolve_project() {
|
||||
local name="$1"
|
||||
python3 - "$PO_ROOT/fleet.toml" "$name" <<'PY'
|
||||
import sys, tomllib
|
||||
path, name = sys.argv[1], sys.argv[2]
|
||||
with open(path, "rb") as f:
|
||||
raw = tomllib.load(f)
|
||||
for p in raw.get("project", []):
|
||||
if p.get("name") == name:
|
||||
print("\t".join([p.get("location", ""), p.get("config", "agents.toml"), p.get("harness", "")]))
|
||||
sys.exit(0)
|
||||
sys.exit(f"_resolve: no project named {name!r} in {path}")
|
||||
PY
|
||||
}
|
||||
Reference in New Issue
Block a user