ollie/tools/subagent_spawn

31 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# description: Spawn N subagents with a shared prompt, wait for all to complete, return concatenated results (fork-join).
# Args: [-n N] [-agent A] [-backend B] [-model M] [-cwd DIR] [-keep] <prompt...>
# Output: concatenated results from all subagents, in submission order. With -n > 1, results are separated by === {id} === headers.
set -euo pipefail
OLLIE="${OLLIE:-$HOME/mnt/ollie}"
die() { printf 'subagent_spawn: %s\n' "$*" >&2; exit 1; }
n=1; args=()
while [ $# -gt 0 ]; do
case $1 in
-n) n=$2; shift ;;
-agent) args+=(-agent "$2"); shift ;;
-backend) args+=(-backend "$2"); shift ;;
-model) args+=(-model "$2"); shift ;;
-cwd) args+=(-cwd "$2"); shift ;;
-keep) args+=(-keep) ;;
--) shift; break ;;
-*) die "unknown flag: $1" ;;
*) break ;;
esac
shift
done
[ $# -eq 0 ] && die "prompt required"
exec "$OLLIE/b/q" -parallel "$n" "${args[@]}" "$@"