sync: auto-sync from GURU-5070 at 2026-06-04 09:45:37
Author: Mike Swanson Machine: GURU-5070 Timestamp: 2026-06-04 09:45:37
This commit is contained in:
@@ -67,13 +67,15 @@ MODE="${1:-}"; shift 2>/dev/null || true
|
||||
TMP="$(mktemp -d)"; trap 'rm -rf "$TMP"' EXIT
|
||||
WORK="$TMP/work"; mkdir -p "$WORK"
|
||||
PF="$TMP/prompt.txt"; OUT="$TMP/out.json"
|
||||
RUN_CWD="$WORK" # grok's working dir; the 'review' mode overrides to the repo so read_file can reach repo files
|
||||
REPO_ROOT="${CLAUDETOOLS_ROOT:-$(cd "$SCRIPT_DIR/../../../.." 2>/dev/null && pwd)}"
|
||||
|
||||
# run grok headless. $1=timeout secs; rest=extra flags. Reads $PF -> $OUT.
|
||||
# Never fails the script on grok's exit code (Cancelled is expected; we read artifacts).
|
||||
run_grok() {
|
||||
local to="$1"; shift
|
||||
timeout "$to" "$GROK" --prompt-file "$PF" --output-format json \
|
||||
--permission-mode dontAsk --no-subagents --no-plan --cwd "$WORK" "$@" \
|
||||
--permission-mode dontAsk --no-subagents --no-plan --cwd "$RUN_CWD" "$@" \
|
||||
>"$OUT" 2>"$TMP/err.txt" || true
|
||||
}
|
||||
|
||||
@@ -92,16 +94,24 @@ find_artifact() {
|
||||
|
||||
case "$MODE" in
|
||||
text|verify)
|
||||
[ -z "${1:-}" ] && { echo "usage: $SELF $MODE \"<prompt>\"" >&2; exit 2; }
|
||||
# content from --prompt-file <path> (good for long docs) or the positional arg
|
||||
SRC=""
|
||||
if [ "${1:-}" = "--prompt-file" ]; then
|
||||
[ -f "${2:-}" ] || { echo "[$SELF] prompt file not found: ${2:-}" >&2; exit 2; }
|
||||
SRC="$(cat "$2")"
|
||||
else
|
||||
SRC="${1:-}"
|
||||
fi
|
||||
[ -z "$SRC" ] && { echo "usage: $SELF $MODE \"<prompt>\" | $SELF $MODE --prompt-file <path>" >&2; exit 2; }
|
||||
# Prompt-level steering keeps it text-only and (for verify) adversarial.
|
||||
# (The --disallowed-tools/--rules flags tripped the CLI; --check adds a slow
|
||||
# multi-turn self-check loop — both avoided in favor of prompt steering.)
|
||||
if [ "$MODE" = "verify" ]; then
|
||||
printf 'Adversarially evaluate the following claim/finding: try hard to find any reason it is WRONG. Then give a one-line verdict (CONFIRMED or REFUTED) plus a one-sentence justification. Answer in text only; do not use tools. Claim/finding: %s' "$1" > "$PF"
|
||||
printf 'Adversarially evaluate the following claim/finding/document: try hard to find any reason it is WRONG, incomplete, or overstated. Then give a verdict plus specific justification. Answer in text only; do not use tools. Content:\n%s' "$SRC" > "$PF"
|
||||
else
|
||||
printf 'Answer directly in text; do not use tools. %s' "$1" > "$PF"
|
||||
printf 'Answer directly in text; do not use tools.\n%s' "$SRC" > "$PF"
|
||||
fi
|
||||
run_grok 120 --disable-web-search --max-turns 2
|
||||
run_grok 180 --disable-web-search --max-turns 3
|
||||
txt="$(jfield text)"
|
||||
if [ -n "$txt" ]; then printf '%s\n' "$txt"; else
|
||||
echo "[$SELF] no text (stopReason=$(jfield stopReason)); raw: $OUT" >&2; exit 1; fi
|
||||
@@ -136,6 +146,19 @@ case "$MODE" in
|
||||
if [ -n "$txt" ]; then printf '%s\n' "$txt"; else
|
||||
echo "[$SELF] no result (stopReason=$(jfield stopReason))" >&2; exit 1; fi
|
||||
;;
|
||||
review|file)
|
||||
[ -z "${1:-}" ] && { echo "usage: $SELF review <file-path> [instructions]" >&2; exit 2; }
|
||||
target="$1"
|
||||
instr="${2:-Give an independent, critical review of this file: accuracy, gaps/omissions, and concrete improvements. Be specific.}"
|
||||
# Grok reads the file itself (no embedding) -- run it in the repo so read_file resolves repo-relative paths.
|
||||
[ -f "$target" ] || [ -f "$REPO_ROOT/$target" ] || { echo "[$SELF] file not found: $target" >&2; exit 2; }
|
||||
RUN_CWD="$REPO_ROOT"
|
||||
printf 'Use your read_file tool to read the file at this path (relative to your current directory), then do the task and stop. You may also read closely-related files it references if that helps. Do not modify anything.\nPath: %s\n\nTask: %s' "$target" "$instr" > "$PF"
|
||||
run_grok 240 --max-turns 12
|
||||
txt="$(jfield text)"
|
||||
if [ -n "$txt" ]; then printf '%s\n' "$txt"; else
|
||||
echo "[$SELF] no result (session=$(jfield sessionId), stopReason=$(jfield stopReason))" >&2; exit 1; fi
|
||||
;;
|
||||
raw)
|
||||
"$GROK" "$@"
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user