Open-source release of MAESTRO, an agent orchestration platform that runs LLM-driven tasks through sandboxed tools, with a web UI. Apache-2.0. See README.md and docs/ (getting-started, configuration, architecture).
53 lines
1.2 KiB
Bash
Executable File
53 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$PROJECT_DIR"
|
|
|
|
SKIP_INSTALL=0
|
|
SKIP_PYTHON=0
|
|
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--skip-install)
|
|
SKIP_INSTALL=1
|
|
;;
|
|
--skip-python)
|
|
SKIP_PYTHON=1
|
|
;;
|
|
*)
|
|
echo "Unknown option: $arg" >&2
|
|
echo "Usage: ./scripts/build-all.sh [--skip-install] [--skip-python]" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "$SKIP_INSTALL" -eq 0 ]; then
|
|
echo "[1/5] Installing backend dependencies"
|
|
npm ci
|
|
|
|
echo "[2/5] Installing UI dependencies"
|
|
npm --prefix ui ci
|
|
else
|
|
echo "[1/5] Skipping dependency installation"
|
|
echo "[2/5] Reusing existing node_modules"
|
|
fi
|
|
|
|
echo "[3/5] Building backend"
|
|
npm run build:server
|
|
|
|
echo "[4/5] Building UI"
|
|
npm --prefix ui run build
|
|
|
|
if [ "$SKIP_PYTHON" -eq 0 ]; then
|
|
echo "[5/5] Pre-baking Python packages for the Bash sandbox"
|
|
# Non-fatal: the script warns and exits 0 if pip/python is unavailable, so a
|
|
# missing python toolchain never breaks the JS build. Skip with --skip-python.
|
|
bash "$PROJECT_DIR/scripts/prebake-python.sh" || true
|
|
else
|
|
echo "[5/5] Skipping Python pre-bake (--skip-python)"
|
|
fi
|
|
|
|
echo "Build complete: backend dist/ and ui/dist/ are ready"
|