#!/usr/bin/env bash # Single headless poll via Grok for the heavy-duty org watcher. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # shellcheck source=lib/common.sh source "${SCRIPT_DIR}/lib/common.sh" mkdir -p "${LOG_DIR}" TS="$(utc_now)" PROMPT_FILE="${WATCHER_DIR}/.poll-prompt.txt" case "${FORGE_BACKEND}" in github) DISCOVERY_HINT="gh search prs/issues --owner ${ORG} (review-requested=@me / assignee=@me)" POST_HINT="Prefer gh pr review / gh issue comment" BACKEND_LABEL="GitHub" ;; forgejo) DISCOVERY_HINT="bash ${WATCHER_DIR}/scripts/discover.sh # FORGE_BACKEND=forgejo" POST_HINT="Prefer stoke pr review / stoke pr comment (Forgejo at ${FORGEJO_URL})" BACKEND_LABEL="Forgejo" ;; *) echo "error: unknown FORGE_BACKEND=${FORGE_BACKEND}" >&2 exit 2 ;; esac cat > "${PROMPT_FILE}" </dev/null 2>&1; then watcher_log "${LOG_DIR}/poll.log" "poll-once.sh failed: grok CLI not found" echo "error: grok CLI not found on PATH" >&2 exit 127 fi if grok --always-approve --cwd "${HOME}" --max-turns 80 \ --single "$(cat "${PROMPT_FILE}")" \ >> "${LOG_DIR}/poll-headless.log" 2>&1; then watcher_log "${LOG_DIR}/poll.log" "poll-once.sh finished ok" else rc=$? watcher_log "${LOG_DIR}/poll.log" "poll-once.sh failed rc=${rc}" exit "${rc}" fi