#!/bin/sh set -e set -x export PYTHONPATH=/app/src TIMEOUT_DURATION=${TIMEOUT_DURATION:-180} run_step() { echo "================================================================" if ! timeout "${TIMEOUT_DURATION}s" "$@"; then status=$? echo "Command failed (exit ${status}): $*" exit ${status} fi } run_step_with_capture() { echo "================================================================" capture_tmpfile=$(mktemp) tail -n +1 -f "${capture_tmpfile}" & capture_tail_pid=$! if ! timeout "${TIMEOUT_DURATION}s" "$@" >"${capture_tmpfile}" 2>&1; then status=$? kill "${capture_tail_pid}" 2>/dev/null || true wait "${capture_tail_pid}" 2>/dev/null || true echo "Command failed (exit ${status}): $*" rm -f "${capture_tmpfile}" exit ${status} fi kill "${capture_tail_pid}" 2>/dev/null || true wait "${capture_tail_pid}" 2>/dev/null || true RUN_STEP_CAPTURE_OUTPUT=$(cat "${capture_tmpfile}") rm -f "${capture_tmpfile}" } run_step python -m cleveragents context delete --all --yes run_step python -m cleveragents run -t 0 --unsafe --config examples/scientific_paper_writer.yaml --context "bookmark" -p "Hello" while IFS= read -r prompt; do [ -z "${prompt}" ] && continue run_step python -m cleveragents run -t 0 --unsafe --config examples/scientific_paper_writer.yaml --context "bookmark" -p "${prompt}" done <<'EOF' !next COVID19 20000 words Scientists I will not be publishing it latex None, no other additional requirements Suggest something Lets go with #1 !next Suggest 5 or more high quality peer-reviewed sources !next Add a few numbered subsections for each one of the main sections, afterall we have 20000 words to fill! !next EOF while :; do for prompt in "Suggest five additional sources specific to this section to the list" "!write" "!proofread" "!accept"; do if [ "${prompt}" = "!accept" ]; then run_step_with_capture python -m cleveragents run -t 0 --unsafe --config examples/scientific_paper_writer.yaml --context "bookmark" -p "${prompt}" case "${RUN_STEP_CAPTURE_OUTPUT}" in *!next*) break 2 ;; esac else run_step python -m cleveragents run -t 0 --unsafe --config examples/scientific_paper_writer.yaml --context "bookmark" -p "${prompt}" fi done done run_step rm -rf at_bookmark.json run_step python -m cleveragents context export bookmark at_bookmark.json run_step python -m cleveragents run -t 0 --unsafe --config examples/scientific_paper_writer.yaml --load-context at_bookmark.json -p '!next'