#!/usr/bin/env bash set -euo pipefail # Run a non-interactive Strix quick scan inside an ephemeral container. # Expects ./.env-swy (not checked into VCS) containing STRIX/LLM credentials. # Mounts the repo at the same absolute path so Strix's sandbox can access it. REPO_DIR="$(pwd)" ENV_FILE="$REPO_DIR/.env-swy" PY_IMAGE="python:3.12-slim" if [[ ! -f "$ENV_FILE" ]]; then echo "Missing env file: $ENV_FILE" echo "Create it with STRIX_LLM, LLM_API_KEY, LLM_API_BASE (and any provider keys)." exit 1 fi # Run container with host docker binary and socket mounted (required by Strix sandbox) # Keep container ephemeral. The container will install strix-agent on-the-fly. docker run --rm -i \ -v "$REPO_DIR":"$REPO_DIR" \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/bin/docker:/usr/bin/docker:ro \ -w "$REPO_DIR" \ --env-file "$ENV_FILE" \ "$PY_IMAGE" bash -lc ' set -euo pipefail apt-get update >/dev/null apt-get install -y --no-install-recommends python3-pip >/tmp/apt-install.log 2>&1 pip3 install --no-cache-dir --upgrade pip strix-agent >/tmp/pip-install.log 2>&1 # Map generic LLM envs for OpenAI-compatible clients and prefer recommended model export OPENAI_API_KEY="${LLM_API_KEY:-}" export OPENAI_API_BASE="${LLM_API_BASE:-}" export STRIX_LLM="openai/gpt-5.4" # Run Strix non-interactively; adjust --scan-mode or additional args as needed strix -n -t "'$REPO_DIR'" --scan-mode quick ' echo "Strix run complete (exit code reported above). Output is written by Strix into ./strix_runs/ or printed above."