#!/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] # 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[@]}" "$@"