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/start-project.sh
Executable file
19
scripts/start-project.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# start-project.sh <name> [agent...] — start a fleet project's agents via its harness.
|
||||
#
|
||||
# Resolves <name> in the PO's fleet.toml, then drives that project's harness. For an
|
||||
# agent-orchestrator project that is `engine/agents.py up`. For an unfamiliar harness, READ that
|
||||
# project's harness docs first — there is no rigid contract. This wrapper handles the common
|
||||
# agent-orchestrator case; extend it (or act by hand) for other harnesses.
|
||||
set -euo pipefail
|
||||
[ $# -ge 1 ] || { echo "usage: start-project.sh <name> [agent...]" >&2; exit 1; }
|
||||
NAME="$1"; shift || true
|
||||
source "$(dirname "$0")/_resolve.sh"
|
||||
IFS=$'\t' read -r LOCATION CONFIG HARNESS < <(resolve_project "$NAME")
|
||||
[ -d "$LOCATION" ] || { echo "start-project: location not a local dir: $LOCATION (clone it first)" >&2; exit 1; }
|
||||
case "$HARNESS" in
|
||||
agent-orchestrator)
|
||||
echo "start-project: $NAME → python3 engine/agents.py up $* (in $LOCATION)"
|
||||
( cd "$LOCATION" && python3 engine/agents.py --config "$CONFIG" up "$@" );;
|
||||
*) echo "start-project: harness '$HARNESS' is not agent-orchestrator — read its docs and drive it by hand." >&2; exit 2;;
|
||||
esac
|
||||
Reference in New Issue
Block a user